ファイルレスマルウェアとは何か、どのように動作するのか、そしてどのように阻止するのか

最終更新: 28 1月2026
  • ファイルレス マルウェアは、実行可能ファイルをディスクに書き込むことを避け、主にメモリ内で実行され、PowerShell や WMI などの正当なプロセスに依存します。
  • これらの手法により、シグネチャベースのウイルス対策ソフトウェアによる検出が困難になり、プロセスの動作と継続的な監視に重点を置く必要が生じます。
  • EDR/XDR、エクスプロイト防止、スクリプトとマクロの制御、パッチ適用、MFA の組み合わせが、ファイルレス攻撃の影響を軽減する鍵となります。

ファイルレスマルウェア

ファイルレスマルウェアは、サイバーセキュリティの概念としてますます一般的になっているものの、その実態は十分に理解されていないことが多い。これは、.exeファイルとしてダウンロードされ、ハードドライブに常駐するような典型的なウイルスとは異なり、コンピュータのメモリ内を主に動き回り、正規のオペレーティングシステムツールを利用する、はるかに巧妙なマルウェアである。

つまり、ファイルレスマルウェアは、従来のプログラムとしてインストールされなくても被害をもたらすことができます。スクリプト、Windowsプロセス、PowerShell、WMI、さらにはレジストリといったコンポーネントを利用して、バックグラウンドで悪意のあるコードを実行します。そのため、従来のウイルス対策ソフトでは検出が非常に困難であり、防御戦略を挙動分析と継続的な監視へと転換する必要が生じています。

ファイルレス マルウェアとは一体何でしょうか?

ファイルレスマルウェアとは、可能な限りハードディスクに永続的な悪意のあるファイルを書き込むことを避ける脅威の一種を指します。攻撃者は、代わりにコードをメモリ(RAM)に直接注入または実行したり、システムに既に存在する信頼できるプロセスを介して実行したりします。

従来のマルウェアでは、攻撃者は実行可能ファイルを作成し、それを配布します(例えば、電子メールの添付ファイルやWebダウンロードなど)。被害者はそれを実行し、そのバイナリファイルはシステム上に残り、再起動のたびに再起動されます。ファイルレスモデルでは、これらのコンポーネントの多くが、メモリ上に常駐し、Windowsの組み込みユーティリティを利用し、ディスク上の痕跡を消去または最小限に抑えるスクリプトやコマンドに置き換えられます。

この手法は、2017年頃から特に普及し始めました。当時、高度に標的を絞った攻撃に限らず、より大規模な攻撃キャンペーンが検出されるようになったためです。それ以来、カスペルスキー、センチネルワン、その他の主要なセキュリティプロバイダーなどのメーカーは、攻撃チェーンにファイルレスコンポーネントを組み込んだトロイの木馬、アドウェア、クリッカーのファミリーが出現していることを確認しています。

重要な特徴は、多くの場合、機能面で「新しいタイプのマルウェア」を扱っているのではなく、ランサムウェア、認証情報窃盗犯、RAT(リモートアクセスツール)、暗号通貨マイナーなど、従来からの脅威を新しい方法で展開しているということです。これらのマルウェアは、ファイルレス技術を使用してシグネチャベースの検出を回避することができます。

ファイルレスマルウェアがシステム上でどのように動作するか

ファイルレスマルウェア操作

これらの攻撃の基本的な仕組みは、従来のマルウェアとは重要な点で異なります。それは、悪意のあるコードが目に見える実行ファイルとしてディスクに書き込まれないという点です。通常、アプリケーションはストレージにインストールまたはコピーされ、ユーザーがアプリケーションを開くと、そのコピーがメモリにロードされます。ファイルレスマルウェアの場合、このディスク書き込みの手順は省略され、マルウェアはほぼ完全にプリロードされたプロセス内で動作します。

これを実現するために、攻撃者は「既存のシステム環境を悪用する」と呼ばれる手法を用います。つまり、外部バイナリではなく、正規のシステム機能、スクリプト、ツール(LoLBins)を利用するのです。Windows環境ではPowerShellがその代表例で、システムAPIへの特権アクセスを提供し、単一のコマンドラインで複雑なスクリプトを実行できます。

典型的な攻撃シナリオは、悪意のあるリンクや添付ファイルを含むフィッシングメールから始まります。このメールは、緊急性や信頼性を装い(例えば、財務部、人事部、サプライヤー部門などを装う)、ユーザーにファイルを開いたりリンクをクリックさせたりします。そこから、マクロ、PowerShellコマンド、VBScript、またはJScriptスクリプトが起動され、ペイロードがメモリに直接ダウンロードまたは実行されます。

