Overview
ファイルレスマルウェア(Fileless Malware)とは、ディスク上にファイルを書き込むことなく、メモリ上で直接動作する高度なマルウェアです。従来のマルウェアがファイルとしてディスクに保存されるのに対し、ファイルレスマルウェアはOSの正規ツールやプロセスを悪用して攻撃を行うため、従来型のアンチウイルスソフトによる検知が極めて困難です。
この攻撃手法はLiving off the Land(LotL:環境寄生型攻撃)とも呼ばれ、PowerShell、WMI(Windows Management Instrumentation)、.NETフレームワーク、マクロなど、OSに標準搭載された正規ツールを悪用します。正規のシステムツールが使われるため、通常の業務操作と悪意のある活動を区別することが難しく、セキュリティチームにとって大きな課題となっています。
近年のサイバー攻撃においてファイルレス技術の利用は急増しており、APT(高度標的型攻撃)グループや高度なサイバー犯罪者が好んで使用する手法となっています。ファイルレスマルウェアは従来型マルウェアと比較して検知率が約10倍低いとされており、セキュリティ対策の大きな転換を迫る脅威です。
Details
主要な攻撃手法
- PowerShell悪用:PowerShellスクリプトをメモリ上で直接実行し、ファイルをディスクに書き込まずにペイロードをダウンロード・実行する。Invoke-Expression(IEX)やDownloadStringなどのコマンドレットが頻繁に悪用される
- WMI(Windows Management Instrumentation):WMIイベントサブスクリプションを利用して永続化を確立し、システム再起動後も攻撃コードが自動実行されるように設定する
- Officeマクロ:Word/Excelの悪意あるマクロからPowerShellやVBScriptを起動し、メモリ上でペイロードを実行する初期侵入ベクターとして利用される
- .NETリフレクション:.NETアセンブリをメモリ上に直接ロードして実行することで、ファイルシステムへの書き込みを回避する
- レジストリ格納型:悪意あるコードをWindowsレジストリに格納し、正規プロセスを通じてメモリ上に展開・実行する
Living off the Land Binaries(LOLBins)
LOLBinsとは、Windows OSに標準搭載されている正規バイナリのうち、攻撃者によって悪用される可能性のあるものの総称です。代表的なLOLBinsには以下のようなものがあります。
- mshta.exe:HTMLアプリケーション(HTA)ファイルを実行するツール。リモートからスクリプトを取得・実行するために悪用される
- certutil.exe:証明書管理ツールだが、ファイルのダウンロードやBase64エンコード/デコードに悪用される
- rundll32.exe:DLLの特定関数を実行するツール。悪意あるDLLの実行やアプリケーションホワイトリストの回避に使用される
- regsvr32.exe:COMオブジェクトの登録ツール。AppLocker等のアプリケーション制御をバイパスするために悪用される
従来型アンチウイルスの限界
従来のアンチウイルスソフトウェアは、主にシグネチャベースの検知を採用しています。これはディスク上のファイルを既知のマルウェアパターンと照合する方式であり、ファイルを生成しないファイルレスマルウェアには原理的に対応できません。また、正規のシステムツールが攻撃に使用されるため、振る舞い検知でも正常な管理操作との区別が困難です。
検知アプローチ
- AMSI(Antimalware Scan Interface):Microsoftが提供するインターフェースで、PowerShellやVBScript等のスクリプトエンジンが実行前にコンテンツをスキャンできる仕組み。難読化されたスクリプトも展開後にスキャンされるため、高い検知率を実現する
- ETW(Event Tracing for Windows):Windowsカーネルレベルのイベントトレース機能を活用し、プロセスの生成、ネットワーク接続、レジストリ操作などの挙動を詳細に記録・監視する
- EDR(Endpoint Detection and Response):エンドポイントでの挙動をリアルタイムに監視・記録し、異常なプロセスの親子関係や不審なコマンドライン引数を検知する。メモリスキャン機能により、メモリ上で動作するマルウェアの検出も可能
- メモリフォレンジック:Volatility等のツールを用いてメモリダンプを分析し、不審なプロセスやインジェクションの痕跡を調査する
Security Measures
- 01PowerShellの実行ポリシーと制限:PowerShell Constrained Language Modeを有効にし、不要なコマンドレットの実行を制限してください。PowerShellスクリプトブロックログを有効にすることで、実行されたすべてのスクリプトの内容を記録できます。
- 02EDR/XDRソリューションの導入:従来型アンチウイルスに加えて、EDR(Endpoint Detection and Response)またはXDR(Extended Detection and Response)を導入し、メモリ上での不審な活動やプロセスの異常な振る舞いをリアルタイムに検知・対応できる体制を構築してください。
- 03LOLBinsの実行制御:AppLockerやWindows Defender Application Control(WDAC)を使用して、不要な正規ツール(mshta.exe、certutil.exe等)の実行を制限してください。業務に必要なツールのみを許可するホワイトリスト方式が推奨されます。
- 04マクロの実行制御:Microsoft Officeのマクロ実行ポリシーを厳格に設定し、信頼できる発行元が署名したマクロのみを許可してください。インターネットからダウンロードしたファイルのマクロはデフォルトでブロックする設定が推奨されます。
- 05AMSIの有効化と保護:AMSI(Antimalware Scan Interface)が有効であることを確認し、AMSIバイパス手法への対策を講じてください。AMSIプロバイダーを最新の状態に保ち、スクリプトエンジンのログを集約・監視する体制を整備しましょう。
- 06詳細なログの記録と監視:Sysmonを導入してプロセスの生成、ネットワーク接続、レジストリ変更を詳細に記録してください。特にプロセスの親子関係(例:Word.exeからPowerShell.exeの起動)を監視し、異常な実行チェーンを検知するルールをSIEMに設定しましょう。
Incidents
📋 Operation Cobalt Kitty(2017年)
2017年、APTグループ「OceanLotus(APT32)」がアジアの大手企業を標的として実行した大規模なファイルレス攻撃です。攻撃者はスピアフィッシングメールを起点に、PowerShellとWMIを駆使して完全にファイルレスな攻撃チェーンを構築しました。
攻撃者はPowerShellスクリプトをメモリ上で実行し、WMIイベントサブスクリプションで永続化を確立しました。最終的にCobalt Strikeのビーコンをメモリ上に展開し、約6ヶ月にわたってネットワーク内を水平移動しながら機密データを窃取し続けました。従来のアンチウイルスではまったく検知されず、ファイルレス攻撃の脅威を世界に示した代表的事例となりました。
📋 Astarothマルウェアキャンペーン(2019年)
2019年にMicrosoftが報告したAstarothキャンペーンは、ブラジルのユーザーを標的とした大規模なファイルレス攻撃です。攻撃はスパムメールに添付されたLNK(ショートカット)ファイルから始まり、WMIC、BITSAdmin、certutil等の複数のLOLBinsを連鎖的に悪用する巧妙な攻撃チェーンを構築しました。
各ステップで正規のWindowsツールのみを使用し、最終的なペイロードもDLLインジェクションによってメモリ上で実行されました。ディスクに一切のマルウェアファイルを残さないこの手法は、LOLBins攻撃の教科書的事例として広く研究されています。Microsoftはこの事例をもとにAMSIとEDR機能の強化を推進しました。
📋 PowerGhostクリプトマイナー(2018年)
2018年にKasperskyが発見したPowerGhostは、企業ネットワークを標的としたファイルレス型の暗号通貨マイニングマルウェアです。初期侵入にはEternalBlue(MS17-010)の脆弱性やWMIリモート実行を利用し、完全にファイルレスで拡散しました。
PowerGhostは感染端末のメモリ上でPowerShellスクリプトとして動作し、WMIイベントサブスクリプションを利用して永続化を確立しました。さらにMimikatzをメモリ上で実行して認証情報を窃取し、ネットワーク内の他の端末にも自動的に拡散しました。インドやブラジル、コロンビアを中心に企業ネットワークに大きな被害をもたらし、ファイルレス技術が金銭目的の攻撃にも広く適用されることを示しました。