Cisco Japan Blog
Share

TileGX に対応する新しい IDA Pro プラグイン


2019年10月24日


概要

Cisco Talos では、TileGX バイナリに対して逆アセンブラとして機能する、IDA Pro 用のプラグインを新開発しました。新しいプラグインは、TileGX を狙った脅威を IDA Pro 上で解析(リバースエンジニアリング)する際に役立ちます。

プラグインを開発したきっかけは、昨年に発生した、世界中の数百台のワイヤレスルータを狙う VPNFilter 攻撃でした。攻撃を調査する中で、Tilera の TileGX プロセッサアーキテクチャを標的とする高度なマルウェアサンプルが複数発見されました。TileGX アーキテクチャベースのプロセッサは、VPNFilter の主な標的ともなった小規模・ホームオフィス用(SOHO)ルータで多用されています。ただし TileGX アーキテクチャに対応した分析ツールは非常に限られています。たとえば「objdump」により ELF バイナリを逆アセンブルできますが、IDA Pro や Ghidra ほどの洗練された使いやすいツールは存在していません。

このため、プロセッサの解析に対応した IDA Pro 用プラグインを開発することに決めたのです。「objdump」コマンドを実現する libopcode ライブラリはすでに TileGX アーキテクチャをサポートしていることから、別の命令デコーダーを独自開発するのではなく、libopcode ライブラリを基にプラグインを開発することになりました。ただし動作速度の観点から、オンラインで公開されているオープンソースのプロセッサ用モジュール(大半は Python で作成)とは対照的に、今回は C++ で書かれています。幸いにも IDA Pro SDK にはプロセッサ用モジュールの優れたソースコード例が公開されており、開発でも大きく役立ちました。

開発されたプロセッサ用モジュールは、TileGX アーキテクチャに対する逆アセンブラとして機能します。現時点では動作速度に改善の余地があります。また binutils の依存関係により、今のところ Linux 上でのみコンパイル可能です。これらの制約はあっても、TileGX アーキテクチャを狙った脅威の分析(リバースエンジニアリング)で役立つでしょう。

ビルドとインストール

あらかじめコンパイルpopup_iconされたプラグインをダウンロードして IDA Pro の「plugin」フォルダにコピーすることも、プラグインを自分でコンパイルすることもできます。前述のように、いずれも Linux でのみ使用できます。Windows や macOS はまだサポートされていません。

ビルドプロセスは Linux(Ubuntu 18.04)上の IDA Pro 7.3 で動作確認されており、同じ環境の使用をお勧めします。Githubpopup_icon からソースコードをダウンロードします。ソースコードディレクトリに、「idacfg.mk」ファイルと次のコンテンツを作成します。

idabin=<IDA インストールフォルダへのパス>

idasdk=<IDA SDK
ディレクトリへのパス>

次に、以下のコードを実行します。

make -f Makefile.linux install

これでプラグインがビルドされ、インストールされます。

使用方法

ida64 を起動します。マルウェアファイルを開く際に、ダイアログで「Tilera Tile-GX」をプロセッサとして選択します。プロセッサタイプの変更を確定します。これで TileGX の逆アセンブルを開始できます。

今回のアルファ バージョンは、将来的に修正できるバグがいくつか含まれている可能性があることを前提にリリースされています。ただし早期にリリースすることで、コミュニティに貢献したいと考えています。問題、バグレポート、機能に対するリクエストの送付先については、ソースコードをご確認ください。問題が発生した場合は、作成者までお問い合わせください。また、ビルドプロセスでバグを特定してくれた Hex-Rays 社の Igor Skochinsky 氏に謝意を表します。

 

本稿は 2019年10月10日に Talos Grouppopup_icon のブログに投稿された「New IDA Pro plugin provides TileGX supportpopup_icon」の抄訳です。

Tags:
コメントを書く