多くの場合、脆弱性の悪用も発生します。ブラウザ、プラグイン、またはデスクトップアプリケーションのバッファオーバーフローやRCE(リモートコード実行)の脆弱性により、ディスクへの書き込みを必要とせずに、侵害されたプロセス内でシェルコードが実行されるようになります。そこから、攻撃者はメモリにさらにコードを注入したり、追加のスクリプトを展開したり、システムプロセスを操作したりします。

ファイルレスマルウェアの中には、ファイルシステムに「明らかな」実行ファイルを残さずに永続性を確立するために、Windowsレジストリを利用するものもあります。例えば、エンコードされたスクリプトをAutoRunキーの値として保存し、ユーザーがログインした際にPowerShellやWMIなどのツールを起動してそのコードをデコードして実行するといった方法が考えられます。

ファイルレスマルウェアが使用する主な手法

ファイルレスマルウェア技術

現代の攻撃キャンペーンでは、回避と持続性を高めるために、さまざまなファイルレス技術が組み合わされています。すべての攻撃でこれらの技術が使用されるわけではありませんが、よく使われる技術はしばしば混在して出現するため、最も一般的なものを知っておくと役立ちます。

1. WMI(Windows Management Instrumentation)内の悪意のあるスクリプト
よくある手口として、悪意のあるスクリプトをWMIサブスクリプションの一部として保存することが挙げられます。これらのサブスクリプションは、特定のシステムイベント(起動やログインなど)が発生した際に実行されるため、マルウェアは従来の実行ファイルなしでも活動を開始できます。コードはWindows管理インフラストラクチャ自体に埋め込まれたままになります。

2. PowerShellを中心的なベクトルとして
もう一つの典型的な手法は、悪意のあるスクリプトをコマンドラインパラメータとしてPowerShellに直接渡すことです。これは、マクロを含むOfficeドキュメント、一見正当な実行ファイル、あるいはmshtaやrundll32といったシステムユーティリティ(PowerShellを偽装して起動する)から実行できます。この手法により、攻撃者は追加のペイロードをメモリにオフロードし、システムを操作し、ディスクに永続的なデータを書き込むことなくコマンド&コントロールサーバーと通信することが可能になります。

3. レジストリまたはタスクスケジューラに保存されたスクリプト
攻撃者は、Windowsレジストリキーまたはタスクスケジューラのエントリにハードコードされたスクリプトを保存します。その後、正規のプロセスがこれらのスクリプトを読み取り、実行します。多くの場合、PowerShell.exe、CScript、WScript、あるいはCMDなどのLoLBinを介して実行されます。こうすることで、攻撃者の永続性は、通常のスタートアップ構成やスケジュールされたタスクの中に隠蔽されます。

4. .NETの読み込みがメモリに反映される
.NETのリフレクション技術を利用すると、物理ファイルを書き込むことなく、悪意のあるバイナリをアセンブリとして直接メモリに読み込むことができます。この読み込みを実行するアプリケーションは、正規のアプリケーションである場合もあれば、管理ツールの一部である場合もあります。そのため、ディスク上のファイルを調べるだけでは、悪意のあるアクティビティと正規のアクティビティを区別することが困難になります。

5. Microsoftによって署名されたバイナリの使用
mshta.exe や rundll32.exe といったツールは、Microsoft によって署名され、すべての Windows システムに存在し、ランチャーとして頻繁に使用されます。これらのツールは、悪意のあるコードを含む HTML、JavaScript、VBScript、または DLL スクリプトを実行できます。これらのツールは信頼できるプロセスとみなされるため、多くの基本的なセキュリティチェックではデフォルトで無視されます。

6. マクロやその他のアクティブな機能を含むドキュメント
Word、Excel、PowerPoint、PDFファイルには、マクロやDDEフィールドが含まれていたり、リーダー固有の脆弱性を悪用してコマンドを実行したりする可能性があります。一見クリーンなドキュメントであっても、PowerShellの行をトリガーしてペイロードをメモリにダウンロード・実行したり、既存のプロセスにコードを挿入したりする可能性があります。被害者は「通常の」ドキュメント以上のものを見ることなく、これら全てを検知します。

