インストールしたことのない拡張機能:KREMLINがChromeの整合性チェックを偽装して銀行取引セッションを盗む
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
KREMLINは、複数段階のJavaScriptローダーと悪意のあるブラウザ拡張機能を通じて、ブラジルの銀行ユーザーを狙う高機能なマルウェアエコシステムです。攻撃者はEthereumスマートコントラクトをデッドドロップレゾルバーとして利用し、C2インフラを管理してChromiumの整合性保護を回避します。このマルウェアはChromeやEdgeブラウザからセッショントークン、クッキー、機密資格情報を盗むことができます。
調査
Elastic Security Labsは、15か月にわたる7つのキャンペーンでKREMLINを追跡し、その複数段階の感染チェーンとC++インストーラを分析しました。研究者たちは、Ethereumベースのデッドドロップレゾルバー、正当なSentinelOneバイナリを通じたサイドローディング、Chromium セキュアプレファレンス ファイルの不正な拡張機能をインストールするための操作が明らかになりました。調査では、ユニークな顧客IDとミューテックスを含むキャンペーン固有のマーカーも発見されました。
軽減策
組織はChromium セキュアプレファレンス ファイルへの許可されていない変更や疑わしいブラウザデバッグ活動を監視するべきです。スケジュールされたタスクに厳格なコントロールを設け、異常なNode.jsの実行を監視することで露出を減少させることができます。ネットワーク監視は、既知の悪意あるドメインへの接続およびクライアントエンドポイントから発信される意外なEthereumスマートコントラクトクエリを検出する必要があります。
対応策
KREMLIN活動が検出された場合、影響を受けたエンドポイントはセッションの外部送信や資格情報の盗難を防ぐために直ちに隔離されるべきです。対応者は、ブラウザープロファイルディレクトリで不正な拡張機能を調査し、悪意あるコンポーネントを削除するべきです。スケジュールされたタスクと実行中のプロセスも、疑わしいNode.jsまたはSentinelOne関連の活動について監査されるべきであり、可能性のある資格情報の漏洩やアクティブなウェブセッションはリセットされるべきです。
攻撃フロー
この部分はまだ更新中です。
検出
Powershellを介してのダウンロードまたはアップロード(cmdline経由)
疑わしいPowershell文字列(powershell経由)
LOLBAS Conhost(cmdline経由)
Powershellからの疑わしい.NETメソッドの呼び出し(powershell経由)
パブリックユーザープロフィール内の疑わしいファイル(file_event経由)
一般的でないプロセスによるインターネットアーカイブの解決(dns_query経由)
疑わしいスケジュールされたタスク(audit経由)
Cloudflare開発ドメインの悪用の可能性(dns経由)
検出用のIOC (HashSha256):インストールしていない拡張機能:KREMLINがChromeの独自の整合性チェックを行うことなく銀行セッションを盗む
検出用のIOC (HashMd5):インストールしていない拡張機能:KREMLINがChromeの独自の整合性チェックを行うことなく銀行セッションを盗む
検出用のIOC (SourceIP):インストールしていない拡張機能:KREMLINがChromeの独自の整合性チェックを行うことなく銀行セッションを盗む Part 2
検出用のIOC (SourceIP):インストールしていない拡張機能:KREMLINがChromeの独自の整合性チェックを行うことなく銀行セッションを盗む Part 1
検出用のIOC (DestinationIP):インストールしていない拡張機能:KREMLINがChromeの独自の整合性チェックを行うことなく銀行セッションを盗む Part 2
検出用のIOC (DestinationIP):インストールしていない拡張機能:KREMLINがChromeの独自の整合性チェックを行うことなく銀行セッションを盗む Part 1
KREMLIN C2通信とサンドボックス回避の検出 [Windowsネットワーク接続]
サンドボックス回避のための疑わしいシステム情報クエリ [Windows Sysmon]
PowerShellとプロセスチェックによるKREMLINマルウェアの存在を検出 [Windowsプロセス生成]
シミュレーション実行
-
攻撃物語&コマンド: 攻撃者は初期アクセスを得て、サンドボックス分析からの回避を試みています。これを行うために、彼らはシステムプロセスとして偽装した二次ペイロード(
missioncritical.exe)を展開し、仮想化プロセス(vmmemctl.exe)と対話することで仮想マシン上で動作しているかどうかを検出しようとします。最後に、彼らはPowerShellを使用して感染の次の段階を編成します。これらの具体的なプロセス名は、検出ルールのトリガーとなります。 -
回帰テストスクリプト:
# KREMLINマルウェア指標のシミュレーションスクリプト # 1. PowerShellの実行をシミュレート(ルールによって対象) Write-Host "[*] PowerShell検出をトリガー中..." powershell.exe -Command "Write-Host '悪意のある活動をシミュレート中'" # 2. 'missioncritical.exe'の作成をシミュレート(ルールによって対象) # ダミーファイルを作成し、これをstart-processを通じて'実行'し、ファイル名のプロセス作成イベントを生成します。 Write-Host "[*] missioncritical.exeの検出をトリガー中..." New-Item -Path "$env:TEMPmissioncritical.exe" -ItemType File -Force Start-Process "$env:TEMPmissioncritical.exe" -ErrorAction SilentlyContinue # 3. 'vmmemctl.exe'の作成をシミュレート(ルールによって対象) Write-Host "[*] vmmemctl.exeの検出をトリガー中..." New-Item -Path "$env:TEMPvmmemctl.exe" -ItemType File -Force Start-Process "$env:TEMPvmmemctl.exe" -ErrorAction SilentlyContinue -
クリーンアップコマンド:
# シミュレーションアーティファクトのクリーンアップ Remove-Item -Path "$env:TEMPmissioncritical.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPvmmemctl.exe" -Force -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。"