Halver Frake氏 |
「ボットのコードは別のボットに流用されており、また、ルートキットにも使用されている」- SABRE SecurityのHalver Frake氏は、「マルウェアの自動分類システムを開発した後に、最も驚いたことは何か?」という質問にこう答えた。
同氏は、Black Hat Japanで「マルウェアの分類とアンパッキングの自動化」というタイトルの講演を行った。同氏によれば、80年代から90年代にかけて、「ハッカー」と呼ばれる人々は、個人の趣味趣向の一部としてシステムへの侵入方法を考え付くことに楽しみを覚えていた。また、このころのマルウェアは低級言語であるアセンブラで開発されており、ポリモフィック/メタモフィック手法もすでに生まれていた。
90年代中盤になると、C/C++といった高級言語でマルウェアが開発されるようになった。そして、マルウェアはインターネットに放たれるようになり、発見されたバグは修正されてからまた放たれるという、一般的なソフトウェア開発サイクルと似たものへと変貌していったという。
一方、マルウェア対策のひとつとしてウイルス対策ソフトがあるが、80年代からすでに製品は存在していた。そして、このころからパターン(シグネチャ)マッチ手法が使用されていたが、現在ではマルウェアに含まれる関数を修正する、といった変化によってパターンを新たにしなければならない。これは、たとえばPythonスクリプトを1バイト変更するだけといった具合だ、という。
マルウェアの開発者はウイルス対策ソフト製品に新たに加わったパターンを入手し、どの実行可能ファイルが検出されるのかを特定することができる。そして、デバッグシンボルを使用してC/C++コードを変更することで、ウイルス対策ソフトでは検出できない新しいマルウェアを開発し、それを放つことができるのだという。加えて、マルウェア開発者はコンパイラの設定、あるいは異なるコンパイラを使用することでひとつのソースコードから複数の亜種を作成することも可能だという。
このように、亜種を大量に作成することができる環境が現在は整備されており、マルウェアを分類することには多大な労力が必要とされているのだという。