ファイルレスマルウエアは「ファイルは作らない」が、何も作らないわけではない
標的型攻撃に「ファイルレスマルウエア」が使われるようになって久しいが、標的型攻撃を仕掛けるモチベーション(きっかけ/やる気の源)は一体何か?を考えてみよう。
- 仕掛ける相手の持ってる情報が欲しい
- できれば長い期間、情報を継続的に獲得したい
- でも、仕掛ける相手に侵入するのは結構手間
となると、何らかの方法で(だいたいはHTTP/HTTPS経由)情報を持ち出す手段を攻撃を仕掛ける相手に仕込みたいとなる。
ファイルレスマルウエアは、単純にファイルをスキャンするツールではみつからない。
しかし、単にメモリ上にしか存在しないマルウエアは、永続性の観点で不安定である。「再起動したら消える」脆弱な存在だ。
それでは、永続化するためにはどうしたらいいのだろうか。Windows上でファイルレスマルウエアを永続化するのは、(わりかし)容易かなと思う。以下、例えばこんな方法がある、ちうのを挙げていく。
- サービスに登録したPowershell等のワンライナースクリプト
- タスクスケジューラに登録したPowershell等のワンライナースクリプト
別にPowershellに恨みがあるわけではないがw、Powershell上のワンライナースクリプトを用いて外部からプログラムを取得し、それを実行するというのはありうるし、ワンライナーでも結構なことを行える。
さらに、外部に情報を持ち出すときにも(本当にファイルレスならば)一時ファイルを作成せず、「ファイルを読む→HTTPリクエストに読んだ内容を乗せる」という処理を繰り返すし、RATっぽいものも動かして、外部からの制御を受け付けるようC&Cサーバに接続を行わせることも可能だ(今だったらこっちか?)。
ということで、「ファイルを作らない」だけで、痕跡はあちこちに残るため、その痕跡を逃さないために、例えばEDRであったり(端末セントリックだが、ログは集中管理されるのが普通なので、後述するSIEMとも絡んでくる可能性あり)、SIEMであったり(各種ログセントリック)というツールを導入・運用していくという話になってくる。
攻撃者の立場に立って考えると、「永続化」という話は重要なポイントなので、永続化のための手法を押さえておくと、攻撃された痕跡を見つけるのに役立つかもしれない。