The Deobfuscator at RECON 2008 by Eric D. Laspe/Jason Raber

RECON 2008 Speakers
 RECON 2008で発表されたEric D. Laspe氏とJason Raber氏による「The Deobfuscator」(IDA Pro向け難読化の復号ツールの紹介)が興味深いです(Blackhat USA 2008でも発表されているようですが)。概要としては、難読化の復号ツール(Deobfuscator)をIDA Proプラグインとして実装し、Rustock.Bと呼ばれるマルウェアに対してデモ(Deobfuscate)を行った結果を資料中に示しています。単純なpush/popに関するDeobfuscateを示しているわけではなく、アンチ逆アセンブラコードの単純化、Peephole(のぞき穴最適化、デッドコードの検出削除等ですね)、NOPコードの削除、JMP命令の追跡(無駄なJMP命令の除去等)も実装しているそうです。複雑で複数あったコールグラフが直線に戻されている(たぶん)Demo画像を見ると、Deobfuscationの効果は大きそうです。
 今後一層こういった技術が職業リバースエンジニアには必須になってきそうですね。近年のマルウェアは対リバースエンジニアリング技術として難読化が利用されるのが一般的です。そんなマルウェアを数多くさばかないといけないのが職業リバースエンジニアです。彼らの負担が大きくなるのも目に見えている(もしかして既にオーバーワーク?)ので、ホワイトボックス解析(逆アセンブルしてコードを見て解析する)の自動化など企業や大学で研究されていると思うんですが、学会やシンポジウムといったものに私は参加したことがないので、全然知らなかったりします。
 Deobfuscatorを知ってこういったツール開発に興味ある方は、これを参考に自作の逆アセンブラ・デバッガ・Deobfuscatorの開発に挑戦してもいいかもしれませんね。結構セキュリティ向けのツールを作っている日本人(大学生)というのは少ない気がします。なので、学生のうちに多くの人が幸せになれそうなツールを作って公開してみると、将来就職などで有利かもしれません。プログラム組むだけと違って、セキュリティの分野では未知の世界を切り開くようなおもしろさと、人が少ない故に切り開いて自分の道を作りやすい側面があるように思います。逆に言えば、プログラムを作って自分の環境を変えていこうっていう人が見えにくいように思います。穴場といえば穴場なのかもしれませんねー。また、純粋にプログラムプログラムしてるんじゃなくて、知識と技術を要領よく扱うことができれば、案外簡単に多くの人を幸せにできるかもしれないと思います。
 ちなみに私は難読化ツールとバイナリエディタの開発をしているので、逆アセンブラ・デバッガといった解析ツール開発には手が回らないのでした。でも、そういったツールは世界的にも需要がありそうで、ビジネスにも繋がりそうな気がしますね。