ArcaneDoor は、境界に設置されている複数のベンダーのネットワークデバイスを標的にした、国家支援の攻撃者による最新の攻撃事例です。境界にあるネットワークデバイスは国家の支援を受けた攻撃者がこぞって狙う対象であり、スパイ活動に重点を置く攻撃にうってつけの侵入ポイントです。ネットワークにデータが出入りする重要な経路であるこれらのデバイスには、定期的かつ速やかにパッチを適用する必要があります。ハードウェアとソフトウェアの最新のバージョンと設定を用いるようにし、セキュリティの観点から注意深く監視しなければなりません。これらのデバイスに足がかりを得ることで、攻撃者は組織に直接侵入して、トラフィックの再ルーティングや変更を行い、ネットワーク通信を監視できるようになります。過去 2 年間で、これらのデバイスへの攻撃が通信事業者やエネルギーセクターの組織などの分野で大幅に増加し続けていることを Talos は確認しています。重要インフラの事業体には多くの外国政府が関心を持ち、戦略的な標的になっている可能性があります。
シスコはグローバル ネットワーク インフラストラクチャをリードするベンダーと位置付けられているので、Talos のインテリジェンスおよび阻止チームは、ネットワーク対策の全般的な状況に対する広範な可視性を得ることができます。Talos は同じ理由から、このような性質の攻撃を独自の視点から調査する能力を獲得しています。2024 年の初めに、監視体制を敷いているあるお客様から、シスコの Product Security Incident Response Team(PSIRT; プロダクト セキュリティ インシデント レスポンス チーム)と Cisco Talos に連絡がありました。お客様が保有する Cisco 適応型セキュリティアプライアンス(ASA)に関するセキュリティの懸念事項についての相談でした。そこで PSIRT と Talos は一体となり、このお客様を支援するための調査を開始しました。最終的に外部のインテリジェンスパートナー数社が関わることになったこの調査は数か月に及びました。その結果、Talos では UAT4356、Microsoft 社の脅威インテリジェンスセンターは STORM-1849 と呼んで現在追跡を行っている、これまで知られていなかった攻撃者が特定されました。攻撃者が使用した特注ツールは明らかにスパイ活動に重点を置いたものであり、標的のデバイスについての深い知識を持っていることがうかがえます。これは国家支援の高度な攻撃者の特徴です。
UAT4356 は、攻撃のコンポーネントとして「Line Runner」と「Line Dancer」という 2 つのバックドアを展開し、この両方を用いて、設定変更、偵察、ネットワークトラフィックのキャプチャと流出、場合によってはラテラルムーブメントなど、悪意のあるアクションを狙いどおりに実行しました。
重要な修正プログラムが利用可能
シスコは、被害者およびインテリジェンスパートナーとの協力のもと、高度な攻撃チェーンを発見しました。この攻撃チェーンを使用してカスタムマルウェアが埋め込まれ、少数のお客様を対象にしたコマンドが実行されます。最初の攻撃経路は特定できていませんが、2 件の脆弱性(CVE-2024-20353 および CVE-2024-20359)を特定しました。これについては後ほど詳しく説明します。お客様には、後述のセキュリティアドバイザリに掲載したガイダンスに従うことを強くお勧めします。
さらに、ネットワークテレメトリやインテリジェンスパートナーからの情報によると、この攻撃者は Microsoft 社や他のベンダーのネットワークデバイスに関心を持っています(攻撃を行っている可能性もあります)。どのプロバイダーのネットワーク機器を使用しているかに関係なく、デバイスに適切にパッチが適用されていること、安全な場所に一元的にログが記録されていること、強力な多要素認証(MFA)が設定されていることを今すぐご確認ください。それ以外の、シスコに特有な推奨事項についてはこちらをご覧ください。
タイムライン
シスコは 2024 年初めに、ASA デバイス上の不審なアクティビティを示す最初のアラートを受け取りました。その後の調査によりさらなる被害が確認されましたが、それらはすべて、世界各地の政府機関のネットワークに関係していました。調査をしていく中で、攻撃者が管理するインフラストラクチャが 2023 年 11 月上旬には存在していたこと、また、ほとんどのアクティビティが 2023 年 12 月から 2024 年 1 月上旬にかけて発生していたことを確認しました。さらに、早ければ 2023 年 7 月に機能のテストと開発が行われていたことを示唆する証拠を突き止めました。
シスコは、この攻撃で悪用された 2 件の脆弱性(CVE-2024-20353 および CVE-2024-20359)を特定しました。これらの脆弱性に対するパッチの詳細は、本日発表したシスコのセキュリティアドバイザリに記載しています。
初期アクセス
この攻撃で使用された初期アクセスの経路はわかっていません。これまでのところ、認証前のエクスプロイトの証拠は見つかっていません。調査は進行中であり、必要に応じてセキュリティアドバイザリやこのブログで最新情報をお知らせします。
Line Dancer(インメモリ型インプラント)の技術面の詳細
このマルウェアのインプラントには、主要なコンポーネントが 2 つあります。1 つ目は「Line Dancer」という、メモリのみで動作するインプラントです。メモリ常駐型のシェルコードインタープリタであり、攻撃者が任意のシェルコードのペイロードをアップロードして実行できるようになります。
侵害された ASA で、攻撃者は host-scan-reply フィールドを介してシェルコードを送信し、そのシェルコードが Line Dancer インプラントによって解析されます。なお、このフィールドの使用は CVE-2018-0101 のエクスプロイトを示すものではありません。CVE-2018-0101 はこの攻撃の要素としては使用されていません。host-scan-reply フィールドは、SSL VPN セッションを確立するプロセスの後の部分で通常使用され、SSL VPN、IPsec IKEv2 VPN(「クライアントサービス」を使用)、HTTPS 管理アクセス用に設定された ASA デバイスで処理されます。攻撃者は、デフォルトの host-scan-reply コードへのポインタを上書きし、代わりに Line Dancer シェルコードインタープリタを指すようにします。これにより、POST リクエストを使用してデバイスと対話できるようになります。認証後に従来の管理インターフェイスを介して直接対話を行う必要はありません。
Line Dancer は、侵害されたデバイス上でコマンドを実行するために使用されます。Talos は調査を通じて、攻撃者が Line Dancer マルウェアのインプラントを使用して何を行ったかを確認することができました。以下のとおりです。
- システムログを無効化する。
- show configuration コマンドを実行し、表示された設定情報を流出させる。
- パケットキャプチャを作成して流出させる。
- シェルコードに含まれる CLI コマンドを実行する。具体的には、configuration mode コマンドや、コマンドをメモリに保存する機能(write mem)など。
- クラッシュダンププロセスをフックして、デバイスがクラッシュダンプの生成をスキップし、再起動処理に直接ジャンプするようにする。目的はフォレンジック分析の回避(クラッシュダンプには侵害の証拠が残り、調査担当者にフォレンジックの詳細情報を提供することになるため)。
- AAA(認証、認可、およびアカウンティング)機能をフックし、マジックナンバーによる認証を可能にする。マジックナンバーを用いてデバイスへの接続を試みれば、設定されている AAA メカニズムをバイパスしてリモートアクセス VPN トンネルを確立できる。別のアクセス方法として、P12 形式の BLOB とこれに関連する証明書が生成され、証明書ベースのトンネル設定とともに攻撃者に送信される場合もある。
host-scan-reply フックの概要
Line Dancer インプラントのプロセスメモリに、32 バイトのトークンがパターンに一致するかどうかをチェックする関数(詳細は後述)を発見しました。一致するとペイロードを base64 で復号し、攻撃者が書き込みと実行を行えるメモリ領域にコピーしてから、新しく復号された関数を呼び出します。一致してもしなくても、processHostScanReply() を呼び出して終了します。
processHostScanReply() 関数は通常、文字列 host-scan-reply に関連付けられた elementArray テーブルの関数ポインタを使用してアクセスされます。キャプチャされたメモリでは、processHostScanReply() を指すはずのエントリが、ペイロードを復号して実行する攻撃者の関数を指すようになっています。この変更はメモリのデータセクションで行われるため、テキストのハッシュやダンプには表示されません。
ペイロードを復号して実行する攻撃者の関数を逆コンパイルすると以下のようになります。
Line Runner(永続化メカニズム)
攻撃者は、侵害された ASA デバイス上で「Line Runner」という 2 つ目にして持続性のあるバックドアを使用し、永続性を維持します。その際、デバイス上で VPN クライアントとプラグインのプリロードを可能にするレガシー機能に関連した機能を使用します。ASA は起動時に、以下の Lua の正規表現に一致するファイルが disk0: に存在するかどうか検索するように設計されています。
^client_bundle[%w_-]*%.zip$
ファイルが存在する場合は解凍し、csco_config.lua スクリプトを実行します。プロセスが終了すると、その zip ファイルは削除されます。この脆弱性には CVE-2024-20359 が割り当てられており、詳細はこちらの Cisco セキュリティアドバイザリに記載されています。
攻撃者が別の脆弱性(CVE-2024-20353)を悪用してこのプロセスを容易にしていた事例が少なくとも 1 件ありました。攻撃者は、この脆弱性を利用して標的の ASA デバイスを再起動し、マルウェアのインプラントの 2 つ目のコンポーネントである Line Runner を解凍してインストールすることができました。
攻撃者の zip ファイルには、以下のファイルが含まれています。
zip ファイル内のスクリプトにより、攻撃者は ASA への持続性のあるバックドアを維持することができます。HTTP ベースで Lua 形式のこのバックドアは、再起動してもアップグレードしても存在し続けます。UAT4356 が、Line Dancer の使用を通じてステージングしていた情報を回収するために Line Runner を使用したことが確認されています。
csco_config.lua
csco_config.lua ファイルは起動時に実行され、以下の変更をシステムに加えます。
• disk0:/csco_config/97/webcontent/ が存在しなければ作成する
• hash.txt から disk0:/csco_config/97/webcontent/1515480F4B538B669648B17C02337098 を作成する
• index.txt を disk0:/csco_config/97/webcontent/index_bp.ini に追加し、その結果を disk0:/csco_config/97/webcontent/index.ini に保存する
• 元の client_bundle.zip ファイルを /run/lock/subsys/krbkdc6
に移動する
• umtfc.txt を /etc/init.d/umountfs の前に追加する
• stgvdr.txt を /asa/scripts/lina_cs にコピーする
• /asa/scripts/lina_exe_cs.sh を /asa/scripts/lina_exe_cs_bp.sh にバックアップする
• /asa/scripts/lina_exe_cs.sh を laecsnw.txt に置き換える
• csco_config2.lua を csco_config.lua にコピーする
• 次に呼び出したときだけ importPlugin 関数を無効化する
csco_config2.lua
csco_config2.lua ファイルは、csco_config.lua による変更(上記)を元に戻し、自分自身を削除します。
hash.txt
disk0:/csco_config/97/webcontent/1515480F4B538B669648B17C02337098 の内容に使用されます。
ASA への HTTP リクエストを傍受します。攻撃者のコードは、32 文字のパラメータセットを持つ HTTP リクエストを探します。パラメータセットは被害者によって異なります。このパラメータセットが一致すると、パラメータの 1 つに含まれるペイロードが Lua スクリプトに書き込まれ、実行されます。これが、このバックドアによるコマンドアンドコントロールの仕組みです。
index.txt
hash.txt が処理されるように、webContent 情報を追加します。
laecsnw.txt
一時的に /asa/scripts/lina_exe_cs.sh に置き換えられます。
/asa/scripts/lina_cs をバックグラウンドプロセスとして実行します(下記参照)。自分自身を削除した後、バックアップしておいた /asa/scripts/lina_exe_cs_bp.sh を復元します。
stgvdr.txt
/asa/scripts/lina_cs として実行されます。
30 秒間スリープした後、想定される所有者と時間を /etc/init.d/umountfs に設定します。API エンドポイントのハッシュと index.ini を削除し、バックアップの index.ini を復元するか、webcontent ディレクトリを完全に削除します。最後に、自分自身を削除します。
umtfc.txt
/etc/init.d/unmountfs の前に追加されます。
unmountfs スクリプトはシャットダウン時に呼び出され、ファイルシステムをアンマウントします。攻撃者による変更では、以下の機能が実行されます。
- disk0:/csco_config/97/webcontent/1515480F4B538B669648B17C02337098 が存在する場合、それと index.ini を削除する。
• /run/lock/subsys/krbkdc6 を disk0:client_bundle_install.zip にコピーする。
これにより、次の起動時にこの zip ファイルが実行されるように設定され、永続性が維持されます。
Line Runner をフォレンジックで復元し特定
ASA 上の Line Runner の存在を特定するために、以下の手順を用いることができます。ただし、手順 1 にあるように、修正されたバージョンにデバイスをアップグレードする必要があります。
手順 1:
CVE-2024-20359 の修正が含まれるソフトウェアリリースにデバイスをアップデートした後で、disk0: の内容を確認します。アップデートの後、disk0: に新しいファイル(たとえば「client_bundle_install.zip」などの通常とは異なる .zip ファイル)が表示された場合は、問題となっているデバイスに Line Runner が存在したことを示唆しています。アップデートされたソフトウェアは CVE-2024-20359 に対して脆弱ではないため、これ以降は Line Runner がデバイス上で動作することはなくなります。
手順 2:
Line Runner を検出(および除去)するために、次の一連のコマンドで、拡張子が .zip の無害なファイルを作成します。有効な zip ファイルは作成されませんが、再起動時に ASA によってファイルが読み込まれます。以下のコマンドを実行し、再読み込み後に新しい .zip ファイルが disk0: に表示された場合、Line Runner が問題となっているデバイスに存在したことを示唆しています。「client_bundle_install.zip」ファイルを削除すると、Line Runner は取り除かれます。なお、Line Runner 機能を含む悪意のある zip ファイルは、先に説明した命名パターンに適合する他の名前になっている可能性があります。
新しく作成された .zip ファイルを発見した場合は、copy コマンドを使用してそのファイルをデバイスからコピーし、psirt@cisco.com にご連絡ください。その際は、CVE-2024-20359 関連であることがわかるようにし、デバイスの dir disk0: コマンドと show version コマンドの出力をメールに貼り付け、デバイスから抽出した .zip ファイルを添付してください。
アンチフォレンジック機能/分析回避機能
UAT4356 は、悪意のあるアーティファクトのフォレンジックキャプチャを阻止するために、明確かつ意図的な手段を講じました。こういったスパイ活動の技術は、ASA 自体と、ネットワークデバイスの完全性を検証するためにシスコが一般的に実行するフォレンジックのアクションを攻撃者が十分に理解していることを示唆しています。デバイス上で実行するアクションを隠蔽するために、ケースバイケースでさまざまな手段が講じられています。たとえば、デバイスの AAA(認証、認可、およびアカウンティング)機能をフックして、通常の AAA 操作をバイパスできるようにするといったことです。ASA 上での操作や ASA から実行した操作がログに記録されないように、ロギングを無効にした例もいくつか確認されました。
Line Dancer は、アクセスが難しいメモリ領域に意図的に置かれていたようです。さらに、デバッグやフォレンジックを目的とした情報収集に一般的に使用されるコアダンプ機能などの関数をフックし、それらの関数が単にメモリ内の再起動処理にジャンプするようになっていました。つまり、再起動後には Line Dancer 自体はもはや存在せず、コアダンプ機能に存在する情報収集処理が実行されていないため、デバッグ情報とメモリベースのフォレンジックのアーティファクトが完全に失われてしまいます。
攻撃者の特定につながる情報
進行中の調査の一環として、攻撃者の特定につながる可能性のある情報についても分析しています。この分析は、被害状況、スパイ活動に使用されている高度な技術(機能開発とアンチフォレンジック手法の技術レベル)、およびゼロデイ脆弱性の特定とその後の一連の活動に基づいています。こうした根拠から、国家の支援を受けた攻撃者によって実行された活動だと Talos はほぼ確信しています。
推奨事項
既知の IOC(侵入の痕跡)がいくつかあるので、攻撃の標的になっている可能性が疑われる場合は検索することができます。まず、このブログの最後に記載している IOC リストにある IP アドレスへの ASA デバイスからの送受信フローがないか調べる必要があります。もしあれば、さらなる調査が必要になります。
さらに、show memory region | include lina コマンドを発行して、別の侵入の痕跡を特定できます。この出力に複数の実行可能メモリ領域(r-xp 権限を持つメモリ領域、出力例を参照)が表示されている場合、中でも特にこれらのメモリセクションの 1 つがちょうど 0x1000 バイトである場合は改ざんされている可能性があります。
「show memory region」コマンドの出力例:侵害されたデバイス(上)と侵害されていないデバイス(下)
なお、実行可能なメモリ領域が 1 つしか存在しない場合でも、前述の手順に従って Line Runner の存在を特定することができます。実際に、Line Dancer が存在せずに Line Runner が存在した事例が確認されています。デバイスが侵害されていないと考えられる場合であっても、パッチを適用したバージョンにアップグレードする手順に従うことをお勧めします。
次に、初動対応者向け Cisco ASA フォレンジック調査手順に詳述されている手順に従って対処してください。これらの手順に従う際、lina メモリ領域の出力に基づいてデバイスが侵害されていると判断される場合は、コアダンプの収集(手順 5)やデバイスの再起動は「決して」試みないでください。そこまでの手順と、メモリのテキストセクションの収集を実施する必要があります。また、アクセスの試行などネットワーク上のアクティビティを検出するために、いくつかの Snort シグネチャをリリースしています。シグネチャ 63139、62949、45575 は、インプラントまたは関連する動作を検出するためにリリースされました。これらのシグネチャを有効にするには、デバイスが TLS を復号するように設定されている必要があるのでご注意ください。
- CVE-2024-20353(ASA サービス妨害(DoS)/再起動)– 3:63139
- 「Line Runner」– 永続化メカニズムの動作 – 3:62949
- 「Line Dancer」– インメモリのみのシェルコードインタープリタの動作 – 3:45575
- もともとは無関係な CVE の検出用に作成されたシグネチャですが、Line Dancer の動作も検出します。
このブログに記載した攻撃者の IP アドレスへの接続を発見した場合、またはクラッシュダンプ機能が変更されている場合は、Cisco TAC でケースをオープンしてください。
UAT4356 のインフラストラクチャ
興味深いことに、この攻撃に使用された攻撃者が管理するインフラストラクチャの主要コンポーネントの SSL 証明書は共通しています。顧客宅内機器(CPE)データで報告されているとおり、以下のパターンに一致する SSL 証明書が、同じ期間に Shodan や Censys などの外部スキャンエンジンにも ASA として表示され、そのポートはここに記載した SSL 証明書と同じです。SSL 証明書に関するこの情報は、このインフラストラクチャに OpenConnect の VPN サーバー(https://ocserv.openconnect-vpn.net)が使用されていることを示唆しています。
証明書のパターン:
:issuer = O=ocserv,CN=ocserv VPN
:selfsigned = true
:serial = 0000000000000000000000000000000000000002
:subject = O=ocserv,CN=ocserv VPN
:version = v3
顧客宅内機器(CPE)の識別子:
cpe:2.3:a:cisco:http:*:*:*:*:*:*::
cpe:2.3:h:cisco:adaptive_security_appliance:*:*:*:*:*:*:*:*
cpe:2.3:o:cisco:adaptive_security_appliance_software:*:*:*:*:*:*:*:*
MITRE TTP
この攻撃では、MITRE ATT&CK フレームワークの手法がいくつか使用されたことが確認されています。中でも注目すべき手法を以下に示します。
- Line Runner の永続化メカニズム(T1037)
- CVE-2024-20353 による再起動アクション(T1653)
- Base64 による難読化(T1140)
- processHostScanReply() 関数のフッキング(T0874)
- AAA を利用したシステムログの無効化および改ざん(T1562-001)
- AAA とクラッシュダンププロセスへのコードインジェクション(T1055)
- CLI コマンドの実行(T1059)
- AAA メカニズムのバイパス(T1556)
- 実行後のファイル削除(T1070-004)
- C2 通信のための HTTP の傍受(T1557)
- HTTP を用いた C2(T1071-001)
- HTTP を用いた C2 による一方向のバックドア(T1102-003)
- C2 を介したデータ漏洩(T1041)
- ネットワークのスニッフィング(T1040)
カバレッジ
Threat Defense Virtual、適応型セキュリティアプライアンス、Meraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
Cisco Umbrella は、シスコのセキュア インターネット ゲートウェイ(SIG)として、デバイスが悪意のある IP に接続するのをブロックします。Umbrella の無料トライアルはこちらからお申し込みください。
特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。この脅威の Snort SID は 45575、62949、63139 です。
侵入の痕跡(IOC)
この記事で前述したように、この攻撃を受けて ASA デバイスが侵害されたかどうかを評価する際に、防御担当者が検索できる既知の侵入の痕跡がいくつかあります。たとえばログが途切れているとか、最近予期しない再起動が確認されているといった場合は、さらなる調査が必要な不審なアクティビティとして扱う必要があります。また、以下にリストしている IP アドレスは UAT4356 による使用が確認されています。なお、この中には、一般的に知られている匿名化インフラストラクチャの一部である IP アドレスも含まれており、攻撃者が直接それらの IP アドレスを管理しているわけではありません。このブログに記載した攻撃者の IP アドレスへの接続を発見した場合、またはクラッシュダンプ機能が変更されている場合は、Cisco TAC でケースをオープンしてください。
攻撃者が管理している可能性のあるインフラストラクチャ
192.36.57[.]181
185.167.60[.]85
185.227.111[.]17
176.31.18[.]153
172.105.90[.]154
185.244.210[.]120
45.86.163[.]224
172.105.94[.]93
213.156.138[.]77
89.44.198[.]189
45.77.52[.]253
103.114.200[.]230
212.193.2[.]48
51.15.145[.]37
89.44.198[.]196
131.196.252[.]148
213.156.138[.]78
121.227.168[.]69
213.156.138[.]68
194.4.49[.]6
185.244.210[.]65
216.238.75[.]155
マルチテナントのインフラストラクチャ
5.183.95[.]95
45.63.119[.]131
45.76.118[.]87
45.77.54[.]14
45.86.163[.]244
45.128.134[.]189
89.44.198[.]16
96.44.159[.]46
103.20.222[.]218
103.27.132[.]69
103.51.140[.]101
103.119.3[.]230
103.125.218[.]198
104.156.232[.]22
107.148.19[.]88
107.172.16[.]208
107.173.140[.]111
121.37.174[.]139
139.162.135[.]12
149.28.166[.]244
152.70.83[.]47
154.22.235[.]13
154.22.235[.]17
154.39.142[.]47
172.233.245[.]241
185.123.101[.]250
192.210.137[.]35
194.32.78[.]183
205.234.232[.]196
207.148.74[.]250
216.155.157[.]136
216.238.66[.]251
216.238.71[.]49
216.238.72[.]201
216.238.74[.]95
216.238.81[.]149
216.238.85[.]220
216.238.86[.]24
謝辞
この調査にご協力いただいた以下の組織に感謝を申し上げます。
- オーストラリア信号総局のオーストラリア サイバーセキュリティ センター
- Lumen Technologies 社の Black Lotus Labs
- カナダ通信保安局の下部組織であるカナダ サイバーセキュリティ センター
- Microsoft 社の脅威インテリジェンスセンター
- 英国の国家サイバーセキュリティ センター(NCSC)
- 米国サイバーセキュリティ インフラストラクチャ セキュリティ庁(CISA)
本稿は 2024 年 04 月 24 日にTalos Group のブログに投稿された「ArcaneDoor – New espionage-focused campaign found targeting perimeter network devices」の抄訳です。