7. HTTP経由で受信したWebシェルとコンポーネント
サーバー環境では、攻撃者はHTTPリクエストを介してマルウェアコンポーネントを受信するWebシェル(Godzillaなど)をインストールします。これらのフラグメントは、追加のライブラリやバイナリをディスクに書き込むことなく、Webサーバーまたはアプリケーションプロセス内のメモリに直接挿入されます。

ファイルレスマルウェア攻撃の段階

ファイルレスマルウェア攻撃

ファイルレス攻撃は通常、マルウェア感染と同様の一連の手順を踏むが、物理ファイルの使用を最小限に抑え、既存のプロセスを最大限に活用するように調整されている。

1. 機器またはネットワークへの初期アクセス
最も一般的な侵入経路は依然としてフィッシングです。悪意のあるサイトへのリンクを含むメール、マクロを含むOffice添付ファイル、エクスプロイトを含むPDF、あるいはドキュメントに偽装された単純な実行ファイルなどがその例です。また、公開されているサービスの脆弱性、Webアプリケーションの欠陥、あるいは盗まれた認証情報なども、RDPやその他のリモートアクセスソリューションを介してアクセスするために悪用されます。

2. メモリ内でのコード実行
最初の侵入が完了すると、攻撃者はPowerShell、WMI、VBScript、JScript、または実行中のプロセスに挿入されたシェルコードスクリプトを使用して、ファイルレスコードを実行します。スクリプトをコマンドラインに直接渡すコマンド(多くの場合、難読化されています)を使用し、PowerShellの実行ポリシーをバイパスモードに設定して制限を回避するのが一般的です。

3. 持続性と横方向の移動
再起動後もアクセスを維持するために、レジストリ、WMIサブスクリプション、スケジュールされたタスク、あるいは改変された「正当な」サービスを用いて永続化メカニズムが構築されます。そこからマルウェアは、侵害された認証情報、標準的な管理ツール、そして一般的な企業プロトコルを用いて、最小限の新しいファイルの使用で他のマシンへと横方向拡散することが可能になります。

4. 目標達成に向けた行動
最終段階では、マルウェアは目的を達成します。認証情報の窃取、ランサムウェアによるファイルの暗号化、RATのインストール、機密情報の窃取、暗号通貨マイナーの展開などです。これらのアクションの多くは、単に異常な動作を「強制」された、無害なプロセスを通じて実行されます。

ファイルレス マルウェアは何ができるのでしょうか? また、なぜそれほど危険なのでしょうか?

破壊力という点では、ファイルレスマルウェアは従来のマルウェアの制限以外に事実上制限がありません。メモリ内のスクリプトと信頼できるプロセスを使用することで、次のような動作が可能です。

情報と資格情報の窃盗犯
キーストロークを記録し、ブラウザや認証情報マネージャなどのプロセスのメモリからパスワードをダンプし、そのすべてのデータを外部サーバーに送信することができます。これらの操作の多くは管理ツールを通じて実行されるため、基本的なアラートが常にトリガーされるとは限りません。

ファイルレスランサムウェア
一部のランサムウェアファミリーは、ファイルレス技術を採用しており、メモリから実行し、大量のファイルを暗号化し、操作完了後にすべての痕跡を消去します。目に見えるバイナリファイルに依存しないため、検知ウィンドウが狭くなり、被害を防ぐためには非常に迅速な対応が必要になります。

RATと永続的なバックドア
リモートアクセスキットはメモリ内に部分的に常駐し、レジストリまたはWMIを利用してアクティブ状態を維持できます。これにより、攻撃者は数か月間ネットワーク内を移動し、情報を収集したり、将来の攻撃フェーズに備えたりすることができ、多くの場合、疑われることなく攻撃を継続できます。

暗号通貨マイナーとリソースの乱用
ファイルレススクリプトは、マイニングプロセスを起動し、暗号通貨プールに接続し、CPUとGPUの使用率を圧迫する可能性があります。特に、再起動頻度の低いサーバーでは顕著です。その影響はパフォーマンスの低下や消費電力の増加として顕著に現れますが、詳細なプロセスアクティビティ監視がなければ、原因の追跡は困難です。

企業やユーザーにとって最大の課題は、ファイルレスマルウェアが、シグネチャベースのウイルス対策ソフトや単発のファイルスキャンを回避するように最初から設計されている点です。防御策がこのレベルに留まると、組織はこうした攻撃に対して全く備えができていない状態になりかねません。

ファイルレスマルウェアの検出が難しい理由

