APT15サイバー諜報活動:キャンペーンとTTP分析
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
APT15は、2010年から活動している中国の国家支援によるサイバー諜報グループで、主に政府機関や外交施設、軍事組織をターゲットとしています。このアクターは、標的型フィッシング、公開アプリケーションの悪用、カスタムバックドアに依存して初期アクセスを取得し、長期的な足場を維持しています。彼らのツールキットには、ステガノグラフィ、偽装、レジストリ操作、HTTPヘッダーやDNSトラフィックに埋め込まれた暗号化されたC2チャンネルが含まれています。このキャンペーンは、GraphicanやORB3リレーネットワークのような新しいツールとともに進化し続けています。
調査
調査では、BS2005、TidePool、MirageFox、Graphicanなどの複数のマルウェアファミリーと、初期アクセス、実行、持続性、特権昇格、防御回避、資格情報アクセス、発見、収集、データ流出、コマンド・アンド・コントロールにおよぶ包括的なATT&CK技術セットをマッピングしました。アナリストはケースデータからドメイン、ファイルパス、レジストリキー、コマンドラインなどの具体的な指標を抽出しました。グループのインフラは、 goback.stranged.net and finance.globaleducat.com のようなドメインをC2操作に活用しています。
緩和策
推奨される防御策には、メール添付ファイルの厳密なスキャン、Microsoft Exchange、SharePoint、VPNアプライアンスの迅速なパッチ適用、疑わしいレジストリの変更や異常なスケジュールタスク、rundll32やCOMベースのペイロード実行の監視が含まれます。ネットワーク監視は、既知のC2パターンに一致する非定型のHTTPクッキー活動とDNS TXTクエリに焦点を当てる必要があります。アプリケーションのホワイトリスト化と行動分析は、名前を変更した圧縮プログラムやステガノグラフィーに基づくPNGペイロードの使用をブロックするのに役立ちます。
対応
APT15の活動が検出された場合、影響を受けたホストを隔離し、揮発性データと関連するIOCアーティファクトをすべてキャプチャし、特定されたC2ドメインとIPアドレスをブロックします。持続性のあるショートカット、スケジュールされたタスク、レジストリの変更を特定するために完全なフォレンジック分析を行い、悪意のあるコンポーネントを排除し、侵害された資格情報をリセットします。影響を受けたユーザーに通知し、観察されたコマンドライン、ファイルパス、インフラ指標をカバーするように検出ルールを更新します。
“graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[“<b>技術</b> – <b>T1566.001 スピアフィッシングメールの添付ファイル</b><br /><b>説明</b>: 初期アクセスを得るために、悪意のある添付ファイルを含む標的型メールを送信します。”] class node_initial technique node_valid[“<b>技術</b> – <b>T1078 有効なアカウント</b><br /><b>説明</b>: 攻撃された正当な資格情報を使用してシステムにアクセスします。”] class node_valid technique node_exploit[“<b>技術</b> – <b>T1190 公開されているアプリケーションの脆弱性の悪用</b><br /><b>説明</b>: インターネットに接続されたサービスの脆弱性を悪用してアクセスを得ます。”] class node_exploit technique node_cmd[“<b>技術</b> – <b>T1059.003 Windows コマンドシェル</b><br /><b>説明</b>: cmd.exe を介してコマンドを実行して悪意のあるコードを実行します。”] class node_cmd technique node_shortcut[“<b>技術</b> – <b>T1547.009 ショートカットの変更</b><br /><b>説明</b>: 持続性のために LNK ショートカットを作成または変更します。”] class node_shortcut technique node_task[“<b>技術</b> – <b>T1053 スケジュールされたタスク</b><br /><b>説明</b>: 定義された時間にペイロードを実行するためにスケジュールされたタスクを使用します。”] class node_task technique node_active[“<b>技術</b> – <b>T1547.014 アクティブセットアップ</b><br /><b>説明</b>: 持続性のためにアクティブセットアップのレジストリキーを利用します。”] class node_active technique node_token[“<b>技術</b> – <b>T1134.003 アクセストークンの操作</b><br /><b>説明</b>: アクセストークンを変更して高い権限を取得します。”] class node_token technique node_steg[“<b>技術</b> – <b>T1027.003 ステガノグラフィー</b><br /><b>説明</b>: 検出を回避するために他のファイル内にデータを隠します。”] class node_steg technique node_masq[“<b>技術</b> – <b>T1036 偽装</b><br /><b>説明</b>: 検出を回避するためにファイルの名前を変更したり、正当なものとして偽装します。”] class node_masq technique node_icon[“<b>技術</b> – <b>T1027.012 LNK アイコン密輸</b><br /><b>説明</b>: LNK アイコンリソースに悪意のあるコードを埋め込みます。”] class node_icon technique node_proxy[“<b>技術</b> – <b>T1218 システムバイナリプロキシ実行</b><br /><b>説明</b>: 信頼されたシステムバイナリを悪用して悪意のあるコードを実行します。”] class node_proxy technique node_guard[“<b>技術</b> – <b>T1480.001 実行ガードレール</b><br /><b>説明</b>: 実行前に環境条件を検証します。”] class node_guard technique node_sandbox[“<b>技術</b> – <b>T1497 サンドボックス回避</b><br /><b>説明</b>: 解析サンドボックス環境を検出して回避します。”] class node_sandbox technique node_keylog[“<b>技術</b> – <b>T1056.001 キーロガー</b><br /><b>説明</b>: 資格情報を取得するためにキーストロークをキャプチャします。”] class node_keylog technique node_dump[“<b>技術</b> – <b>T1003 OS 資格情報のダンプ</b><br /><b>説明</b>: オペレーティングシステムからパスワードハッシュを抽出します。”] class node_dump technique node_sysinfo[“<b>技術</b> – <b>T1082 システム情報の発見</b><br /><b>説明</b>: OS、ハードウェア、およびソフトウェアの詳細を収集します。”] class node_sysinfo technique node_inet[“<b>技術</b> – <b>T1016.001 インターネット接続の発見</b><br /><b>説明</b>: アクティブなネットワーク接続と IP アドレスを識別します。”] class node_inet technique node_stage[“<b>技術</b> – <b>T1074.001 データの準備</b><br /><b>説明</b>: 流出前にローカルでデータを蓄積します。”] class node_stage technique node_archive[“<b>技術</b> – <b>T1560.001 ユーティリティによるアーカイブ</b><br /><b>説明</b>: zip などのユーティリティを使用してデータを圧縮します。”] class node_archive technique node_email[“<b>技術</b> – <b>T1114.002 リモートメール収集</b><br /><b>説明</b>: メールアカウントにアクセスしてメッセージを収集します。”] class node_email technique node_http[“<b>技術</b> – <b>T1071.001 Web プロトコル HTTP</b><br /><b>説明</b>: コマンドとコントロールの通信に HTTP を使用します。”] class node_http technique node_obfusc[“<b>技術</b> – <b>T1001 データ隠蔽</b><br /><b>説明</b>: データの内容を隠すためにエンコードまたは暗号化します。”] class node_obfusc technique node_dead[“<b>技術</b> – <b>T1102.001 デッドドロップリゾルバー</b><br /><b>説明</b>: 隠された場所からコマンドまたはデータを取得します。”] class node_dead technique node_encrypt[“<b>技術</b> – <b>T1573.001 暗号化されたチャンネル</b><br /><b>説明</b>: 通信を隠蔽するために C2 トラフィックを暗号化します。”] class node_encrypt technique node_exfil[“<b>技術</b> – <b>T1048.003 暗号化されていない非 C2 プロトコルによるデータ流出</b><br /><b>説明</b>: 暗号化せず、C2 とは関係のないプロトコルを使用してデータを転送します。”] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil “
攻撃フロー
検出
コマンドおよびスクリプトインタープリターを介したアーカイブソフトウェアの実行(プロセス作成経由)
表示
疑わしいPowershell文字列(powershell経由)
表示
疑わしいPowershell文字列(cmdline経由)
表示
オートスタート位置での疑わしいバイナリ/スクリプト(ファイルイベント経由)
表示
ドキュメント収集のための可能なXCOPY実行(cmdline経由)
表示
レジストリランキーへの疑わしいファイル拡張子の追加 [ASEPs](レジストリエベント経由)
表示
IOC(メール)で検出: APT15サイバー諜報:キャンペーンとTTP分析
表示
APT15コマンド実行および持続技術の検出 [Windowsプロセス作成]
表示
特定のHTTPヘッダーを介したAPT15のC2通信を検出 [Windowsネットワーク接続]
表示
シミュレーション実行
必要条件: テレメトリとベースラインの事前フライトチェックが通過している必要があります。
攻撃の概要とコマンド:
- 準備: 攻撃者はすでにユーザーアカウントを侵害し、エンドポイントにアクセスしています。
- データステージング (T1059.003): パターンと正確な
xcopyに従い、攻撃者は犠牲者のデスクトップファイルを隠れたWMI一時フォルダにコピーし、合法的なシステム活動と統合するためにタイムスタンプを維持します(/D:09-29-2021)。 - ペイロードの実行 (T1218.002): その後、攻撃者は
rundll32.exeを短い名前のパスで呼び出し(C:DOCUME~1ALLUSE~1IEHelpermshtml.dll)、持続性を確立する悪質なJavaScriptを実行します。 - 結果: 両方のコマンドは、Sigmaルールの
選択1and選択2にそれぞれ一致する独自のプロセス作成イベントを生成し、警告をトリガーします。
回帰テストスクリプト:
# -------------------------------------------------
# APT15シミュレーションスクリプト – Sigmaルールをトリガー
# -------------------------------------------------
# 1. ステージングディレクトリとダミーファイルを作成
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "敏感なデータ" -Encoding UTF8
# 2. APT15によって使用される正確なxcopyコマンドを実行
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd
# 3. 悪意のあるDLLをデプロイ(合法的なDLLをコピーしてシミュレート)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force
# 4. 正確なAPT15引数パターンでrundll32を実行
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd
# -------------------------------------------------
# シミュレーションの終了
# -------------------------------------------------
クリーンアップコマンド:
# ステージングファイルとディレクトリを削除
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue
# 偽のIEHelperフォルダーとDLLを削除
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue
# オプション: Sysmonを停止(テスト専用の場合)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u