9月に公開され、多くの企業に関係する脆弱性「 Zerologon 」が問題となっています。 ZerologonはマイクロソフトのActive Directoryサーバの管理者権限を奪取する脆弱性になります。今回は Zerologonについて解説いたします。
Zerologon(CVE-2020-1472)は、攻撃者がNetlogon Remote Protocol (MS-NRPC) を使用してドメインコントローラーに対して特定のNetlogonセキュアチャネル接続を確立する場合に、特権ユーザへの昇格が可能になる脆弱性です。
この脆弱性を利用された場合、特定の Netlogon 機能の認証トークンが偽造され、コンピュータのパスワードを更新される可能性があります。脆弱性を利用すれば管理者権限を奪うことが可能です。そして、ドメインコントローラを含む同じネットワークに接続している全てのコンピュータを掌握される可能性があります。
米国土安全保障省がWindowsの「緊急」レベル脆弱性に異例の警告
米国土安全保障省のサイバーセキュリティー・インフラストラクチャー・セキュリティー庁(CISA)は政府機関で使用するWindows Serverに対して、2020年9月21日(米国時間)までに脆弱性「CVE-2020-1472」を修正するプログラムを適用するよう緊急指令を出しました。
CISAは、この脆弱性が、連邦民間行政部門に収容不可能な危険をもたらすので、迅速かつ緊急の措置が必要であると判断しています。この決定は、次の事項に基づいています。
-パッチされていないドメインコントローラが悪用される可能性を高める攻撃コードの可用性
-連邦政府機関全体で影響を受けるドメインコントローラの幅広い存在
-機関情報システムの損傷の可能性が高い
-成功の損傷の重大な影響
-アップデートがリリースされた後、 30日以上持続した脆弱性が存在
影響を受けるバージョン |
– Windows Server 2012 R2 – Windows Server 2012 (Server Core installation) – Windows Server 2012 – Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) – Windows Server 2008 R2 for x64-based Systems Service Pack 1 – Windows Server 2016 (Server Core installation) – Windows Server 2016 – Windows Server, version 1903 (Server Core installation) – Windows Server, version 1909 (Server Core installation) – Windows Server 2019 (Server Core installation) – Windows Server 2019 – Windows Server, version 2004 (Server Core installation) |
まず脆弱性への攻撃を可能とするために、攻撃者はドメインコントローラーとTCP通信できるネットワークに接続する必要があります。
そのため、インサイダー攻撃か、既にウイルスに感染し、乗っ取られているデバイスを使用する必要があります。
暗号の認証プロトコルの問題
下記2つを使用し、ドメインコントローラの管理者パスワードを変更することで、攻撃者は管理者としてログインすることができる。
・認証の突破が可能
・AESの利用モードが正しく使用されていない為、パスワードを空に設定できる
※AESの詳細について細かく解説はいたしません。参考資料欄にリンクを記載しておりますのでそちらをご参照ください。
認証プロトコルの流れ
1.Client challenge : ランダムな文字列(バイト列)のやりとりを行う
2.Server challenge : ランダムな文字列(バイト列)のやりとりを行う
3.Client credential : SessionKeyを使用して1を暗号化して再送信する
- 1と3を複合化したものを比べ一致しているか認証を行う
- 異なるSessionKeyを使用した場合は1と3が一致しないので認証が通らない
4.Server credential : SessionKeyを使用して2を暗号化して再送信する
- 2と4を複合化したものを比べ一致しているか認証を行う
5.Signed+sealed with session key : 以降はクライアントはサーバの機能を使用することが出来る
認証プロトコルの何が悪かったのか
AES-cfb8というアルゴリズムで実装されている暗号化の処理に問題があることが原因です。
AES-CFB8のアルゴリズム
1.平文の前にランダムの16バイトのバイト列を付け加える
2.AESを取り先頭の1バイトと平文の先頭でXを取り、暗号文とします
3.1と同じようにAESを取る
4.2と同じように先頭の1バイトと平文の先頭でXを取り、暗号文とします
5.これを繰り返すことでできるのが下図の結果になります
Windowサーバで問題になっていた点
問題となった点は前列のランダムの16バイト列が0で固定されていたことです。これにより、全て0の平文を暗号化した際に1/256の確率で0になってしまいます。なぜそうなるのかを見ていきます。
1.平文の前にランダムの16バイトのバイト列が0で固定されていた為、1/256の確率でAESの1byte目の値が0になります。
※1byteが0になる確率:1byteは0~255なので1/256で0になります。
2.AESで出した値が0になると平文の先頭0でXORを取ると0になります
3.AESは同じ入力だと同じ結果になるのでまた0になります。
4.それを繰り返していくと0になります
★まとめ★ 0を暗号化した場合は0になる。
ではなぜ1/256で0になるといけないのか・・
全て0を入力することで「値A」と「値B」が1/156の確率で一致してしまい認証を通過することが出来ます。
よって、サーバはどんなユーザでも認証を通すことが出来ます。
認証が通った後の攻撃者の行動
ホワイトペーパーには、Netlogon リモートプロトコルにおける クライアントとサーバーの認証プロセスにおいて、この脆弱性がどのように悪用されるのか、その概要が記載されいます。
攻撃者は認証が通った後、自在に操作する為に、パスワードのリセットを行います。脆弱性を悪用してオールゼロになるまで 認証プロセスを繰り返し 認証を突破します。認証が通った後、攻撃者は長さゼロのパスワードを指定して コンピュータアカウントパスワードに空パスワードを設定します。
サーバは長さ0のパスワードと解釈し、結果としてEmpty password(無のパスワード)がセットされます。このEmptyパスワードをセットすることで攻撃者が管理者権限を得ることが出来ます。
緊急パッチの適応
Microsoft社から Zerologonに関してCVE-2020-1472(Netlogon Elevation of Privilege Vulnerability)パッチを別途配布しています。
◆Microsoft社ページ◆
パッチが2段階に分かれている
今回の脆弱性の対策としてMicrosoft社から緊急でパッチが出ていますが、このバグの複雑さを考えるとこの問題を完全に根絶するには来年初めに2回目のパッチを適用しなければならないと説明しています。2回目のパッチについては2021年第1四半期に提供が予定されてる為、2段階目のパッチ配布までは脆弱性が完全に無くならないという点が懸念されています。
2回目のパッチ配布までにできる対策
Microsoft社は未署名の接続や保護されていない接続をブロックを推奨しています。
またSNORT(ids)にてSID 55802 をアラートモードで使用することで、上記のルールが正常に機能しているか確認できます。
◆SNORT SID55802についての詳細◆
Zerologonは中枢の管理者権限を奪取することで非常に広範囲に影響を及ぼす攻撃になっています。もし該当する製品を使用されている場合は即時の対応が必要です。
Microsoft CVE-2020-1472 | Netlogon の特権の昇格の脆弱性
セキュリティ上の脆弱性
【注意喚起】Windowsとネットワーク管理者権限を一撃で乗っ取る、脆弱性「Zerologon」対策について
Detecting and Preventing Critical ZeroLogon Windows Server Vulnerability
WHITEPAPER Zerologon: ※ここで使用しているタイトル以外の画像は全てこちらのレポートに記載されているものを使用しております。
NTLM認証
OAuth (ウィキペディア)
CISCO Microsoft Netlogon のエクスプロイトが増加の一途
「Zerologon」とは何か? 深刻度の高い脆弱性、ADサーバを利用しているなら緊急対策を
Zerologon Windows exploit lets attackers instantly become admins on enterprise networks
CVE-2020-1472 ZeroLogonの原因をわかりやすく解説!
Zerologon (CVE-2020-1472) 「ドメインコントローラーにパッチ適用を」
Written by CYBERFORTRESS, INC.
Tweet