FFR Yarai vs 自作マルウェアもどきウェア

FFRのYarai。評価版を入手した。従来のウィルススキャンとは一線を画すらしい。シグニチャパターンではなくそのマルウェアの挙動で「悪意を見抜く」とのこと。パターンファイルに依存しない「ヒューリスティック検出技術」を追及した次世代セキュリティソリューションという触れ込みだ。


http://www.fourteenforty.jp/products/yarai/


パターンマッチングによるウィルス検知には限界がある。マルウェアの挙動で判定するという手法はいままでも、いろいろなところで考えられてきたし、実際に仮想的なサンドボックスマルウェアを実行して判定するようなウィルス対策アプリケーションもあったようななかったような.....。でも、その「悪意ある挙動」とはいったい何なのか定義が難しそうだ。

そこで、かつて色々あって(別に悪さをしようと思ったわけではなく)マルウェアもどきみたいなのをつくったことがある。これを使ってYaraiがどの挙動を悪意と判定するのかみてみようと思った。で、まずこの自作マルウェアの概要から。一応以下のような機能を有している。

(1)ドロッパ(親プログラム) A.exe
 -B.exe(ウィルス本体)を「C:\Windows\」に配置。
 -B.exeのファイルスタンプを2003/07/01 13:12:09に変更。
 -Windowsファイアウォールに「Windows Update Tools」の名前で除外設定をする。
 -B.exeを実行。
 -レジストリを編集しB.exeを自動起動設定する。

(2)ウィルス本体 B.exe
 -UPXにて圧縮済み。
 -レジストリに自身を再起動登録する。
 -起動直後、公開用ディレクトリ(C:\Program Files\temp)を生成する。
 -自身がHTTPサーバとなり常駐起動する(ポート10890)。
 -一定時間後、リモートサイトよりキーロガー(C.dll)をダウンロードする。
 -キーロガーのダウンロードが完了したらdllをロードする。
 -定期的に画面キャプチャを取得する。
 -画面キャプチャファイルをPNG形式で生成し、ファイルの末尾にキーログを追加して公開ディレクトリに配置する。
 -My Documents配下のファイルを公開ディレクトリにコピーする。

(3)キーロガー C.dll
 -Windowsグローバルフックを使いキーパンチストロークをB.exeに通知する。


あくまで技術検証用につくったので決してバラまいたりとかしてません!さて、これらの動作の中でyaraiは何を悪意ある動作とするかを検証してみた。yaraiのインストール自体は簡単だった。で、さっそくA.exeを実行してみたところ、しばらくして以下のようなメッセージが出た。




「隠しプロセスがWindowsフックをインストールしようとしました。スパイウェアに利用される可能性が.....(snip)」とのこと。どうもキーロガーについて言っているようだ。では、 C.dll を修正してWindowsフックの部分をコメントアウトして再度実行してみた。



実行したところ、yaraiは何も反応しなくなった....つまり、キーロガー以外の機能、たとえば画面キャプチャをとったり、ポートを勝手に開けたり、WindowsFireWallの例外設定をしたり、外部からファイルをダウンロードしたり、パックされたファイルをドロップしたり、自身を再起動登録することについては悪意がないと判定されたわけだ....俺も悪人になれないな.....。

一応、スタティックスキャンを試してみた。B.exe のプロセスを殺し、C.dll のWindowsフック処理を再度実装し B.exe がロードできる場所に配置して、スタティックスキャンを実行した。そうすると、B.exe がマルウェアと検知された。



おそらく、Windowsフックを実装している C.dll をロードする処理が入っているためだろう。C.dll を削除した状態でスタティックスキャンを実行したら B.exe は検知されなかった。

一言で「悪意ある処理」っていっても切り分け難しいよね。たった、これだけの評価で yarai の検知精度についてどうこう言うつもりは全くないんだけど、これだけは言いたい!画面のリサイズくらいはできるようにしてほしい!中のリストボックスに表示されている長いメッセージが見ずらくてしょうがない。