製品とサービス 製品とサービス

Microsoft Exchange における ProxyShell の脆弱性と対策

** 本記事は、ProxyShell vulnerabilities in Microsoft Exchange: What to do の翻訳です。最新の情報は英語記事をご覧ください。**

最終更新日 2021 年 8 月 27 日 UTC 14.53

概要

今年初めにリリースされたセキュリティパッチが未適用の Microsoft Exchange サーバーの脆弱性を狙った攻撃が相次いでいます。

ProxyShell は、Microsoft Exchange サーバーに存在する脆弱性の総称で、それにより攻撃者は認証を回避して特権ユーザーとしてコードを実行することができます。

ProxyShell は、 3 つの異なる脆弱性から構成されており、それぞれが 1 つの攻撃チェーンの一部として使用されます。

  • CVE-2021-34473
    認証前にパスを混乱させ、アクセス制御を回避する脆弱性
    4 月にリリースされた KB5001779 でパッチ適用済み
  • CVE-2021-34523
    Exchange PowerShell バックエンドに存在する権限昇格の脆弱性
    4 月にリリースされた KB5001779 でパッチ適用済み
  • CVE-2021-31207
    任意のファイル書き込みによる認証後のリモートコード実行
    5 月に公開された KB5003435 でパッチ適用済み

この脆弱性は、IIS (マイクロソフト社の Web サーバー) の 443 番ポートで通常動作するマイクロソフト社のクライアントアクセスサービス (CAS) に存在します。CAS は、ユーザーがモバイルデバイスや Web ブラウザから電子メールにアクセスできるようにするために、インターネットで公開されています。CAS がインターネットで公開されていることから攻撃が拡大しています。

対策

Microsoft Exchange Server を使用している場合

  1. Exchange IIS/Server ログをバックアップし、Microsoft Exchange の 2021 年 7 月のセキュリティ更新プログラムを適用していることを確認してください。
    • パッチが適用すると、脆弱性が悪用されることはなくなりますが、すでに攻撃者に侵入されている場合、パッチを適用していても、攻撃者による侵入後の行動を防ぐことはできません。
  2. ( Sophos MTR を使用されていない場合 ) 攻撃を受ける可能性があった期間を特定し、調査します。
    • Web シェル や悪意のあるバイナリを特定し、削除します。
    • w3wp.exe のインスタンスのプロセスアクティビティを確認します。
    • 攻撃者が常駐するためにネットワークで確立している足場を特定して削除します。/li>
  3. すべてのエンドポイントとサーバーにエンドポイントプロテクションが導入されていることを確認します。すべての保護機能が有効になっており、除外する項目が最小限になっていることを確認します

ソフォス製品による攻撃の検知

ソフォスのソリューションを利用されているお客様は、多層化された検知機能によって脆弱性の悪用から保護されています。これらの検出名は、脅威ハンターが自社環境で検索する際に使用できます。検出される脅威は以下のとおりです。

  • Troj/ASPDoor-Y (悪意のある PST ファイルを検出)
  • Troj/ASPDoor-AF (悪意のある PST ファイルを検出)
  • Troj/Agent-BHPF
  • Troj/Agent-BHQD (LockFile ランサムウェアのバイナリコンポーネントを検出)
  • Troj/WebShel-M
  • Troj/KillAV-IT
  • App/HamaKaze-A
  • App/HamaKaze-B
  • CXmal/WebAgnt-A (顧客の環境に合わせて悪意のある PST ファイルを検出)

SophosLabs は、IPS シグネチャも公開しています。

CVE Sophos XG/ Sophos Firewall EIPS SG UTM
CVE-2021-34473 2305889、2305807、2305979 2305807 57906、57907、57908、57909

8 月 24 日、IPS チームは、Microsoft Exchange Server の脆弱性の攻撃を検知するための、より汎用的な新しいシグネチャ 2305979 を公開しました。

SophosLabs は、LockFile に対する挙動ベースの保護機能を追加でリリースしました。これは、Sophos Central で管理されるソフォスのエンドポイントとサーバープロテクションを実行している Windows デバイスで、Mem/LockFile-A として検出されます。

Sophos XDR による攻撃リスクエクスポージャの調査

Microsoft Exchange の最新バージョンの確認

パッチが適用されていないバージョンの Exchange を使用しているかどうかを確認するには、以下の Windows デバイス用の XDR クエリを実行してください。これより、Exchange サーバーの表が生成され、現在のバージョン、およびパッチが必要かどうか示されます。

