筆者の通っていた高校は男子校だった。服装は自由で、学校に行くというよりもクラブ活動に参加するようないでたちで自転車通学をしていた。自転車通学のお供はもちろんウォークマン。テープには、友達から貸してもらったCDから録音した曲もたくさん入っていたが、自腹を切って買ったものが自然と優先された。優先されたもののひとつには、Oasisの曲があった。

Twitter ID: @kinyukaが「Time Flies... 1994-2009」のことをつぶやいていたのをきっかけに、久しぶりにOasisを耳にした。この場を借りて、感謝の言葉を申し上げたい。教えてくれてどうもありがとう。今回のカンファレンスへの移動中、特に機上でギャラガー兄弟のハーモニーを繰り返し堪能できた。

筆者は先日、RECON 2010というカナダのモントリオールで開催されるカンファレンスに参加してきた。特に、海外と日本との技能的な差を認識するためにと、今回はトレーニングにも参加することにした。筆者の参加したトレーニングは「Coding Unpackers for Fun and Profit: TitanEngine」というものであった。講師はTomislav Pericin氏である。同氏がChief Software Architectを勤めるReversingLabs社はソフトウェア保護ツールを提供しており、またPackerに関する知見が高い。マルウェア解析を行う上でPackerの自動Unpackについては非常に重要であり、そのためこのクラスに参加することにした。ちなみに、同氏らは来るBlack Hat USA 2010において"TitanMist"というアンパックのためのシグネチャデータベースの発表を控えているという。同カンファレンスに参加予定の方は、ぜひこのプレゼンテーションを聞いてみていただきたい。

さて、衝撃的なことに、ホテルに着くとエアコンが壊れていた。トレーニング並びにカンファレンスは筆者が投宿するホテルで行われる。そして、折しもアメリカ東海岸を中心に熱波が襲来しており、モントリオールも昼間は30度を超える暑さであった。行き先がカナダだったこともあり、またカンファレンスと言えば冷房でギンギンに冷えた部屋で講演が行われるというのが定番だと認識していた筆者はスーツケースに長袖の上着を何着も用意しておいたが、まったくもって不要であった……。運良くハーフパンツも用意しておいたのが功を奏することとなった。が、それでも灼熱であることには変わりはなかった。

翌日、扇風機が設置された部屋でひたすら取り組んだのは"Static Unpacker"の開発である。どのような内容であったのかを説明するために、背景にある事柄について述べておきたい。

図は、Panda Securityのブログに掲載されているものである。マルウェアは一般にPackerと呼ばれる圧縮プログラムを使用した自己解凍ファイル形式をとる。Panda Securityの2007年当時の調査によると、2007年4月に発見された新種のマルウェアに占めるPackerの使用率は79%であったという。

Panda Securityによる新種のマルウェアに占めるPackerの使用率調査(Panda Securityのブログより引用)

このように、Packerが一般にマルウェアで使用される現況があるために、ウイルス対策ソフトベンダ各社は、こうしたPackerが使用されているファイルを検知するような機能を自社製品に組み入れていることがある。また、Packerを使用した場合本来のコードは圧縮され、データとして自己解凍形式ファイルの中に保存される。以下の図は、実際にPackerを使用する前のものと、使用した後のものとの比較である。このようにまったく異なるバイナリを生成するため、Packerが使用されたマルウェアを分析しようとしたとしても、この圧縮を解凍しない限りは、その本来の動作を明らかにすることはできないのである。

左がオリジナルのコード、右がPackerによる圧縮を行った自己解凍コード