CERT Coordination Center (CERT/CC, Carnegie Mellon University)は7月20日(米国時間)、「VU#506989 - Microsoft Windows 10 gives unprivileged user access to SAM, SYSTEM, and SECURITY files」において、Windows 10にVSS(Volume Shadow Copy Service)のシャフォウコピーを悪用したローカル特権昇格の脆弱性が存在するとして、その対処法を公開した。

この脆弱性を悪用されると、ローカルの非特権ユーザーによってシステムのレジストリハイブファイルにアクセスされ、アカウントのパスワードハッシュの抽出やDPAPIのマスターキーの取得などの被害を受ける可能性があるという。

Windows 10のVSSは、特定の時点におけるファイルシステムの内容の複製を作成しておくことで、問題が生じた際に任意の時点のファイルシステムの状態を復元することができる仕組みである。複製はボリューム単位で作成され、「シャドウコピー」や「スナップショット」と呼ばれる。

今回報告された脆弱性はこのシャドウコピーを悪用したもので、「CVE-2021-36934」の追跡番号が割り当てられ、Microsoftによる次のページで情報が公開されている。

これによると、バージョン1809以降のWindows 10ではBUILTIN\Usersグループに次のファイルへのアクセス許可が付与されることから、システムドライブのVSSシャドウコピーが利用可能な場合に、非特権ユーザーがこれらのファイルにアクセス可能になるという。

  • c:\Windows\System32\config\sam
  • c:\Windows\System32\config\system
  • c:\Windows\System32\config\security

これらのファイルにアクセスされることによる主な影響としては、以下が挙げられている。

  • アカウントのパスワードハッシュを抽出する
  • Windowsの元のインストールパスワードを見つける
  • すべてのコンピューターの秘密鍵を復号できるDPAPIのマスターキーを取得する
  • シルバーチケット攻撃に使用できるコンピュータアカウントを取得する

CERT/CCは、この問題に対する対処法を次のように解説している。まず、VSSのシャドウコピーが利用可能かどうかは、次のコマンドで確認することができる。

vssadmin list shadows

シャドウコピーが利用できない場合はこの問題の影響を受けない。利用可能なシャドウコピーが見つかった場合、非特権アカウントで次のコマンドを実行することによって、システムがこの脆弱性の影響を受けるかどうかを確認することができる。

icacls %windir%\system32\config\sam

下図のようにアクセスに成功する場合、脆弱性の影響を受けていることを意味するという。

  • 脆弱性の影響を受ける場合の出力例

    脆弱性の影響を受ける場合の出力例

この問題に対する本質的な解決策は公開されていないものの、次のコマンドを実行してアクセス制御リストからこれらの機密ファイルを取り除くことによって悪用を防止することができるとのこと。

icacls %windir%\system32\config\sam /remove "Users"
icacls %windir%\system32\config\security /remove "Users"
icacls %windir%\system32\config\system /remove "Users"

アクセス制御リストを更新したら、作成済みのシャドウコピーを削除する必要がある。システムがCドライブにインストールされている場合は、次のコマンドでシャドウコピーを削除できる。

vssadmin delete shadows /for=c: /Quiet
  • シャドウコピーが利用できなくなったことを確認

    シャドウコピーが利用できなくなったことを確認

再度「vssadmin list shadows」コマンドを実行すれば、シャドウコピーが削除されて利用できなくなったことを確認できる。

ただし、これによって既存のシャドウコピーを利用した復元などの操作はできなくなるので注意が必要。新規に作成されたシャドウコピーは通常通りに動作する。