wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

ファイルレスマルウエアは「ファイルは作らない」が、何も作らないわけではない

標的型攻撃に「ファイルレスマルウエア」が使われるようになって久しいが、標的型攻撃を仕掛けるモチベーション(きっかけ/やる気の源)は一体何か?を考えてみよう。

  • 仕掛ける相手の持ってる情報が欲しい
  • できれば長い期間、情報を継続的に獲得したい
  • でも、仕掛ける相手に侵入するのは結構手間

となると、何らかの方法で(だいたいはHTTP/HTTPS経由)情報を持ち出す手段を攻撃を仕掛ける相手に仕込みたいとなる。

ファイルレスマルウエアは、単純にファイルをスキャンするツールではみつからない。

しかし、単にメモリ上にしか存在しないマルウエアは、永続性の観点で不安定である。「再起動したら消える」脆弱な存在だ。

それでは、永続化するためにはどうしたらいいのだろうか。Windows上でファイルレスマルウエアを永続化するのは、(わりかし)容易かなと思う。以下、例えばこんな方法がある、ちうのを挙げていく。

別にPowershellに恨みがあるわけではないがw、Powershell上のワンライナースクリプトを用いて外部からプログラムを取得し、それを実行するというのはありうるし、ワンライナーでも結構なことを行える。

さらに、外部に情報を持ち出すときにも(本当にファイルレスならば)一時ファイルを作成せず、「ファイルを読む→HTTPリクエストに読んだ内容を乗せる」という処理を繰り返すし、RATっぽいものも動かして、外部からの制御を受け付けるようC&Cサーバに接続を行わせることも可能だ(今だったらこっちか?)。

ということで、「ファイルを作らない」だけで、痕跡はあちこちに残るため、その痕跡を逃さないために、例えばEDRであったり(端末セントリックだが、ログは集中管理されるのが普通なので、後述するSIEMとも絡んでくる可能性あり)、SIEMであったり(各種ログセントリック)というツールを導入・運用していくという話になってくる。

攻撃者の立場に立って考えると、「永続化」という話は重要なポイントなので、永続化のための手法を押さえておくと、攻撃された痕跡を見つけるのに役立つかもしれない。