以下のクエリで特定されるバージョン番号は、Microsoft の記事から収集したものです。

SELECT DISTINCT
  'Check Exchange Version to confirm Patch. Manually verify build number from MS documentation./' Note,
  CASE product_version 
    WHEN '15.2.922.13' THEN 'Exchange 2019 CU10 Jul21 patched against ProxyShell'
    WHEN '15.2.922.7' THEN 'Exchange 2019 CU10 patched against ProxyShell. Recommend also updating with recent July Patch.'
    WHEN '15.2.858.15' THEN 'Exchange 2019 CU9 Jul21 patched against ProxyShell'
    WHEN '15.2.858.12' THEN 'Exchange 2019 CU9 May21 patched against ProxyShell. Recommend also updating with recent July Patch.'
    WHEN '15.1.2308.14' THEN 'Exchange 2016 CU21 Jul21 patched against ProxyShell'
    WHEN '15.1.2308.8' THEN 'Exchange 2016 CU21 patched against ProxyShell. Recommend also updating with recent July Patch.'
    WHEN '15.1.2242.12' THEN 'Exchange 2016 CU21 Jul21 patched against ProxyShell.'
    WHEN '15.1.2242.10' THEN 'Exchange 2016 CU20 May21  patched against ProxyShell. Recommend also updating with recent July Patch.'
    WHEN '15.1.2176.14' THEN 'Exchange 2016 CU19 May21  patched against ProxyShell. Recommend also updating with recent July Patch.'
    WHEN '15.0.1497.23' THEN 'Exchange 2013 CU23 Jul21 patched against ProxyShell.'
    WHEN '15.0.1497.18' THEN 'Exchange 2013 CU23 May21 patched against ProxyShell. Recommend also updating with recent July Patch.'
    ELSE 'NOT PATCHED'
  END Result,
  'Product_Version: ' || Product_version Evidence
FROM file 
WHERE path = 
  ((
    SELECT data FROM registry 
    WHERE key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Setup' AND path = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Setup\MsiInstallPath' 
  )||'bin\Microsoft.Exchange.RpcClientAccess.Service.exe')

攻撃が疑われる Web シェルやバイナリを特定する

これらの脆弱性を狙う攻撃者は、まず侵害されたデバイスに Web シェルをドロップし、そこから悪意のあるバイナリ (.exe ファイルなど) をダウンロードして実行するなどの追加コマンドを実行します。

これらの脆弱性は IIS 上で動作する CAS に存在するため、攻撃者の活動は IIS のワーカープロセスである w3wp.exe プロセスで発生します。

ライブの Windows デバイスに対する以下の XDR クエリは、ディスク上にまだ存在している可能性のある Web シェルを攻撃者がドロップしているディレクトリを調べます。クエリの出力に含まれる、予期しない、または最近作成された .aspx ファイルを確認します。
例: C:\inetpub\wwwroot\aspnet_client\654253568.aspx

SELECT * FROM
file sf
LEFT JOIN hash sh
ON sf.path = sh.path
WHERE
sf.path LIKE 'C:\inetpub\wwwroot\aspnet_client\system_web\%.aspx'
OR sf.path LIKE 'C:\inetpub\wwwroot\aspnet_client\%.aspx'
OR sf.path LIKE 'C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\%.aspx'
OR sf.path LIKE 'C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp\auth\%.aspx'
OR sf.path LIKE 'C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\current\%.aspx'
OR sf.path LIKE 'C:\ProgramData\%.aspx'
OR sf.path LIKE 'C:\ProgramData\%\%.aspx'

この結果をもとに、疑わしい Web シェルのパス列から、(…) ボタンをクリックして「ファイルアクセス履歴」を選択すると、どのプロセスがファイルを操作したのか、どのプロセスがファイルを作成したのかを確認できます。攻撃者が行った可能性のあるさらなる攻撃を明らかにするために、w3wp.exe のインスタンスを調査する必要があります。そのためにはプロセスの sophosPID からピボットして、 sophosPID の横にある (…) ボタンをクリックし、「プロセスアクティビティ履歴」クエリを選択します。

また、削除された可能性のある Web シェルを特定するために、Sophos のプロセスジャーナルとファイルジャーナルを照会し、 Windows デバイス用の以下の XDR クエリを使用して、過去 1 日の .aspx ファイルの作成履歴を確認することもできます。確認する時間帯を増やすには、「 now 」と「 -1 days 」の箇所を任意の値に変更します。

