Outlook ルールとカスタム フォームインジェクション攻撃を検出して修復する
ヒント
Microsoft Defender XDR for Office 365 プラン 2 の機能を無料で試すことができることをご存知でしたか? Microsoft Defender ポータル試用版ハブで、90 日間の Defender for Office 365 試用版を使用します。 こちらからサインアップできるユーザーと試用版の使用条件の詳細について参照してください。
概要 Office 365 の Outlook ルールとカスタム フォームインジェクション攻撃を認識して修復する方法について説明します。
Outlook ルールとカスタム フォームインジェクション攻撃とは
攻撃者が組織にアクセスした後、攻撃者は検出された後に滞在または再び侵入するための足掛かりを確立しようとします。 このアクティビティは、 永続化メカニズムの確立と呼ばれます。 攻撃者が Outlook を使用して永続化メカニズムを確立するには、次の 2 つの方法があります。
- Outlook ルールを利用する。
- Outlook にカスタム フォームを挿入する。
Outlook を再インストールしたり、影響を受けるユーザーに新しいコンピューターを提供したりしても役に立ちません。 Outlook の新規インストールがメールボックスに接続すると、すべてのルールとフォームがクラウドから同期されます。 通常、ルールまたはフォームは、リモート コードを実行し、ローカル コンピューターにマルウェアをインストールするように設計されています。 マルウェアは資格情報を盗むか、その他の違法なアクティビティを実行します。
良いニュースは、最新バージョンにパッチを適用した Outlook クライアントを保持する場合、現在の Outlook クライアントの既定値が両方のメカニズムをブロックするため、脅威に対して脆弱ではありません。
攻撃は通常、次のパターンに従います。
ルールの悪用:
- 攻撃者はユーザーの資格情報を盗みます。
- 攻撃者は、そのユーザーの Exchange メールボックス (Exchange Online またはオンプレミスの Exchange) にサインインします。
- 攻撃者はメールボックスに転送受信トレイ ルールを作成します。 転送ルールは、メールボックスがルールの条件に一致する攻撃者から特定のメッセージを受信したときにトリガーされます。 ルールの条件とメッセージ形式は、相互に合わせて調整されます。
- 攻撃者は、侵害されたメールボックスにトリガーメールを送信します。これは、疑いのないユーザーによって通常どおり使用されています。
- メールボックスがルールの条件に一致するメッセージを受信すると、ルールのアクションが適用されます。 通常、ルール アクションは、リモート (WebDAV) サーバーでアプリケーションを起動することです。
- 通常、アプリケーションはユーザーのマシン ( PowerShell Empire など) にマルウェアをインストールします。
- マルウェアにより、攻撃者はユーザーのユーザー名とパスワード、またはその他の資格情報をローカル コンピューターから盗み(または再び盗む)、その他の悪意のあるアクティビティを実行できます。
フォームの悪用:
- 攻撃者はユーザーの資格情報を盗みます。
- 攻撃者は、そのユーザーの Exchange メールボックス (Exchange Online またはオンプレミスの Exchange) にサインインします。
- 攻撃者は、ユーザーのメールボックスにカスタム メール フォーム テンプレートを挿入します。 カスタム フォームは、メールボックスがカスタム フォームを読み込む必要がある攻撃者から特定のメッセージを受信したときにトリガーされます。 カスタム フォームとメッセージ形式は、相互に合わせてカスタマイズされています。
- 攻撃者は、侵害されたメールボックスにトリガーメールを送信します。これは、疑いのないユーザーによって通常どおり使用されています。
- メールボックスがメッセージを受信すると、メールボックスは必要なフォームを読み込みます。 フォームは、リモート (WebDAV) サーバーでアプリケーションを起動します。
- 通常、アプリケーションはユーザーのマシン ( PowerShell Empire など) にマルウェアをインストールします。
- マルウェアにより、攻撃者はユーザーのユーザー名とパスワード、またはその他の資格情報をローカル コンピューターから盗み(または再び盗む)、その他の悪意のあるアクティビティを実行できます。
ルールとカスタム フォームインジェクション攻撃は Office 365 のようになりますか?
ユーザーは、これらの永続化メカニズムに気付く可能性は低く、見えない場合もあります。 次の一覧では、修復手順が必要であることを示す兆候 (侵害のインジケーター) について説明します。
ルール侵害のインジケーター:
- ルール アクションは、アプリケーションを起動することです。
- 規則 EXE、ZIP、または URL を参照します。
- ローカル コンピューターで、Outlook PID から開始された新しいプロセスの開始を探します。
カスタム フォームの侵害のインジケーター:
- カスタム フォームは、独自のメッセージ クラスとして保存されます。
- メッセージ クラスには実行可能コードが含まれています。
- 通常、悪意のあるフォームは個人用フォーム ライブラリまたは受信トレイ フォルダーに格納されます。
- フォームの名前は IPM です。手記。[カスタム名]。
この攻撃の兆候を見つけて確認するための手順
次のいずれかの方法を使用して、攻撃を確認できます。
Outlook クライアントを使用して、各メールボックスのルールとフォームを手動で調べます。 この方法は完全ですが、一度に確認できるメールボックスは 1 つだけです。 この方法は、確認するユーザーが多い場合は非常に時間がかかる場合があります。また、使用しているコンピューターに感染する可能性もあります。
Get-AllTenantRulesAndForms.ps1 PowerShell スクリプトを使用して、組織内のすべてのユーザーのすべてのメール転送ルールとカスタム フォームを自動的にダンプします。 このメソッドは、オーバーヘッドの量が最も少ない最速かつ最も安全です。
注:
2021 年 1 月の時点で、スクリプト (およびリポジトリ内の他のすべてのもの) は読み取り専用でアーカイブされます。 154 行目から 158 行目では、2023 年 7 月の リモート PowerShell 接続の廃止 によりサポートされなくなった方法を使用して、Exchange Online PowerShell への接続が試行されます。 スクリプトを実行する前に、154 行目から 158 行目を削除 し、Exchange Online PowerShell に接続 します。
Outlook クライアントを使用してルール攻撃を確認する
ユーザーとして Outlook クライアントを開きます。 ユーザーが自分のメールボックスのルールを調べるのに役立つ情報が必要な場合があります。
Outlook でルール インターフェイスを開く方法については、「 ルールを使用して電子メール メッセージを管理 する」の記事を参照してください。
ユーザーが作成しなかったルール、または不審な名前を持つ予期しないルールまたはルールを探します。
ルールの説明で、開始および適用するルール アクション、または .EXE、.ZIP ファイル、または URL の起動を参照するルール アクションを確認します。
Outlook プロセス ID の使用を開始する新しいプロセスを探します。 「 プロセス ID を検索する」を参照してください。
Outlook クライアントを使用してフォーム攻撃を確認する手順
ユーザーとして Outlook クライアントを開きます。
「ユーザーのバージョン の Outlook の [開発者] タブを表示する」 の手順に従います。
Outlook で表示されている [開発者] タブを開き、[ フォームのデザイン] を選択します。
[検索] ボックスの一覧から受信トレイを選択します。 任意のカスタム フォームを探します。 カスタム フォームは非常にまれであり、カスタム フォームがある場合は、より深く見る価値があります。
カスタム フォーム (特に非表示としてマークされたフォーム) を調査します。
任意のカスタム フォームを開き、[ フォーム ] グループで [ コードの表示 ] を選択して、フォームが読み込まれたときに実行される内容を確認します。
PowerShell を使用してルールとフォームの攻撃を確認する手順
ルールまたはカスタム フォーム攻撃を検証する最も簡単な方法は、 Get-AllTenantRulesAndForms.ps1 PowerShell スクリプトを実行することです。 このスクリプトは、組織内のすべてのメールボックスに接続し、すべてのルールとフォームを 2 つの .csv ファイルにダンプします。
前提条件
スクリプトは組織内のすべてのメールボックスに接続してルールとフォームを読み取るため、Microsoft Entra ID のグローバル管理者*ロール、または Exchange Online の Organization Management 役割グループのメンバーである必要があります。
重要
* Microsoft では、アクセス許可が最も少ないロールを使用することをお勧めします。 アクセス許可の低いアカウントを使用すると、組織のセキュリティが向上します。 グローバル管理者は高い特権を持つロールであり、既存のロールを使用できない場合の緊急シナリオに限定する必要があります。
ローカル管理者権限を持つアカウントを使用して、スクリプトを実行するコンピューターにサインインします。
Get-AllTenantRulesAndForms.ps1 スクリプトの内容を GitHub からダウンロードまたはコピーして、スクリプトを簡単に見つけて実行できるフォルダーにコピーします。 このスクリプトは、フォルダーに 2 つの日付スタンプ付きファイル (
MailboxFormsExport-yyyy-MM-dd.csv
とMailboxRulesExport-yyyy-MM-dd.csv
) を作成します。2023 年 7 月の時点で接続方法が機能しなくなったため、スクリプトから 154 行目から 158 行目を削除します。
PowerShell でスクリプトを保存したフォルダーに移動し、次のコマンドを実行します。
.\Get-AllTenantRulesAndForms.ps1
出力の解釈
- MailboxRulesExport-yyyy-MM-dd.csv: アプリケーションまたは実行可能ファイルを含むアクション条件のルール (1 行につき 1 つ) を調べます。
- ActionType (列 A): この列に
ID_ACTION_CUSTOM
値が含まれている場合、ルールは悪意のある可能性があります。 - IsPotentiallyMalicious (列 D): この列に
TRUE
値が含まれている場合、ルールは悪意のある可能性があります。 - ActionCommand (列 G): この列に次のいずれかの値が含まれている場合、ルールは悪意のある可能性があります。
- アプリケーション。
- .exe または .zip ファイル。
- URL を参照する不明なエントリ。
- ActionType (列 A): この列に
- MailboxFormsExport-yyyy-MM-dd.csv: 一般に、カスタム フォームの使用はまれです。 このブックに何かがある場合は、そのユーザーのメールボックスを開き、フォーム自体を調べます。 組織が意図的に配置しなかった場合は、悪意のある可能性があります。
Outlook ルールとフォーム攻撃を停止して修復する方法
これらの攻撃のいずれかの証拠が見つかると、修復は簡単です。メールボックス内のルールまたはフォームを削除するだけです。 ルールまたはフォームは、Outlook クライアントまたは Exchange PowerShell を使用して削除できます。
Outlook の使用
ユーザーが Outlook を使用したすべてのデバイスを特定します。 これらはすべて、潜在的なマルウェアをクリーンアップする必要があります。 すべてのデバイスがクリーンアップされるまで、ユーザーが電子メールにサインオンして使用することを許可しないでください。
各デバイスで、「 ルールを削除する」の手順に従います。
他のマルウェアの存在がわからない場合は、デバイス上のすべてのソフトウェアをフォーマットして再インストールできます。 モバイル デバイスの場合は、製造元の手順に従ってデバイスを出荷時のイメージにリセットできます。
最新バージョンの Outlook をインストールします。 現在のバージョンの Outlook では、この攻撃の両方の種類が既定でブロックされます。
メールボックスのすべてのオフライン コピーが削除されたら、次の手順を実行します。
- 高品質の値 (長さと複雑さ) を使用して、ユーザーのパスワードをリセットします。
- ユーザーに対して多要素認証 (MFA) が有効になっていない場合は、「ユーザーの多要素認証をセットアップする」の手順に従います
これらの手順により、ユーザーの資格情報が他の方法 (フィッシングやパスワードの再利用など) によって公開されないようにします。
PowerShell の使用
必要な Exchange PowerShell 環境に接続します。
オンプレミスの Exchange サーバー上のメールボックス: リモート PowerShell を使用して Exchange サーバーに接続 するか、 Exchange 管理シェルを開きます。
Exchange Online のメールボックス: Exchange Online PowerShell に接続します。
必要な Exchange PowerShell 環境に接続した後、ユーザー メールボックスの受信トレイ ルールに対して次のアクションを実行できます。
メールボックスの受信トレイ ルールを表示する:
すべてのルールの概要一覧を表示する
Get-InboxRule -Mailbox laura@contoso.onmicrosoft.com
特定のルールの詳細情報を表示します。
Get-InboxRule -Mailbox laura@contoso.onmicrosoft.com -Identity "Suspicious Rule Name" | Format-List
構文とパラメーターの詳細については、「 Get-InboxRule」を参照してください。
メールボックスから受信トレイ ルールを削除する:
特定のルールを削除します。
Remove-InboxRule -Mailbox laura@contoso.onmicrosoft.com -Identity "Suspicious Rule Name"
すべてのルールを削除します。
Get-InboxRule -Mailbox laura@contoso.onmicrosoft.com | Remove-InboxRule
構文とパラメーターの詳細については、「 Remove-InboxRule」を参照してください。
さらに調査するために受信トレイ ルールをオフにします。
Disable-InboxRule -Mailbox laura@contoso.onmicrosoft.com -Identity "Suspicious Rule Name"
構文とパラメーターの詳細については、「 Disable-InboxRule」を参照してください。
将来の攻撃を最小限に抑える方法
最初に、アカウントを保護する
ルールとフォームの悪用は、攻撃者がユーザーのアカウントを盗んだり侵害したりした後にのみ使用されます。 そのため、組織に対してこれらの悪用を防ぐための最初の手順は、ユーザー アカウントを積極的に保護することです。 アカウントが侵害される最も一般的な方法の一部は、フィッシング攻撃または パスワード スプレー攻撃です。
ユーザー アカウント (特に管理者アカウント) を保護する最善の方法は、 ユーザーの MFA を設定することです。 次のことも行う必要があります。
ユーザー アカウントに アクセスして使用する方法を監視します。 最初の侵害を防ぐことはできないかもしれませんが、より早く検出することで、侵害の期間と影響を短縮できます。 次の Office 365 Cloud App Security ポリシー を使用して、アカウントを監視し、異常なアクティビティを警告できます。
複数の失敗したログイン試行: 学習したベースラインに関して、ユーザーが 1 つのセッションで複数の失敗したサインイン アクティビティを実行するとアラートがトリガーされます。これは、侵害の試行を示す可能性があります。
不可能な移動: 2 つの場所間の予想される移動時間よりも短い期間内に、異なる場所の同じユーザーからアクティビティが検出されたときにアラートをトリガーします。 このアクティビティは、別のユーザーが同じ資格情報を使用していることを示している可能性があります。 この異常な動作を検出するには、新しいユーザーのアクティビティ パターンを学習するために、7 日間の初期学習期間が必要です。
通常とは異なる偽装アクティビティ (ユーザー別): ユーザーが学習したベースラインに関して 1 つのセッションで複数の偽装アクティビティを実行するとアラートがトリガーされます。これは、侵害が試行されたことを示す可能性があります。
Office 365 Secure Score などのツールを使用して、アカウントのセキュリティ構成と動作を管理します。
2 つ目: Outlook クライアントを最新の状態に保つ
Outlook 2013 および 2016 の完全に更新および修正プログラムが適用されたバージョンでは、既定で "アプリケーションの開始" ルール/フォーム アクションが無効になります。 攻撃者がアカウントに違反した場合でも、ルールとフォームアクションはブロックされます。 最新の更新プログラムとセキュリティ パッチは、「Office 更新プログラムのインストール」の手順に従って インストールできます。
Outlook 2013 および 2016 クライアントのパッチ バージョンを次に示します。
- Outlook 2016: 16.0.4534.1001 以降。
- Outlook 2013: 15.0.4937.1000 以降。
個々のセキュリティ パッチの詳細については、次を参照してください。
3 つ目: Outlook クライアントを監視する
パッチと更新プログラムがインストールされていても、攻撃者がローカル コンピューターの構成を変更して "アプリケーションの開始" 動作を再び有効にする可能性があります。 高度なグループ ポリシー管理を使用して、クライアント デバイスでローカル コンピューター ポリシーを監視および適用できます。
「 64 ビット バージョンの Windows を使用してシステム レジストリを表示する方法」の情報を使用して、レジストリのオーバーライドによって "アプリケーションの起動" が再び有効になっているかどうかを確認できます。 次のサブキーを確認します。
- Outlook 2016:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security\
- Outlook 2013:
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security\
キーの EnableUnsafeClientMailRules
を探します。
- 値が 1 の場合、Outlook セキュリティパッチがオーバーライドされ、コンピューターはフォーム/ルール攻撃に対して脆弱です。
- 値が 0 の場合、"アプリケーションの開始" アクションは無効になります。
- レジストリ キーが存在せず、更新および修正プログラムが適用されたバージョンの Outlook がインストールされている場合、システムはこれらの攻撃に対して脆弱ではありません。
オンプレミスの Exchange インストールをお持ちのお客様は、パッチを使用できない古いバージョンの Outlook をブロックすることを検討する必要があります。 このプロセスの詳細については、「 Outlook クライアント のブロックの構成」の記事を参照してください。
関連項目:
- ルール ベクトルに関する悪意のある Outlook Rules by SilentBreak セキュリティ 投稿では、Outlook ルールの詳細なレビューが提供されます。
- Mailrule Pwnage に関する Sensepost ブログの HTTP および Mailrule Pwnage 経由の MAPI では、Outlook ルールを使用してメールボックスを悪用できる Ruler というツールについて説明しています。
- Forms Threat Vector に関する Sensepost ブログの Outlook フォームとシェル。
- Ruler Codebase
- ルーラーの侵害のインジケーター