あけましておめでとうございます。新年は脆弱性をすっきりさせて仕事始めしたいですね。
油断していると気づけば年度末になり後回しになったところで大事件とならないように新年早々からセキュリティに関わる仕事をされる方は先手を打ちましょう。
昨年末、Qualysの調査により、99%以上のデバイスがたった8つの脆弱性に対して脆弱であることを発表しました。
サイバー攻撃者は、ビジネス目的の傾向を強めており「シェアの高い」流行ってる脆弱性を取り組んでツールやサービスの価値や魅力を高めています。
逆に守る側としては、攻撃者のトレンドを押さえておけば費用対効果の高い対策が可能と言うことになります。
この記事では現在最も注目を集めてしまっている脆弱性の8つを簡潔に解説していきます。
・CVE-2020-1472: Microsoft Windows Netlogon Elevation of Privilege Vulnerability
・CVE-2019-0604: Microsoft Office and Microsoft Office Services and Web Apps Security Update February 2019 Microsoft SharePoint
・CVE-2019-0708: Microsoft Windows Remote Desktop Services Remote Code Execution Vulnerability (Blue. Keep)
・CVE-2014-1812: Microsoft Windows Group Policy Preferences Password Elevation of Privilege Vulnerability (KB2962486)
・CVE-2020-0688: Microsoft Exchange Server Security Update for February 2020
・CVE-2016-0167: Microsoft Windows Graphics Component Security Update (MS16-039)
・CVE-2017-11774: Microsoft Office and Microsoft Office Services and Web Apps Security Update October 2017
・CVE-2018-8581: Microsoft Exchange Server Elevation of Privilege Vulnerability
CVE-2020-1472: Microsoft Windows Netlogon Elevation of Privilege Vulnerability
ゼロログオンの名前で有名な本ブログでも紹介させて頂いたNetlogonの認証スキームの脆弱性です。
Windowsのドメインコントローラの管理者権限を不正に取得する可能性があるため影響度としては2020年最悪の脆弱性ではないでしょうか。
原因はNetlogonリモートプロトコル(MS-NRPC)の認証部分にはアカウントロックがないことです。
CVE-2020-1472の技術的な解説とPoC
サーバログインに利用されるNetlogonリモートプロトコル(MS-NRPC)はユーザアカウントベースの認証は実施せず、代わりクライアントとサーバ(ドメインコントローラ)がお互いに秘密の値をやり取りし認証を行います。この認証部分にはアカウントロックがなく暗号化認証スキームで利用されるパケットの特定のフィールド(ClientCredential)を「0」で埋めて平均256回程度実行すると認証が成功する可能性があります。その後、同様の方法でADのパスワード変更を成功させることでWindowsのドメインコントローラの管理者権限を不正に取得することが可能という脆弱性です。
PoCは存在しADにアクセスできるあらゆる端末から実行可でアタッカースコープは極めて広範囲です。
CVE-2020-1472の影響と対策
影響はドメインコントローラーの乗っ取りであり、組織内で関連づけられるあらゆる情報資産にアクセス・改竄・破壊の可能性がありビジネスの継続性に致命的な影響を与えます。
根本対策はNetlogon RPCの無効化です。緊急パッチは出ているため、ドメインコントローラーはパッチ適用だけで対策が完了しますが、パッチの適用によりNetlogon RPCからセキュア RPC(NTLM SSP)にプロトコルが切り替わるため、ドメインコントローラーにアクセスするエンドポイントの影響を確認しないとADに有効にアクセスできなくなる可能性があります。(windowsはアップデートしているなら特別拒否していない限りアクセスできなくなることはない。MacOSXなどWindows以外のOSの接続を確認しましょう。)
Microsoftも2月までにNetlogon RPCからセキュア RPC(NTLM SSP)に強制移行するので、NTLM SSPへの移行準備がまだの方は急がれることをお勧めします。
公式ページでは「[AD 管理者向け] CVE-2020-1472 Netlogon の対応ガイダンスの概要」と段階的に切り替えるための手順が記載されているので参考になるかと存じます。
影響範囲の調査のイメージが沸かない方に簡易的な影響範囲の調査フローで発生する工数を記載しますのでご参考下さい
・どんな問題がなければアップデート可能か?をリストアップする工数
・その問題が発生するライン・機能を関連サービス・エンドポイントをリストアップする工数
・関連実装と差分検証を行いつつ、対応に必要な工数を産出する工数
・情報が出揃った時点で最適化、工数算出する工数
・作業の人員確保とスケジュール、トラブル時の予備工数の確保する工数
・スケジュールされた作業を実施する工数
CVE-2019-0604: Microsoft Office and Microsoft Office Services and Web Apps Security Update February 2019 Microsoft SharePoint
Microsoft SharePoint の脆弱性で、悪用されることで細工を施したSharePointアプリケーションパッケージをアップロードされた場合、リモートコード実行 (RCE) につながる可能性があります。
国際連合ウィーン事務局、国際連合ジュネーヴ事務局、国際連合人権高等弁務官事務所など国連のサーバ 42 台がこの脆弱性を悪用されて攻撃を受けています。
CVE-2019-0604の技術的な解説とPoC
ctl00$PlaceHolderDialogBodySection$ctl05$hiddenSpanDataのデータがメソッドMicrosoft.SharePoint.BusinessData.Infrastructure.EntityInstanceIdEncoder.DecodeEntityInstanceId(string)が呼び出すXmlSerializer(Type)の型も同時に操作することができてしまうため、デシリアライゼーションに不備がありコード実行可能であり、かつメソッドに渡すことが可能なエンドポイント(下記3箇所)と対応するメソッド(ItemPicker.ValidateEntity(PickerEntity))が存在することで、リモートからのコード実行が可能となるため脆弱であると言う事になります。(「ItemPicker」のポストバックリクエストからEntityInstanceIdEncoder.DecodeEntityInstanceId(string)メソッドに到達する経路となります)
Microsoft.SharePoint.ApplicationPages.ActionRedirectPage:/_layouts/15/ActionRedirect.aspx
Microsoft.SharePoint.ApplicationPages.DownloadExternalData:/_layouts/15/downloadexternaldata.aspx
Microsoft.SharePoint.Portal.WebControls.ProfileRedirect:/_layouts/15/TenantProfileAdmin/profileredirect.aspx
PoCに関してはhackerOneの記事を見ると実施方法がわかりやすいです。
よくある電卓を立ち上げる系のPoCは以下の通りです。
まず、バージョンごとのアクセスエンドポイントを確認します。
sharepoint2019,2016
POST /_layouts/15/picker.aspx?PickerDialogType=Microsoft.SharePoint.WebControls.ItemPickerDialog,+Microsoft.SharePoint,+Version=16.0.0.0,+Culture=neutral,+PublicKeyToken=71e9bce111e9429c”;
sharepoint2013
POST /_layouts/15/picker.aspx?PickerDialogType=Microsoft.SharePoint.WebControls.ItemPickerDialog,+Microsoft.SharePoint,+Version=15.0.0.0,+Culture=neutral,+PublicKeyToken=71e9bce111e9429c”;
sharepoint2010
POST /_layouts/15/picker.aspx?PickerDialogType=Microsoft.SharePoint.WebControls.ItemPickerDialog,+Microsoft.SharePoint,+Version=14.0.0.0,+Culture=neutral,+PublicKeyToken=71e9bce111e9429c”;
次に実行したいコマンドを記載したXMLを作成します。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:Diag="clr-namespace:System.Diagnostics;assembly=system">
<ObjectDataProvider x:Key="LaunchCalch" ObjectType="{x:Type Diag:Process}" MethodName="Start">
<ObjectDataProvider.MethodParameters>
<System:String>cmd.exe</System:String>
<System:String>/c calc.exe</System:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</ResourceDictionary>
そしてctl00$PlaceHolderDialogBodySection$ctl05$hiddenSpanDataに挿入するエンコードされた値をConsoleApplication1.exeで生成します。
目的のプロセスが実行されたら脆弱と確認可能です。
CVE-2019-0604の影響と対策
根本対策:対策はパッチを適用することです。パッチですが、3月12日にフォローアップリリースされた方をご利用下しさい。2月のパッチは不完全なためです。
軽減策:IoCの結果から以下のパスに対するアクセスコントロールを実施してください。
- /_layouts/15/Picker.aspx
- /_layouts/Picker.aspx
- /_layouts/15/downloadexternaldata.aspx
/_layouts/15/picker.aspx?PickerDialogType=Microsoft.SharePoint.Portal.WebControls.ItemPickerDialog
CVE-2019-0708: Microsoft Windows Remote Desktop Services Remote Code Execution Vulnerability (Blue. Keep)
BlueKeepの名前で有名になってMicrosoft Windowsリモートデスクトップサービスのリモートコード実行の脆弱性です。
デフォルトではTCP 3387番ポートとなっております。
CVE-2019-0708の技術的な解説とPoC
MS-RDPBCGR(Remote Desktop Protocol:Basic Connectivity and Graphics Remoting)が認証前にリモートデスクトップ接続のフローで
TermDD(Terminal Desktop Server Driver).sysの接続プロセスにおけるUse After Freeを引き起こす脆弱性です。
Use After Freeとは開放したメモリに対して(脆弱性により)再びアクセス、実行することが可能となることを悪用した攻撃のことです。
複数の方法でRDPのPDUを使ってカーネルに任意のデータを書き込むことができるため被害は甚大なものになります。
exploitコードは500ドルで販売されています。簡易的なPoCであればこのようなコードが公開されています。
PoCの偽物も出回っているので注意が必要です。
CVE-2019-0708の影響と対策
影響範囲はWindows XP、Windows 2003、Windows 7およびWindows 2008です。
根本対策:公式のパッチを充てること(要再起動)
軽減策:
①RDPポートを無効化する。RDPポートへのアクセスを監視・対応フローを策定する
②NLA(Netwrok Level Authentication) を有効にしてリモートデスクトップ接続が確立される前に事前認証を発生させる
→接続にrdpファイルを使用している場合で “enablecredsspsupport:i:0 ” と記載し NLA で使用する CredSSP プロトコルを使用しないよう明示的に設定している場合は接続できなくなります。
CVE-2014-1812: Microsoft Windows Group Policy Preferences Password Elevation of Privilege Vulnerability (KB2962486)
Microsoft Windowsグループポリシー設定パスワードの特権昇格の脆弱性です。
CVE-2014-1812の技術的な解説とPoC
Windows ActiveDirectoryがグループポリシーの設定を使用して構成されたパスワードの配布する処理に不備があるため、リモートで認証されたユーザーが不正にパスワードを取得・復号できます。
PoCおよび攻撃コードはmetasploitで有名なrapid7で公開されています。
CVE-2014-1812の影響と対策
影響範囲はWindows XP、Windows 2003、Windows 7およびWindows 2008です。
根本対策:パッチを充ててください。
CVE-2020-0688: Microsoft Exchange Server Security Update for February 2020
Microsoft Exchange Serverの脆弱性です。
CVE-2020-0688の技術的な解説とPoC
Exchange Control Panel (ECP) コンポーネントの脆弱性です。Microsoft Exchange Serverはインストール時に一意のキーを適切に作成できない場合、
Microsoft Exchange ServerのViewStateを生成するための値はweb.configのvalidationKeyとdecryptionKeyはハードコードされています。この脆弱性を悪用するには、認証されたセッションからViewStateUserKeyとの__VIEWSTATEGENERATOR値を収集する必要があります。/ecp/default.aspxにアクセスし認証の応答を得ることで必要な値を取得することが可能です。これらの取得した値をysoserial.netと言ったフリーツールの生成値を利用しアクセスすることで、Webアプリケーションによりデシリアイズされる任意のオブジェクト(.NETコード)を渡すことができます。
PoC(概念実証コード)やExploit Moduleもリリースされています。
CVE-2020-0688の影響と対策
システム権限でのコード実行が可能となるためメールサーバの設定変更やメールの情報漏洩、更には組織内ネットワークへの侵入経路として悪用されます。
根本対策:パッチを充ててください。
軽減策:/ecp/default.aspxへの不自然なアクセスを検知・対応のフローを定めてください。
CVE-2016-0167: Microsoft Windows Graphics Component Security Update (MS16-039)
Win32k の特権の昇格の脆弱性です。100社以上の米企業から顧客のクレジットカード情報が盗まれた言われています。
CVE-2016-0167の技術的な解説とPoC
win32kWindowsグラフィックスサブシステムにおけるMNDestroyHandler()のuse-after-freeの不備を悪用したローカルの特権昇格の脆弱性です。
PUNCHBUGGYという(DLL)という悪意あるダウンローダーを利用します。まずCreateWindowEx()を呼び出してWNDCLASSEX.lpfnWndProcフィールドを、WndProcという名前の関数に設定します。
SetWindowsHookEx()とSetWinEventHook()をそれぞれ使用して、アプリケーション定義のフック(MessageHandlerという名前)とイベントフック(EventHandlerという名前)をインストールします。
SetTimer()を設定しておきDestroyWindow()を呼び出させ、SetSysColors()のヒープのアドレスfffff900 c1aaac40のメモリ破壊を試みます。
この試行が成功したらシステムプロセストークンを盗んでcmd.exe子プロセスを昇格します。
CVE-2016-0167の影響と対策
マクロを実行できる入り口さえあればHTTPS経由で追加コードを拡充しながら被害を拡大しPOS(point of sale)などにもアクセスされクレジットカード情報へのアクセスまで確認されたことから、組織が繋がるWindowsネットワーク全体に被害がおよぶ可能性があります。
根本対策:パッチを充ててください。
軽減策:マクロを制限し、その制限が有効か監視・対応フローを定めてください。
CVE-2017-11774: Microsoft Office and Microsoft Office Services and Web Apps Security Update October 2017
Microsoft Office のメモリ内のオブジェクト処理の不備に起因する脆弱性です。攻撃されるとOutlookのサンドボックスを回避し、Outlookが実行されているOS上で任意のコードを実行される可能性があります。
イランの国営ハッキンググループ「APT33(通称Elfin)」で開発されたShamoonというマルウェアに悪用されているという報告があります。
CVE-2017-11774の技術的な解説とPoC
ソーシャル エンジニアリング(フィッシングなど)と組み合わせて細工されたドキュメント ファイルをユーザが開せる攻撃が推測されます。厄介な事にパッチを無効化させることが可能な攻撃となるためIoC(侵害兆候)はパッチを無効化しようとする行為になります。攻撃のマクロには以下の特徴があるので検知・対応に活かしてください。
①ユーザのドメイン参加の確認
Set wsh = CreateObject("Wscript.Shell")
d = wsh.ExpandEnvronmentStrings(%USERDOMAIN%)
If InStr(LCase(d), "targetdomain")
②CVE-2017-11774パッチを効果的に無効にする処理
EnableRoamingFolderHomepagesを「1」に強制的に設定
③Calendar \ URLに攻撃者の配下のBlob Storage(Azure)を示すように変更します。
指定先のサイトでRulerを利用した永続化などを利用し目的を達成しようとしてきます。
※RulerはExchange serverのMAPI/HTTPやRPC/HTTPを介してリモートでシェルを獲得、ユーザーを列挙、Outlookホームページを介したVBScriptの実行などが可能なツール郡です。
CVE-2017-11774の影響と対策
根本対策:グループポリシーオブジェクト(GPO)でWebホスティングの永続化を無効化してしまうことで対策となります。
HKEY_CURRENT_USER\Software\Microsoft\Office\<Outlook Version>\Outlook\WebView “Disable”= dword:00000001 |
軽減策:パッチを充てた上で以下のキーを監視し異常があったエンドポイントは切り離せるような対応フローを検討してください。
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ <Outlook Version> \ Outlook \ WebView \ Inbox “ URL” = http://(evilsite)/homepage.html |
CVE-2018-8581: Microsoft Exchange Server Elevation of Privilege Vulnerability
Microsoft Exchange Serverの脆弱性です。攻撃が成功するとExchange Serverの別のユーザになりすますことが成功する可能性があります。
CVE-2018-8581の技術的な解説とPoC
Exchange ServerでExchangeServerがCredentialCache.DefaultCredentialsを使用して接続するNTLM認証を使用する際の特定の欠陥によるものです。EWS(Exchange Webサービス)へのリクエストがNT AUTHORITYSYSTEMレベルで実行されTokenSerializationRightの特権のセッションが取得できるため改竄されたsoapリクエストにより任意のユーザになりすますことができてしまう事になります。原因となるレジストリキーは以下の通りです。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaDisableLoopbackCheck = 1 |
PoC(実証概念)は存在しており2つにスクリプトの実行により以下のような手順で攻撃を達成します。
STEP1.攻撃者は自身のアカウントでOutLookログインします。
STEP2.新しいフォルダを作成します。右クリックして出て来たコンテキストメニュー「Permission」を選択します。
STEP3.Add permissionsでターゲット(被害者)のメールアドレスを指定します。
STEP4.開発者オプション(F12キーを押して)、[ネットワーク]オプションを用いてservice.svc?action=GetFolder
リクエストのレスポンスを確認しBody->ResponseMessages->Items->0->Folders->0->PermissionSet->Permissions->N->UserId->SID
STEP5.PoCのserverHTTP_relayNTLM.pyに取得したSIDをVICTIM_SID設定してその他IPアドレスなど必要値を変更して実行し、ターゲットになりすましましアクセスを実行します。
STEP6.ここで成功したらPoCのExch_EWS_PushSubscribe.pyに必要な値を設定して実行します。ターゲットのメールの受信、ターゲットとしてのメールの送信や削除が可能になります。
CVE-2018-8581の影響と対策
なりすまされたユーザのメールの閲覧、なりすましてのメールの送信や削除が可能になり本人の正規のメールアドレス経由のフィッシングが可能になるため組織内の相手の真正性が破壊される被害が想定されます。
影響範囲は以下の通りです。
Microsoft Exchange Server 2010
Microsoft Exchange Server 2013
Microsoft Exchange Server 2016
根本対策:以下のキーを削除してください。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaDisableLoopbackCheck = 1 |
軽減策:パッチを充ててください。
以上8つの脆弱性についてまとめてみましたが改めて1つでも是正がもれるとヤバイ脆弱性であることが判ります。
単純にパッチで解決しない脆弱性も含まれますが、拒否られても諦めず、粘り強く一緒に方針を考えながら対応を促していきましょう。
以上です。参考になれば幸いです。