1 ポイント 投稿者 GN⁺ 2024-09-08 | 1件のコメント | WhatsAppで共有

紹介

  • 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件のコメント

 
GN⁺ 2024-09-08
Hacker Newsの意見
  • Xboxゲームを無料でダウンロードできるようになった
    • PS Vitaのように完全にハックされた状態
  • Windows 10向けのLego Boostアプリのインストールライセンスが欲しい
    • 既存のライセンスがあればダウンロードできるが、新規ユーザーには不可能
  • Microsoftは一時ライセンス署名キーの適用範囲を狭めることができる
    • 永続ライセンスの生成は長くは続かないだろう
  • M$アカウントなしでHEVC拡張機能を有効化できるのか気になる
    • 特許を一括でライセンスできないのがもどかしい
  • 物理ディスクなしでGuitar Heroをプレイしようとしている
    • ゲームのセーブファイルを読み取れない可能性がある
    • コンソールの公開鍵が失効リストに入っている
    • CONファイルをデフォルト値0で再署名すれば解決できる
  • この一連の状況にはとても既視感がある
  • アンチウイルスがページを検閲した場合に備えたリンクを提供
  • Microsoftに報告されたのとほぼ同時に独立して発見された
    • 非常に疑わしい
  • ClipはXbox Oneより古いようだ
  • 何十年もの間、Windowsにおける最高の配布および通信チャネルだった
  • massgrave.devについては少し不快に感じる