紹介
- 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 システムの脆弱性を理解し、セキュリティを強化するのに役立つ可能性がある
1件のコメント
Hacker Newsの意見