フィッシングメールがシーフード購入依頼を装ってマルウェアを配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Kimsuky脅威アクターがビジネス文書に偽装した悪意のあるLNKファイルを使用して、韓国のユーザーを標的にしています。実行されると、LNKファイルはPowerShellスクリプトを起動し、JavaScriptやPowerShellコンポーネントを含む追加のマルウェアを隠れた背景プロセスを通じて展開します。このマルウェアはシステム情報をBackblaze B2ストレージに送信し、同じクラウドインフラストラクチャを介して追加のコマンドを受け取ります。
調査
AhnLabは、悪意のあるLNKファイルと永続性のためのPowerShellおよびスケジュールタスクの使用を分析することで、キャンペーンを特定しました。調査により、マルウェアがそのペイロードを隠すためにXOR暗号化を使用し、Backblaze B2などの正当なクラウドサービスをCommand and Control(C2)やデータ流出に悪用していることが示されました。実行構文およびタスクスケジューリングにおける類似性が、これを以前のKimsukyキャンペーンと結び付けています。
緩和
ユーザーは、たとえそれが正当なビジネス文書に見える場合でも、メールで受信したLNKファイルを開かないようにするべきです。組織は疑わしいLNKの実行を制限し、異常なPowerShellまたは wscript.exe の活動を監視するべきです。Backblaze B2などのクラウドストレージサービスとの許可されていない通信を監視することも、潜在的なマルウェアの活動やデータ流出の検出に役立ちます。
対応
悪意のある活動が検出された場合、管理者は、疑わしいスケジュールタスクやファイルを C:ProgramDataで確認することにより、影響を受けたホストを特定および隔離するべきです。調査者は、削除された %TEMP% ディレクトリで .cmd ファイルを分析し、システムログで tasklist コマンド実行を確認するべきです。予期しないプロセスから api.ipify.org またはBackblaze B2への外部接続も調査する必要があります。
攻撃の流れ
この部分はまだ更新中です。
検出
LOLBAS WScript / CScript(プロセス作成経由)
疑わしいPowerShell文字列(PowerShell経由)
可能性のあるIP検索ドメインの通信試行(DNS経由)
Backblaze B2 APIを介したIP取得とデータ流出の検出 [Windowsネットワーク接続]
悪意のあるLNKファイルとスクリプト実行の検出 [Windowsプロセス作成]
LNKファイルを介した悪意のあるPowerShellおよびJavaScriptの実行 [Windowsファイルイベント]
シミュレーションの実行
前提条件:テレメトリー & ベースライン事前確認が完了している必要があります。
根拠:このセクションでは、検出ルールをトリガーするように設計された攻撃技術(TTP)の正確な実行を詳細に説明します。コマンドと記述は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的としています。抽象的または関連性のない例は、誤診につながります。
-
攻撃の説明とコマンド: 攻撃者はWindowsワークステーションに足場を確立しました。データ流出の準備をするために、まず外部IPアドレスを特定し、C2リスナーを設定し、どの出入口点が使用されているかを確認する必要があります。そのために
ipify.orgを使用します。発見の後、攻撃者は機密文書を準備し、Backblaze B2 APIに接続して盗まれたデータをアップロードし、通常のビジネストラフィックに溶け込むために正当なクラウドサービスを利用します。 -
リグレッションテストスクリプト:
# IP検索とBackblaze API接続のシミュレーション Write-Host "[+] シミュレーション開始: IP検索..." -ForegroundColor Cyan try { $ip = Invoke-RestMethod -Uri "https://api.ipify.org" Write-Host "[+] パブリックIPを成功裏に取得: $ip" -ForegroundColor Green } catch { Write-Host "[-] IP検索に失敗。" -ForegroundColor Red } Write-Host "[+] シミュレーション開始: Backblaze B2 API接続..." -ForegroundColor Cyan try { # Backblaze B2へのAPIコールをシミュレーション $backblazeUri = "https://api.backblazeb2.com/b2api/v2/b2_authorize_account" $response = Invoke-WebRequest -Uri $backblazeUri -Method Post -Body "{}" -ContentType "application/json" Write-Host "[+] Backblaze APIへの接触に成功。" -ForegroundColor Green } catch { Write-Host "[-] Backblaze接続に失敗(有効な認証を使用しない場合は予期されるが、ネットワークテレメトリーは触発されるはず)。" -ForegroundColor Yellow } -
クリーンアップコマンド:
# このネットワークベースのシミュレーションでは永続的な成果物は作成されません。 Write-Host "[+] シミュレーション完了。システムに変更なし。" -ForegroundColor Green