FortiManager のゼロデイ攻撃の調査(Investigating FortiManager Zero-Day Exploitation (CVE-2024-47575) | Google Cloud BlogCVE-2024-47575)
Mandiant
※この投稿は米国時間 2024 年 10 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。
まとめ
2024 年 10 月、Mandiant は Fortinet と協力して FortiManager アプライアンスの大規模な悪用を調査しました。この調査は、さまざまな業界における侵害された可能性のある 50 台以上の FortiManager デバイスを対象に行われました。脆弱性 CVE-2024-47575 / FG-IR-24-423 により、脅威アクターは、脅威アクターが管理する未承認の FortiManager デバイスを使用して、脆弱な FortiManager デバイスに対し、任意のコードまたはコマンドを実行できるようになります。
Mandiant は、新しい脅威クラスタ(現在 UNC5820 として追跡中)が 2024 年 6 月 27 日の時点ですでに FortiManager の脆弱性を悪用しているのを観測しました。UNC5820 は、悪用された FortiManager の管理下にある FortiGate デバイスの構成データをステージングし、外部に持ち出していました。このデータには、管理対象アプライアンスの詳細な構成情報と、ユーザーおよびユーザーの FortiOS256 でハッシュされたパスワードが含まれています。このデータは、UNC5820 が FortiManager をさらに侵害し、その管理下にある Fortinet デバイスへのラテラル ムーブメントを行い、最終的には企業環境を標的にするのに利用される可能性があります。
現時点では、Mandiant が分析したデータソースに、脅威アクターが FortiManager の脆弱性を悪用するために使用した特定のリクエストは記録されていませんでした。また、調査の現段階では、UNC5820 が取得した構成データを活用して、ラテラル ムーブメントを行ったり環境をさらに侵害したりしたという証拠はありません。その結果、本記事の公開時点では、攻撃者の動機や所在地を評価するのに十分なデータがありません。調査を通じて追加の情報が得られ次第、Mandiant がこのブログの帰属評価を更新します。
インターネットに公開されている可能性がある FortiManager を保有している組織は、直ちにフォレンジック調査を実施する必要があります。
悪用の詳細
Mandiant が最初に観測した悪用の試みは、2024 年 6 月 27 日に発生しました。その日、複数の FortiManager デバイスに対して、デフォルト ポート TCP/541 を経由した、IP アドレス(45[.]32[.]41[.]202)からのインバウンド接続がありました。これとほぼ同時に、ファイル システムは、/tmp/.tm という名前の Gzip 圧縮アーカイブ内にあるさまざまな Fortinet 構成ファイルのステージングを記録しました。このアーカイブには、表 1 に記載されているファイルとフォルダが含まれていました。
表 1: /tmp/.tm の内容
2024 年 9 月 23 日、Mandiant は同様の兆候を持つ 2 回目の悪用の試みを観察しました。どちらの悪用イベントでも、アーカイブの作成直後にアウトバウンド ネットワーク トラフィックが発生しました。それぞれの宛先 IP アドレスに送信されるバイト数は、アーカイブのサイズよりもわずかに大きくなります。表 2 にこのアクティビティの詳細を示します。
表 2: 2 回の悪用の試みにおける段階的な構成データとアウトバウンド トラフィックの相関関係
2 回目の悪用が試みられている間に、脅威アクターのデバイスが標的の FortiManager に登録されました。図 1 に、Global Oblects データベース内の未承認の FortiManager と、それが追加されたときのタイムスタンプを示します。
図 1: Global Objects データベースに追加された脅威アクターのデバイス
脅威アクターが FortiManager の悪用に成功すると、不明な Fortinet デバイスが FortiManager コンソールに表示されました。
図 2: FortiManager コンソールに一覧表示されている未承認のデバイス
悪用が成功した場合のもう一つの兆候といえば、未承認のデバイスのシリアル番号「FMG-VMTM23017412」とそれに対応する IP アドレス(45[.]32[.]41[.]202)がファイル /fds/data/unreg_devices.txt に追記されることです。図 3 にこのファイルの内容を示します。
FMG-VMTM23017412|45.32.41.202
図 3: /fds/data/unreg_devices.txt の内容
ファイル /fds/data/subs.dat および /fds/data/subs.dat.tmp には、図 4 に示すように、関連付けられた使い捨てのメールアドレスや会社名など、悪用を示す追加の証拠が記載されています。
SerialNumber=FMG-VMTM23017412|AccountID=
0qsc137p@justdefinition.com|Company=Purity Supreme|UserID=1756868
図 4: /fds/data/subs.dat の内容
Mandiant は FortiManager のメモリイメージを調査して、脅威アクターのアクティビティの追加的なアーティファクトを探し、キーワード「FMG-VMTM23017412」と「45[.]32[.]41[.]202」を含む JSON blob を検出しました。この JSON blob には、「first_tunnel_up」というキーも含まれており、その値として 1726999303 のエポックタイムが格納されていました。このタイムスタンプは 2024-09-22 10:01:43 UTC に変換されます。
図 5: トンネル確立のアーティファクト
その後の悪意のあるアクティビティの欠如
Mandiant は、/bin にマウントされるデバイスの initramfs(RAM ディスク)である rootfs.gz を調査しました。脆弱性が悪用された期間中に作成または変更された悪意のあるファイルは見つかりませんでした。
Google Cloud は、同様のアクティビティが確認された環境を持つ影響を受けた顧客に通知しました。さらに、Google Threat Intelligence は、このアクティビティの検出機能を開発しながら RetroHunt を実行し、Fortinet デバイスの悪用の試みを検出するための支援として、リリース前の検出ルールのアラートを、影響を受けた SecOps 顧客に手動でエスカレーションしました。
図 6: リリース前の検出ルール - Fortinet デバイスに対するゼロデイ攻撃の疑い
Fortinet は Mandiant と協力するだけでなく、先を見越して顧客に対して事前に通知を送付することで、公開アドバイザリの発表前に顧客がセキュリティ ポスチャーを強化できるよう早期警告を行いました。
脅威アクターのアクティビティのタイムライン
表 3: アクティビティのタイムライン
緩和戦略 / 回避策
-
FortiManager 管理者ポータルへのアクセスを、承認済みの内部 IP アドレスのみに制限します。
-
許可された FortiGate アドレスのみが FortiManager と通信できるようにします。
-
不明な FortiGate デバイスが FortiManager に関連付けられることを拒否します。
7.2.5、7.0.12、7.4.3 以降で実行可能(7.6.0 では実用的な回避策ではありません)。
config system global
set fgfm-deny-unknown enable
end
図 7: 不明なデバイスを拒否する構成
検出
YARA-L
Google SecOps Enterprise+ をご利用の場合、「Mandiant Intel Emerging Threats」ルールパック(Windows Threats グループ内)にルールがリリースされています。
関連ルール
-
疑わしい FortiManager のインバウンド接続およびアウトバウンド接続
-
UNC5820 Fortinet の悪用とファイルのダウンロード
-
UNC5820 Fortinet の悪用と HTTPS 以外のコマンド&コントロール
-
UNC5820 Fortinet の悪用と HTTPS のコマンド&コントロール
その他の SIEM
以下の関連する IOC に対して Fortiguard ログを対象とした検索を作成してください。特に、悪意のある Fortinet デバイス ID がトリガーされた場合には、忠実度の高いアラートを提供する必要があります。
FortiManager ログにおける固有の操作について、ベースラインを確立し、しきい値を設定してください。特に、「デバイスの追加」や「デバイスの変更」の操作は、組織にとってまれである可能性があるため、この脆弱性が修正されるまでの間、実用的なアラートを発信する必要があります。
同様に、FortiManager ログの changes フィールドについても、ベースラインを確立し、しきい値を設定してください。特に、changes フィールドに「Unregistered(未登録)」という単語が含まれる場合、より高い感度のアラートを検討してください。
FortiGate デバイスを毎日列挙し、ログ内で以前に見られなかったデバイス名が確認された場合にはアラートを発してください。
セキュリティ侵害インジケーター(IOC)
登録済みユーザーの方は、IOC の Google Threat Intelligence コレクションを利用できます。
ネットワーク ベースの IOC
ホストベースの IOC
追加のキーワード
謝辞
本調査にご協力いただいた Nick Simonian 氏と Ronnie Salomonsen 氏に感謝の意を表します。
-Mandiant、執筆者: Foti Castelan 氏、Max Thauer 氏、JP Glab 氏、Gabby Roncone 氏、Tufail Ahmed 氏、Jared Wilson 氏