公開日:2018/08/28 最終更新日:2018/09/12

JVNVU#96222149
Microsoft Windows タスクスケジューラの ALPC インターフェースにおけるローカル権限昇格の脆弱性

概要

Microsoft Windows タスクスケジューラの ALPC インターフェースには、ローカル権限昇格が可能になる脆弱性が存在します。ローカルユーザによって、SYSTEM 権限が取得される可能性があります。

影響を受けるシステム

  • Microsoft Windows タスクスケジューラ

詳細情報

Microsoft Windows タスクスケジューラの SchRpcSetSecurity API には、Advanced Local Procedure Call (ALPC) の処理に脆弱性が存在します。認証されたユーザによって、ACL (Access Control List、アクセス制御リスト) で保護されているファイルを上書きされ、SYSTEM 権限を取得される可能性があります。
CERT/CC では、公開されたエクスプロイトコードが 64-bit Windows 10 および Windows Server 2016 Server で動作すること、さらに若干の変更により 32-bit Windows 10 で動作することを確認しています。他のバージョンの Windows でも動作する可能性があります。
なお、本脆弱性を悪用したマルウェアが確認されています。

想定される影響

当該製品のローカルユーザによって、SYSTEM 権限を取得される可能性があります。

対策方法

アップデートする
Microsoft が提供する情報をもとに、Windows アップデートを適用してください。
Microsoft は本脆弱性への対応として CVE-2018-8440 | Windows ALPC の特権の昇格の脆弱性 を提供しています。

ワークアラウンドを実施する
Microsoft Sysmon を使用して攻撃コードの実行を検知する
Kevin Beaumont 氏は、本脆弱性を悪用する攻撃コードの実行を Microsoft Sysmon を使用して検出する方法を解説しています (DoublePulsar)。

ディレクトリ C:\Windows\Tasks にアクセス制御リストを設定する
Karsten Nilsen 氏は、本脆弱性に対する以下のようなワークアラウンドを提案しています。
管理者権限で起動したプロンプトから次のコマンドを実行します。

icacls c:\windows\tasks /remove:g "Authenticated Users"
icacls c:\windows\tasks /deny system:(OI)(CI)(WD,WDAC)

また、Microsoft から提供された本脆弱性の修正をシステムに適用する際には、想定外の副作用を防ぐためにこれらの変更を元に戻しておいたほうが良いでしょう。変更を元に戻す場合には次のコマンドを実行します。

icacls c:\windows\tasks /remove:d system
icacls c:\windows\tasks /grant:r "Authenticated Users":(RX,WD)

注意: このワークアラウンドは、Microsoft から承認された方法ではありません。
このアクセス制御リストの設定を行う際には、システムの通常の利用に影響が出ないことを十分確認してから実施してください。
CERT/CC で行ったテストでは、これらのアクセス制御リストを設定することにより攻撃コードの実行はブロックされました。また、既存のタスクの実行や新たなタスクの登録への悪影響は見つかりませんでした。
ただし、レガシーなタスクスケジューラインタフェース経由でのタスク登録、SCCM (System Center Configuration Manager) や SCEP (System Center Endpoint Protection) に関連するタスクなどに副作用を及ぼす可能性があります。本ワークアラウンドを実施する際には、事前に十分な検証を行ってください。

参考情報

  1. CERT/CC Vulnerability Note VU#906424
    Microsoft Windows task scheduler contains a local privilege escalation vulnerability in the ALPC interface
  2. SandboxEscaper/randomrepo - GitHub
    randomrepo/PoCLPE.rar
  3. DoublePulsar
    Task Scheduler ALPC exploit high level analysis
  4. Microsoft Developer Network
    3.2.5.4.5 SchRpcSetSecurity (Opnum 4)
  5. Karsten Nilsen
    Short term solution on VU#906424
  6. ESET
    PowerPool malware exploits zero-day vulnerability

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

CVSS v3 CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
基本値: 7.8
攻撃元区分(AV) 物理 (P) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 低 (L)
必要な特権レベル(PR) 高 (H) 低 (L) 不要 (N)
ユーザ関与レベル(UI) 要 (R) 不要 (N)
スコープ(S) 変更なし (U) 変更あり (C)
機密性への影響(C) なし (N) 低 (L) 高 (H)
完全性への影響(I) なし (N) 低 (L) 高 (H)
可用性への影響(A) なし (N) 低 (L) 高 (H)
CVSS v2 AV:L/AC:L/Au:S/C:C/I:C/A:C
基本値: 6.8
攻撃元区分(AV) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 中 (M) 低 (L)
攻撃前の認証要否(Au) 複数 (M) 単一 (S) 不要 (N)
機密性への影響(C) なし (N) 部分的 (P) 全面的 (C)
完全性への影響(I) なし (N) 部分的 (P) 全面的 (C)
可用性への影響(A) なし (N) 部分的 (P) 全面的 (C)

謝辞

関連文書

JPCERT 緊急報告 JPCERT-AT-2018-0038
2018年 9月マイクロソフトセキュリティ更新プログラムに関する注意喚起
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE CVE-2018-8440
JVN iPedia

更新履歴

2018/08/29
[詳細情報]、[参考情報] を更新しました。
2018/08/30
[詳細情報]、[参考情報] を更新しました。
2018/09/03
[詳細情報]、[対策方法] を更新しました。
2018/09/03
[対策方法] を更新しました。
2018/09/12
[詳細情報]、[対策方法] を更新し、[ベンダ情報]、[参考情報]、[関連文書] に追記しました。