SELECT
  CAST(datetime(sfj.time, 'unixepoch') AS TEXT) date,
  spj.processName,
  CASE sfj.eventType
    WHEN 0 THEN 'Created'
  END eventType,
  replace(sfj.pathname, rtrim(sfj.pathname, replace(sfj.pathname, '\', '')), '') fileName,
  spj.pathname processPath,
  sfj.pathname filePath,
  sfj.sophosPID
FROM sophos_file_journal sfj
LEFT JOIN sophos_process_journal spj
  ON spj.sophosPID = sfj.sophosPID
  AND spj.time = replace(sfj.sophosPID, rtrim(sfj.sophosPID, replace(sfj.sophosPID  , ':', '')), '')/10000000-11644473600
WHERE sfj.time > strftime('%s', 'now', '-1 days')
  AND sfj.eventType IN (0)
  AND sfj.pathname LIKE '%.aspx';

同様に、疑わしいプロセス (特に w3wp.exe) の sophosPID を調べ、プロセスの活動履歴を確認して、攻撃者が行った可能性のある他の操作を特定する必要があります。

また、攻撃者は Exchange の構成ファイル (C:\Windows\System32\inetsrv\Config\applicationHost.config) を変更して、Web シェルの場所を難読化するための新しい仮想ディレクトリパスを追加することも確認されています。これらのパスは構成ファイルの physicalPath で定義されます。Web シェルのエントリをすべて削除し、IIS サービスを再起動して設定を再読み込みしてください。

以下の XDR クエリは、 Windows デバイスの場合、applicationHost.config ファイルのすべての physicalPath エントリを一覧表示します。

SELECT grep.*
FROM file
CROSS JOIN grep ON (grep.path = file.path)
WHERE
file.path LIKE 'C:\Windows\System32\inetsrv\Config\applicationHost.config'
AND grep.pattern = 'physicalPath'

A悪意のある実行ファイルを Web シェル経由で System32 ディレクトリにドロップする行為が多発しています。このパスに最近作成された .exe ファイルやその他の疑わしいファイルは調査される必要があります。
例:C:\Windows\System32\createhidetask.exe
例: C:\Windows\System32\ApplicationUpdate.exe

以下の Windows デバイス用の XDR クエリは、 System32 ディレクトリにあるすべてのファイルを一覧表示します。

SELECT * FROM FILE WHERE PATH LIKE 'C:\Windows\System32\%'

スケジュールタスクによる常駐

ソフォスでは、攻撃者が、不審なバイナリを定期的に実行するスケジュールタスクを作成することで、感染したデバイスに常駐することを確認しています。以下の XDR クエリは、Windows デバイスの現在のスケジュール済みタスクの一覧を表示するために使用できます。

SELECT * FROM SCHEDULED_TASKS

Sophos Managed Threat Response ( MTR ) による攻撃の防止

ProxyShell のような攻撃事例から、脅威ハンターとインシデントレスポンスの専門家によって支えられていることで大きな安心感を組織が得ることができることがわかるでしょう。

ProxyShell のニュースが流れたとき、Sophos MTR チームは、直ちにお客様のネットワーク環境と、攻撃を示す痕跡の調査を開始しました。さらに、すべてのお客様への保護をさらに強固にするため、攻撃に関連する新しいアーティファクト (IOC など) の発見を目指しました。

Sophos MTR は 24 時間 365 日稼働しているため、調査開始から 1 秒も無駄にすることなくお客様の安全を確保することができました。

ProxyShell について不安を感じている場合、Sophos MTR にお問い合わせください。ネットワーク環境における潜在的な攻撃の可能性を検知し、損害を未然に防ぎましょう。

 

変更ログ

2021-08-24 UTC 08.00 ソフォスによる脅威の検出結果を追加
2021-08-24 UTC 08.41 Exchange バージョンスクリプトのエラーを修正
2021-08-24 UTC 13.05 変更されたExchange 構成ファイルの Web シェルのハンティングの詳細を追加
2021-08-24 UTC 13.54 Web シェルに関する Naked Security の記事へのリンクを追加
2021-08-24 UTC 15.36 新しい IPS シグネチャの詳細を追加
2021-08-25 UTC 07:55 LockFile の挙動ベースの保護機能の詳細情報を追加
2021-08-27 UTC 14.53 ソフォスコミュニティの投稿と推奨事項の整合性を確保

コメントを残す

Your email address will not be published.