2024年8月版 最速!危険度の高い脆弱性をいち早く解説「脆弱性研究所」第25回
8月に公開された重大な脆弱性(CISA KEV参照)
8月に新たに公開された脆弱性は3026となります。この中で特に重大な脆弱性をいくつかピックアップして説明したいと思います。
第三回で説明したCISAによる「実際に悪用されている脆弱性(Known Exploited Vulnerabilities Catalog)」のデータベース情報もあわせて載せています。
8月にCISAのKEVに登録された脆弱性はトータル19件で、内訳は
- Microsoft: 8件
- Apache OFBz: 2件
- Dahua: 2件
- Google: 2件
- Android: 1件
- Jenkins: 1件
- Linux Kernel: 1件
- Solarwinds: 1件
- Versa: 1件
になっています。
参考情報
- CISA「Known Exploited Vulnerabilities Catalog」
1. Windows Downdate (Downgrade攻撃)
2024年8月7日にSafeBreach社が「Windows Downdate」としてWindowsに対するダウングレード攻撃を公開しました。こちらは、Microsoftの側でパッチがなかなか出なかったために公開に踏み切ったという経緯があります(その後、MicrosoftでCVE-2024-21302・CVE-2024-38202が公開されました)。以下でWindows Downdateについて簡単に見てみます。
一次情報源
CVE情報
公開されたCVEは以下になります。
- CVE-2024-38202
- CVSS
- Base
- Score:7.3 High
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
- Temporal
- Score:6.1 Medium
- Vector: /EX:U/RL:U/RC:C
- Base
- バージョン書き換えの可能性
- Windows Update に特権の昇格の脆弱性が存在するという通知を受けました。この脆弱性により、基本的なユーザー権限を持つ攻撃者が、以前に緩和された脆弱性を再び導入したり、仮想化ベースのセキュリティ (VBS) の一部の機能を回避したりする可能性があります。
- CVSS
- CVE-2024-21302
- CVSS
- Base
- Score:6.7 Medium
- Vector: CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
- Temporal
- Score:6.1 Medium
- Vector: /EX:U/RL:U/RC:C
- Base
- バージョン書き換えの可能性
- Microsoftは、Azure Virtual Machine SKUS のサブセットを含む、Virtualization Based Security (VBS) をサポートする Windowsシステムに対する特権昇格の脆弱性について通知を受けました。
- CVSS
この脆弱性により、管理者権限を持つ攻撃者が Windows システム ファイルの現在のバージョンを古いバージョンに置き換えられます。この脆弱性を悪用すると、攻撃者は以前に軽減された脆弱性を再導入し、VBS の一部の機能を回避し、VBS によって保護されているデータを流出させる可能性があります。
脆弱性詳細1: Windows Downdate (CVE-2024-38202)
Windows Updateアーキテクチャ
以下、SafeBreach社の記事を参考にして詳細を説明します。
Windows UpdateではClient-Serverアーキテクチャが使用されており、COMで通信が行われています。Administrator権限はClientプロセスで使用され、Trusted InstallerによってServerプロセスのほうが実行されています。つまり、Windows Updateによって更新されるファイル類はTrusted Installerの支配下にあり、Administrator/NT SYSTEMはファイルを直接変更することができません(下図参照)。
ここでAdministratorからTrusted Installerに権限昇格ができれば上述の更新プロセスを悪用することができそうです。実際、AdministratorからTrusted Installerに権限昇格させるようなPoCがいくつか公開されています。しかし、これらは通常では悪意のある行為と見なされてEDRが検出・ブロックします。
Windows Updateフロー
Windows Updateでは以下のフローが存在します。
- クライアントは更新フォルダに含まれる更新を実行するようにサーバーに依頼します。
- サーバーは更新フォルダの整合性を検証します。
- 検証後サーバーは更新ファイルを確定します。これはクライアントがアクセスできない権限のフォルダに保存されます。
- サーバーは、クライアントがアクセスできない権限で%Windir%¥WinSxS¥Pending.xmlとしてアクションリスト(更新するファイル保存先ファイルなどが指定されている)を保存します。
- OSが再起動されるとアクションリストが実行され、再起動中に更新アクションが実行されます。特筆すべきは、これ以降でPending.xmlファイルの検証プロセスがない点です。
更新アクションリストの深掘り
研究者はここで、更新アクションリストが複数の再起動で適用されていることから、更新アクションリストが保存されているはずと仮定してレジストリを検索し、「PoqexecCmdline」というキーを見つけました。
さらに、このレジストリキーがTrusted Installerによりアクセス制限されていないことも判明しました。
Pending.xmlファイルは
<POQ postAction=”reboot”>
<CreateFile path=”C:\Windows\System32\Create.exe” fileAttributes=”0x0000000′′/>
<MoveFile source=”C:\UpdateDir\Source.exe“ destination=”C:\Windows\System32\Destination.exe”/>
<HardlinkFile source=”C:\UpdateDir\Source.exe“ destination=”C:\Windows\System32\Destination.exe”/>
<SetFileInformation path=”C:\UpdateDir\Source.exe“ securityDescriptor=”binary base64:[BASE64-BLOB]” flags=”0x00000040′′/>
<DeleteFile path=”C:\Windows\System32\Delete.exe”/>
<CreateDirectory path=”C:\Windows\System32\Directory” fileAttribute=”0x00000080“ securityDescriptor=”binary base64:[BASE64-BLOB]”/>
<CreateKey path=”\Registry\Machine\Key”/>
<SetKeyValue path=”\Registry\Machine\Key” name=”Name” type=”0x00000001“ encoding=”base64′′ value=”[BASE64-BLOB]”/>
<SetKeySecurity path=”\Registry\Machine\Key“ securityDescriptor=”binary base64:[BASE64-BLOB]” flags=”0x00000001′′/>
<DeleteKeyValue path=”\Registry\Machine\Key” name=”Value”/>
<DeleteKey flags=”0x00000001′′ path=”\Regsitry\Machine\Key”/>
</POQ>
(リストはSafeBreach社記事より引用)
という内容になっており、ここでHardlinkFileを書き換えることで、アップグレードではなくダウングレードさせることが可能です。
悪用の方法
これらから
- Trusted Installerサービスを自動開始として設定し
- レジストリに独自にHardlinkFileを書き換えたPending.xmlパスを追加して
- レジストリにHardlinkFileを書き換えたPending.xml識別子を追加する
という手順で、再起動時にUpgradeではなくダウングレードさせることが可能になる、というものになります。
脆弱性2:Windows VBSの突破(CVE-2024-21302)
Windows VBS
Windows VBS(Virtualization Based Security)は、ハードウェア仮想化と Windows* ハイパーバイザーを使用し、隔離された仮想環境を作成してセキュリティー・ソリューションをホストすることで、オペレーティング・システムの脆弱性から保護する機能になります。
VBSはCredential Guard、 HVCI、System Guard Secure Launch、Shielded VMなどの機能から成り立っています。
VBSアーキテクチャ
VBSではハイパーバイザーに仮想信頼レベル(VTL)を導入します。VTLが高ければ高いほど、特権のようになっていきます。低いVTLはメモリにアクセスしたり、高いVTLを侵害することはできません。現在、Windowsでは2つのVTLが存在しています。
- VTL0:ノーマルモードとして知られており、元のOSが含まれています。
- VTL1:セキュアモードとして知られており、セキュリティ機能と緩和策や分離技術が含まれています。
UEFI Lockによる保護
VBSは、UEFI Lockと呼ばれる機能で無効化から保護されています。VBSがロックされている場合、ロックはWindowsレジストリではなくUEFIから渡されるブートサービス変数で設定されており、システムの起動時にのみアクセスできるため、非常にシンプルで信頼性の高い保護になっています。
ユーザーがVBSを無効にしたい場合は、マイクロソフトが署名したEFIアプリケーションをロードする必要があります。このEFIは、システムの起動時にユーザーに物理的に無効化を承認するようにリクエストして、その結果VBSが無効になります。この無効化はブート中に実行され、セキュアブートのため署名されたコードが実行されていることが前提です。結局、システムへの物理的なアクセスがなければ、VBSを無効にすることはできません。
UEFI Lockのバイパス
研究者が先の脆弱性1を応用して、ハイパーバイザーを攻撃者が制御する別のファイルに置き換える事ができるかテストしたところ、UEFI Lockをバイパスできたということです。
OSローダーが通常のようにブートした後、VBSで使用されるファイルの検証に失敗した場合、VBSの検証を放棄して通常どおりにブートしました。
組み合わせによる悪用
これら脆弱性1と脆弱性2を組み合わせることで、下記のようにセキュリティがガードされている状態のシステムから資格情報を盗み出す事に成功しています。
- UEFI LockでLSASSのPPLが有効になっており、LSASSダンプが保護されている
- クレデンシャル保護はUEFI Lockで有効になっており、VTL1が保護されている
- Windows Defenderが稼働している
最終的には、これらの脆弱性を組み合わせることで、保護機能に一切検出されることなく
- セキュアモードのユーザプロセスの資格情報を取得する
- セキュアモードのセキュアカーネルをダウングレードさせる
- Hyper-VのHyper Visorをダウングレードさせる
ことに成功しています(下図参照)。
今回の脆弱性悪用で特筆すべき点
今回の脆弱性悪用で特筆すべき点としては
- 検出が困難。実行自体は正当な方法を組み合わせているので検出が難しい
- 見えにくい。技術的にはシステムを「更新」しているので最新のものに見える
- さらにコンポーネントがおかしくなっていることをSFC.exeが検出しない
という点が挙げられています。
そのため、この攻撃を行われた場合には外部からはUpdateを行った状態だとされているにも関わらず、内部的にはダウングレードさせたままにしておけるため、危険な脆弱性になります。また、VBSなど仮想化ベースのセキュリティもダウングレードされてしまうため、合わせて非常に危険な脆弱性であるということがわかります。
参考情報
- SafeBreach社「Windows Downdate: Downgrade Attacks Using Windows Updates」
- Intel社「仮想化ベースのセキュリティー (VBS) とは何か、また実行されているかどうかを識別する方法 」
2. Windowsのゼロクリック脆弱性(CVE-2024-38063)
8月13日(米国時間)にMicrosoftはユーザーがリモート攻撃される可能性があるという脆弱性「CVE-2024-38063」を公開しました。この脆弱性は8月の月例パッチで修正されていますが、ゼロクリックでユーザーが何もしなくても攻撃される深刻なものです。
ここでは、この”CVE-2024-38063”について見ていきたいと思います。
一次情報源
- 発見者(KunLun Lab所属の研究者Wei氏)のポスト
CVE情報
CVE-2024-38063
- CVSS
- Base Score: 9.8 Critical / Temporal Score: 8.5
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
- CWE: 191(整数アンダーフローの問題)
脆弱性情報
今回の脆弱性は、整数アンダーフローに起因する問題のようです。詳細な情報は発見者が「被害を考慮すると、当面は詳細を公表しない」とのことです。
また、重大な情報として「脆弱性はファイアウォールによって処理される前にトリガーされるため、ローカルのWindowsファイアウォールでIPv6をブロックしても悪用は阻止できないと付け加えた」とのことです。そのため、今回の問題に対処するにはWindows Updateを行うか、該当WindowsマシンでIPv6を無効にするしかない模様です。
修正方法
8月の月例脆弱性公開・パッケージ更新に今回の脆弱性が含まれています。そのためWindows Updateを実行することで、この脆弱性を修正できます。
緩和策
WindowsマシンのIPv6を無効化することで、この脆弱性を迂回できます。
悪用の可能性
現在これを悪用した攻撃があったという情報は入っていませんが、CVE-2024-38063 が悪用される可能性が高まっているため、ユーザーは今月の Windows セキュリティ更新プログラムを直ちに適用することをお勧めします。
参考情報
- 発見者(KunLun Lab所属の研究者Wei氏)のポスト___
- BleepingComputer: Zero-click Windows TCP/IP RCE impacts all systems with IPv6 enabled, patch now
8月のまとめ
8月ですが、このほかにも「0.0.0.0 Day」脆弱性や、SolarWindsの脆弱性(CVE-2024-28986)、AMDのSinkClose脆弱性(CVE-2023-31315)など、名前付きの脆弱性が多く出ています。これはちょうどBlackHat/Defconの時期だったということもあるようです。皆様も使用ベンダーからの情報に注意して、きちんと更新を行うように気をつけてください。
<著者> 面 和毅
サイオステクノロジー株式会社 上席執行役員
OSS/セキュリティエバンジェリスト
OSSのセキュリティ専門家として20年近くの経験があり、主にOS系のセキュリティに関しての執筆や講演を行う。大手ベンダーや外資系、ユーザー企業などでさまざまな立場を経験。
2015年からサイオステクノロジーのOSS/セキュリティエバンジェリストとして活躍中。また、ヒートウェーブ株式会社でも講師として活動中。
専門分野はSELinuxを含むOSのアクセス制御、AntiVirus、SIEM、脅威インテリジェンス。
「脆弱性研究所」の最新話は、メールマガジンにてもご案内致しています。是非JAPANSecuritySummit Updateのメールマガジンにご登録ください。
メールマガジンの登録はこちらからお願いします
最速! 危険度の高い脆弱性をいち早く解説「脆弱性研究所」の過去の記事はこちらから