1P by neo 3달전 | favorite | 댓글 1개

소개

  • Windows 라이선스 확인을 우회하는 과정에서 발견된 버그를 비밀로 유지하여 미래의 활성화 방법을 보존하고 테스트 도구로 사용함
  • "Keyhole"이라는 이름의 DRM 우회 방법을 발견하여 Microsoft Store 앱이나 최신 Windows 에디션을 쉽게 라이선스할 수 있게 됨
  • Cisco TALOS의 CVE-2024-38184 공개 이후 Keyhole에 대한 발견 내용을 공유하기로 결정함

CLiP

  • CLiP(Client Licensing Platform)은 Windows 10에서 도입된 DRM 시스템으로, Microsoft Store 앱과 Windows 활성화를 관리함
  • 주요 바이너리:
    • clipup.exe: Windows 8 스토어 라이선스를 디지털 라이선스로 변환
    • clipsvc.dll: 앱 라이선스를 관리하는 사용자 모드 서비스
    • clipc.dll: 애플리케이션이 CLiP와 상호작용할 수 있도록 하는 API
    • clipwinrt.dll: UWP 애플리케이션을 위한 API
    • clipsp.sys: 라이선스를 검증하는 커널 모드 드라이버
  • CLiP-라이선스 앱 설치 시 서명된 XML 파일이 clipsvc.dll로 전송되고, 검증 후 clipsp.sys로 전달되어 라이선스 저장소에 저장됨

약간의 장난

  • clipup.exe에 유효한 ECDSA 키가 평문으로 저장되어 있어 누구나 쉽게 XML 라이선스를 서명할 수 있음
  • 이 키를 사용하여 ClipSvc의 검증을 우회하고 원하는 라이선스 블록을 ClipSp로 직접 전송할 수 있음

ClipSp 해제

  • ClipSp는 잘 작성되지 않은 드라이버로, 많은 코드가 복사-붙여넣기 되어 있음
  • Microsoft의 Warbird라는 난독화 도구를 사용하여 코드가 숨겨져 있음
  • 난독화 해제를 통해 숨겨진 코드를 분석하고 버그를 찾을 수 있음

라이선스 블록

  • 라이선스 블록은 중요한 라이선스 정보를 저장하며, TLV(태그-길이-값) 형식으로 여러 데이터 블록을 포함함
  • 서명 블록은 모든 데이터를 서명하며, 서명 후 추가된 데이터는 검증되지 않음
  • 서명 블록 이후에 데이터를 추가하여 기존 데이터를 덮어쓸 수 있음

많은 장난

  • 서명 블록 이후에 데이터를 추가하여 Microsoft Store의 모든 제품에 대한 라이선스를 생성할 수 있음
  • 단, 디바이스에 잠긴 라이선스는 디바이스에 잠긴 앱 라이선스에서만 생성 가능함

장난 튜토리얼

  • 디바이스에 잠긴 앱(예: Roblox)을 설치하고 HTTPS 트래픽 캡처 도구로 라이선스를 가로챔
  • 라이선스 블록을 디코딩하고 필요한 데이터를 추가하여 새로운 XML 파일로 패키징
  • XML 파일을 C:\ProgramData\Microsoft\Windows\ClipSVC\Install\Migration 폴더에 복사하고 ClipSvc를 재시작하거나 clipup -p 명령어로 설치
  • Windows가 영구적으로 활성화됨

버즈킬

  • Cisco TALOS가 동일한 버그를 보고하여 Microsoft가 패치함
  • 버그는 서명 블록 이후의 데이터를 처리하지 않도록 수정됨

기부 시즌

  • Keyhole 라이선스를 생성하는 코드와 CLiP 바이너리를 공개하여 더 많은 버그를 발견하도록 유도함

그리고 다른 이야기

  • ClipSp의 코드는 Xbox One의 DRM 시스템에서 복사-붙여넣기 된 것임
  • Xbox SP도 동일한 파싱 버그를 가지고 있지만, Keyhole은 Xbox에서는 작동하지 않음

크레딧

  • 연구에 기여한 사람들: May, asdcorp, echnobas, WitherOrNot, emoose, LukeFZ, KiFilterFiberContext, Phillippe Laulheret, Cisco TALOS, Rairii

GN⁺의 정리

  • Keyhole은 Microsoft Store 앱과 Windows 에디션을 쉽게 라이선스할 수 있는 강력한 DRM 우회 방법임
  • CLiP 시스템의 보안 취약점을 악용하여 라이선스 블록을 조작할 수 있음
  • Cisco TALOS의 보고로 인해 Microsoft가 버그를 패치함
  • Xbox One의 DRM 시스템과 유사한 구조를 가지고 있음
  • 이 기사는 DRM 시스템의 취약점을 이해하고 보안을 강화하는 데 도움이 될 수 있음
Hacker News 의견
  • Xbox 게임을 무료로 다운로드할 수 있게 되었음
    • PS Vita처럼 완전히 해킹된 상태임
  • Windows 10용 Lego Boost 앱 설치 라이선스를 원함
    • 기존 라이선스가 있으면 다운로드 가능하지만, 신규 사용자에게는 불가능함
  • Microsoft가 임시 라이선스 서명 키의 적용 범위를 줄일 수 있음
    • 영구 라이선스를 생성하는 것이 오래가지 않을 것임
  • HEVC 확장을 M$ 계정 없이 활성화할 수 있는지 궁금함
    • 특허를 일괄적으로 라이선스하지 못하는 것이 답답함
  • Guitar Hero 게임을 물리 디스크 없이 플레이하려고 함
    • 게임 저장 파일을 읽을 수 없을 수도 있음
    • 콘솔의 공개 키가 취소 목록에 있음
    • CON 파일을 기본값 0으로 다시 서명하여 해결할 수 있음
  • 이 모든 상황이 매우 익숙하게 느껴짐
  • 안티바이러스가 페이지를 검열할 경우를 대비한 링크 제공
  • Microsoft에 보고된 것과 거의 동시에 독립적으로 발견됨
    • 매우 의심스러움
  • Clip은 Xbox One보다 오래된 것 같음
  • 수십 년 동안 Windows의 최고의 배포 및 통신 채널이었음
  • massgrave.dev에 대해 약간 불쾌함