これらの脅威の主な戦術的利点は、ファイルシステム上にほとんど痕跡を残さないことである。正規のプロセス上で動作し、RAMに依存するため、従来のディスクスキャナでは疑わしいものをほとんど検出できない。

識別可能な悪意のあるファイルが存在しない
従来のエンジンはシグネチャに依存しており、ファイル内の既知のマルウェアに関連するバイトパターンを検出します。攻撃者がファイルを作成しなかったり、使用後すぐに削除したりした場合、そのシグネチャは検査されません。そのため、多くのファイルレス攻撃は、ストレージのみに焦点を当てた制御を回避できます。

信頼性の高いプロセスの集中的な使用
PowerShell、WMI、mshta、rundll32、cscript、wscript、そしてOfficeアプリケーションでさえ、管理業務や日常業務に不可欠です。これらを単純にブロックするだけでは、IT運用と業務に支障をきたします。そのため、これらのツールでは最も基本的な制御でさえ過度に許容され、攻撃者はそれを悪用してコードを隠蔽しようとします。

多くの従来のウイルス対策プログラムの限界
多くのレガシーソリューションは、メモリ内のプロセス、コマンドライン、実行パラメータ、あるいはシステムイベント間の相関関係を詳細に検査するように設計されていません。こうした可視性がなければ、Officeプロセスの背後で、難読化された文字列を含むPowerShellスクリプトが起動され、疑わしいドメインからコードをダウンロードしていることを検出することは非常に困難です。

難読化と分析回避技術
攻撃者は、スクリプトの難読化、Base64エンコード、コードの断片化、あるいは画像へのスクリプトの埋め込み(例えばInvoke-PSImageのような手法)などを用いて、静的解析を困難にします。その結果、ファイルからマクロやスクリプトを抽出するツールでさえ、大量の誤検知を生じさせずに悪意のあるスクリプトかどうかを判断することが困難になる可能性があります。

最新の検出戦略: ファイルから動作まで

ファイルレスマルウェアに対抗するには、単に時折アンチウイルスソフトを実行するだけではもはや不十分です。プロセス動作とイベント相関に焦点を当てた複数のセキュリティ層を組み合わせることが、明確なトレンドとなっています。

リアルタイムの行動分析
最新のEDRおよびXDRソリューションは、起動されたプロセス、コマンドライン引数、レジストリアクセス、管理ツールの使用、ネットワーク接続など、エンドポイントに関連するすべてのアクティビティを監視します。シグネチャだけに頼るのではなく、Officeドキュメントが隠されたPowerShellインスタンスを開き、信頼できないドメインからバイナリファイルをダウンロードするなど、典型的なマルウェアの行動パターンを検出します。

エクスプロイト防止エンジン
エクスプロイト防止(EP)レイヤーは、マルウェアが標的のプロセスでシェルコードを実行する前に、脆弱性を悪用する段階で攻撃をブロックすることを目的としています。これにより、RCE脆弱性やバッファオーバーフローを悪用するファイルレス攻撃の連鎖攻撃に利用可能な攻撃対象領域が大幅に縮小されます。

システムの重要な領域の分析
高度なツールは、スケジューラタスク、機密性の高いレジストリキー、WMIサブスクリプション、その他の一般的な永続化ポイントなどの領域を定期的かつ自動的にスキャンします。その目的は、関連するバイナリが表示されない場合でも、異常なエントリ、難読化されたスクリプト、または疑わしいコマンドを実行するタスクを検出することです。

Windows での ETW と AMSI の使用
Windowsは、Event Tracing for Windows(ETW)やAntimalware Scan Interface(AMSI)といった、スクリプト実行などのコンテンツの低レベルのログ記録と分析を可能にするテクノロジを提供しています。これらのメカニズムをセキュリティソリューションに統合することで、PowerShell、VBScript、JScriptのコンテンツを実行直前に検査できるようになり、検出能力が大幅に向上します。

脅威ハンティングと継続的なインテリジェンス
多くの組織では、自動検知に加え、脅威ハンティングチームを擁し、ファイルレス攻撃に関連する攻撃の兆候を積極的に環境分析しています。これらのチームは、MITRE ATT&CKなどのフレームワークを活用し、過去のテレメトリを参照し、新たな攻撃キャンペーンを予測するために検知ルールを改良しています。

組織への影響とセキュリティプロバイダーの課題

