この前、マルウェアの勉強をしたけど、調べてる途中で「ファイルレスマルウェア」って言葉を初めて知ったんだ。マルウェアとは何が違うんだろう?
と思って、ファイルレスマルウェアについて調べることにしてみたよ。
目次
ファイルレスマルウェアとは
ファイルレスマルウェアとは、実行ファイルがディスク上に保存されず、メモリ上で実行されるマルウェアです。
従来のマルウェアは、メールの添付ファイルを開いたり、悪意のあるWebサイトにアクセスすることで感染します。マルウェアのほとんどが実行(exe)ファイルと呼ばれるもので、プログラムそのものとなっており、ディスクに保存され、それが実行されることによって不正行為を働きます。セキュリティ対策ソフトは、メールに添付されるファイルやWebサイトからダウンロードされるファイルをチェックし、実行ファイルは特に疑わしいものとして検査します。
しかし、近年実行ファイルを使用しない(ファイルレス)タイプのマルウェアが増加してきました。最終的な実行ファイルはディスク上に作成されず、PowerShell等でコードが実行(メモリ上にロード)されます。ディスク上にファイルを作らないことから「ファイルレス・マルウェア」と呼ばれています。実行ファイルではないため、シグネチャ(メソッド名/パラメータの型/数/順序/戻り値の型等で構成された、メソッドを識別するための情報)がなく、従来型のセキュリティ対策ソフトではほぼ検知が出来ません。
だったらどうやって対策すれば…
ファイルレスマルウェアの攻撃方法
ファイルレスマルウェア攻撃では、デフォルトのWindowsツール、特に「PowerShell」と「Windows Management Instrumentation(WMI)」を使用して、他のマシンに展開するなどの悪意のある活動を行います。正規のプログラムが悪用されている為、ファイルレスマルウェアの攻撃は、ほとんどのセキュリティプログラムや熟練のセキュリティアナリストによっても検出されにくくなっています。
PowerShellとWMIが攻撃者の標的対象にされているのは理由は主に以下が挙げられます。
- すべてのWindowsマシンに標準インストールされている
- コマンドを実行できる(例えば、PowerShellを使って複数のマシン間のタスクの自動化が可能)
- 多くのIT担当者の日常業務に組み込まれているため、従業員の使用を禁止することがほぼ不可能とされている
- PowerShellとWMIは正規のプログラムなので、実行するコマンドも正当なものとみなされてしまう
スパムメールに、PowerShell・WMI等の不正コードが含まれており、攻撃指示を出します。不正コードは、起動されるとメモリ上にロードされ、その際にPowerShell・WMIを使って起動。 終了条件のないプログラムをバックグラウンドで起動すると、意図的にプログラムを停止しない限り、OSシャットダウンまで動作し続けてしまいます。
ファイルレスマルウェアが従来型のソリューションで検知できない理由
ファイルレスマルウェアは実行ファイルがないため、シグネチャベースでのウイルス対策ソフトでは検知ができません。現在多く確認されている攻撃手法は、「.lnk」等のWindows ショートカットファイルの拡張子を持つファイルを起点にし、内部に仕込ませたスクリプトを実行させてプロセスを呼び出し、そこにマルウェアを生成。こうしたファイルやプロセスは、シグネチャベースのセキュリティ対策ソフトでは検査対象としていませんでした。