BlueShell マルウェアバリアントが APT キャンペーンに関連付けられる
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
このレポートでは、Goで書かれた新しいLinuxベースのBlueShell RATバリアントを検証します。このバージョンは、カーネルワーカーとしてプロセスを偽装し、C2通信のためにプロキシサーバーを使用するなど、回避能力を改善しています。このマルウェアは、BlackTechを含む中国を拠点とする脅威アクターと関連付けられています。
調査
アナリストは、BlueShellペイロードを /tmp/kthreadにXORデコードし、解凍するドロッパーを特定しました。マルウェアは、エンコードされた設定データを wtimという名前の環境変数に保存します。調査では、ホスト名の検証や、内部プロキシを介してトラフィックをルーティングすることで直接C2接続を回避する能力などが新たに明らかになりました。
緩和策
組織は、 /tmp 内の不審なファイル作成や、 [kworker/12:12]のような異常なプロセス名を注意深く監視する必要があります。セキュリティチームはまた、内部プロキシサーバーを通過する予期しない外向きトラフィックを検出するべきです。ドロッパーが削除されたときには、メモリフォレンジックとファイルシステムのカーヴィングを実行して、ペイロードと設定データを復元する必要があります。
対応
BlueShellの活動が検出された場合、影響を受けたホストは直ちに隔離され、メモリフォレンジックを通じて悪意あるプロセスとその設定を特定するために調査されるべきです。プロキシログは、C2 IPアドレス 48.216.210.91への接続を確認するためにレビューされるべきです。調査員はまた、初期ドロッパーがどのように展開されたかを特定し、漏洩したSSH資格情報の悪用を含む可能性を調べるべきです。
攻撃フロー
検出
バイナリ/スクリプト/フォルダに危険な権限が設定されました(コマンドライン経由)
表示
隠しファイルがLinuxホストに作成されました(ファイルイベント経由)
表示
検出するためのIOCs(HashSha256):APTグループが使用するBlueShellバリアントの分析
表示
検出するためのIOCs(SourceIP):APTグループが使用するBlueShellバリアントの分析
表示
検出するためのIOCs(DestinationIP):APTグループが使用するBlueShellバリアントの分析
表示
BlueShellバリアントC2サーバー接続試行の検出 [Windowsネットワーク接続]
表示
BlueShellバリアントを用いたプロキシサーバーC2通信の検出 [プロキシ]
表示
BlueShellマルウェアバリアントの実行の検出 [Linuxプロセス作成]
表示
模擬実行
前提条件:テレメトリー&ベースラインプリフライトチェックが成功している必要があります。
理由: このセクションは、検出ルールをトリガーするためにデザインされた敵対者技術(TTP)の正確な実行を詳説します。コマンドと物語は、特定されたTTPsを直接反映し、検出ロジックによって予期される正確なテレメトリーを生成することを目的としています。抽象的または無関係な例は誤診を招く可能性があります。
-
攻撃の流れおよびコマンド: 攻撃者がLinuxサーバーへの初期アクセスを獲得し、永続化を確立するためにBlueShellバリアントを展開しています。検出を回避するために、悪意あるプロセスを
/kworker/12:12という名前のカーネルワーカースレッドとして偽装しようとします。同時に、ドロッパーはメインペイロードを/tmp/kthreadにアンパックすることを試みます。Sigmaルールで定義された特定の文字列がアラートをトリガーすることを確認するために、プロセスの偽装とドロッパーの活動の両方を模擬します。 -
回帰テストスクリプト:
#!/bin/bash # BlueShellマルウェアバリアント実行の模擬 echo "[+] BlueShellシミュレーションを開始しています..." # 1. ドロッパーの挙動の模擬(/tmp/kthreadへの書き込み) echo "ドロッパーが/tmp/kthreadに書き込むのを模擬しています" echo "#!/bin/bash" > /tmp/kthread chmod +x /tmp/kthread /tmp/kthread & SLEEP_PID=$! # 2. 偽装プロセス実行の模擬 # 'Image contains'をトリガーするためにターゲットプロセス名にリネームしてダミーファイルを作成 echo "[+] 偽装プロセス /kworker/12:12 の模擬" echo "echo 'I am a fake kernel thread'" > /tmp/fake_worker chmod +x /tmp/fake_worker # 'contains'ロジックをトリガーする名前を含むパスで実行 /tmp/fake_worker --name="/kworker/12:12" & WORKER_PID=$! echo "[+] シミュレーションコマンドが送信されました。" echo "[+] テレメトリーの取り込みを待機中..." sleep 10 # 別コマンドによるクリーンアップ echo "[+] シミュレーション完了。アーティファクトを削除するにはクリーンアップスクリプトを使用します。" -
クリーンアップコマンド:
#!/bin/bash # シミュレーションアーティファクトのクリーンアップ echo "[+] シミュレーションアーティファクトのクリーンアップ中..." rm -f /tmp/kthread rm -f /tmp/fake_worker pkill -f "/kworker/12:12" pkill -f "/tmp/kthread" echo "[+] クリーンアップ完了。"