ファイルレスマルウェアは、企業にとって大きな悩みの種です。なぜなら、最も深刻な被害をもたらすのは、業務に悪影響を及ぼすことなく簡単にブロックできないプロセスやツールだからです。例えば、PowerShellを完全に無効化すると、システム管理が複雑化し、ITチーム内部で抵抗が生じるでしょう。

同じことが Office マクロにも当てはまります。
多くの企業のワークフローは、タスクの自動化にマクロを使用したドキュメントを依然として利用しています。Microsoftはマクロを無効にするオプションを提供していますが、多くの組織は必要に迫られてマクロを有効にしたままにしているのが現状です。セキュリティベンダーはマクロコードを抽出・分析することでこの問題を軽減しようと試みていますが、誤検知を起こさずにマクロを正確に分類することは大きな課題です。

サーバー側のみの保護の試み
一部のソリューションでは、ほぼすべての検知ロジックをクラウドまたは中央サーバーに委譲しています。これにより、遅延と接続依存性が生じます。エージェントはサーバーの判断を待ってから行動する必要があり、リアルタイムの防御が困難になります。さらに、一部のファイルレスランサムウェアのような非常に高速な攻撃では、数秒の遅延が大きな違いを生む可能性があります。

顧客はファイルレス攻撃に対する明確な対策を求めている
こうした脅威への意識が高まるにつれ、組織はメーカーに対し、自社製品がファイルレス攻撃を真にブロックし、表面的なパッチ適用にとどまらないことを実証するよう圧力をかけています。こうした圧力を受け、AIベースのエンジン、イベント相関分析、そして悪意のある活動の真の起源を再構築するStoryLineモデルや攻撃グラフの開発が促進されています。

ファイルレスマルウェアを防ぐためのベストプラクティス

100%安全な環境は存在しないものの、深刻なファイルレス感染に遭う可能性を大幅に減らし、早期発見の可能性を高めるための対策は数多く存在する。

スクリプトと管理ツールの厳格な管理
PowerShell、WMI、cscript、wscript、その他の高リスクユーティリティの使用者を制限することが重要です。これには、制限的な実行ポリシーの適用、署名付きスクリプトの使用、これらのバイナリのすべてのアクティビティのログ記録、異常な使用パターン(例えば、難読化されたパラメータを持つOfficeプロセスによって起動されたPowerShellなど)のブロックが含まれます。

アクティブなマクロとドキュメントの制御
理想的には、マクロはデフォルトで無効化し、事前の審査を経て特定のユーザーまたはテンプレートにのみ許可する必要があります。また、アクティブなコードが含まれている可能性のあるメールの添付ファイルをフィルタリングし、ユーザーに配信する前に隔離された環境でドキュメントを分析するソリューションを使用することも推奨されます。

脆弱性の継続的な修正
ブラウザ、プラグイン、オフィススイート、オペレーティングシステム、サーバーアプリケーションを最新のパッチで最新の状態に保つことで、攻撃を受ける機会を大幅に減らすことができます。侵入防止システム(IPS)を補完することで、すぐに更新できないアプリケーションの脆弱性を補うことができます。

堅牢な認証とゼロトラストモデル
多くのファイルレス攻撃は侵害された資格情報に依存するため、MFA (多要素認証) とゼロ トラスト原則 (デフォルトでは誰も、どのデバイスも信頼しない) を実装すると、攻撃者が侵入後に横方向に移動して権限を昇格する能力が制限されます。

監視と管理された対応
外部SOCやMDR/EMDRプラットフォームなどのサービスを利用することで、大規模な社内チームを持たない組織でも、24時間7日体制の監視、高度なシグナル相関、迅速な対応能力を実現できます。これらのサービスは、ファイルレスマルウェアに関連する戦術や手法も含め、MITRE ATT&CKなどのフレームワークを活用することがよくあります。

要するに、ファイルレスマルウェアは、従来のファイルベースおよびシグネチャベースのアプローチの弱点を巧みに悪用することで悪名を馳せています。システムへの侵入方法、使用する技術(PowerShell、WMI、レジストリ、マクロ、Webシェル、メモリ、LoLBinsなど)、そしてどのような被害をもたらすかを理解することが、EDR/XDR、挙動分析、脅威ハンティング、管理ツールやアクティブドキュメントの使用に関する厳格なポリシーといった対策で防御を強化する第一歩となります。

プログラムのセキュリティとプライバシー
関連記事:
プログラム、データ、インターネット閲覧におけるセキュリティとプライバシー