FIRST は、Angel M. Villegas をリーダーとするプロジェクトです。この記事は、Holger Unterbrink が投稿しました。
Talos はこのほど、FIRST(Function Identification and Recovery Signature Tool)をリリースいたしました。FIRST は、類似した機能についてナレッジを共有するためのオープンソース フレームワークで、IDA Pro が分析可能なファイル タイプに対して使用する機能が対象となります。情報セキュリティのアナリストやリバース エンジニアリングの専門家による情報共有を促進するコミュニティの創設を目指しています。
FIRST の背景にあるのは、特定の機能に関するエンジニアの分析(名前、プロトタイプ、コメントなど)を記録として保存するという考え方であり、オペコード ハッシュ、ニーモニック ハッシュ、局所性鋭敏型ハッシュなどを使用します。こうしたシグネチャを 1 つの場所に収集して保管することにより、API/プラグインを介して後からコミュニティに情報を提供することができます。目標は、類似する機能を素早く検索できるようにすることです(図 A 参照)。それにより、別のサンプルまたは別のエンジニアによってすでに分析されている機能を再度分析する手間を省くことができます。
図 A
たとえば、スペインの研究者があるサンプルを分析したとします。この研究者は、分析した機能にコメントを残し、情報をサーバにアップロードします。後日、カリフォルニアの別の研究者がこのサンプルの亜種に遭遇したとします。この研究者は、類似した既知のバイナリが見つかるかどうかを調べるために、FIRST サーバを検索します。幸運にも、類似の機能が別の研究者によってすでに分析されていれば、一から分析し直す必要はありません。つまり、フレームワーク内で一致するものを見つけ、分析をスピードアップすることができます。
クライアント側には、次の機能を持つ IDA Python プラグインを提供します。
- コメントの追加(単一または複数の機能が対象)
- コメントのチェック(単一またはすべての機能が対象)
- コメントの更新
- コメントの表示
- コメント履歴の表示
- メタデータの管理
- IDA Python を使用した FIRST スクリプト
このプラグインは、Talos のパブリック FIRST サーバ(ベータ版)またはユーザ自身のサーバ インスタンスで使用できます。利用を開始するには、FIRST ホームページで登録を行い、Talos サーバにログインするための API キーを取得します。
FIRST アーキテクチャ フレームワークは、次のコンポーネントから構成されています。
図 B
FIRST フレームワークでは、IDA プラグインなどのクライアント側プラグインと通信するために REST API が提供されます。また、認証モデル、データベース マネージャ、エンジン マネージャも提供されます。データベース マネージャを利用すると、既存の MongoDB や MySQL 以外のデータベースとも柔軟に統合できます。エンジン マネージャは、類似機能を抽出するすべてのモジュール(エンジン)を管理、実行します。クライアント側のプラグイン/API/ABI は、REST API を経由してサーバと連携します。開発者は API/ABI を使用して、ワークフローやツールに FIRST を組み込むことができます。
FIRST は次の会議で紹介されました。
MALCON – 10 月 19 日、プエルトリコ(ファハルド)
PACSEC – 10 月 27 日、日本(東京)
ZeroNights – 11 月 18 日、ロシア(モスクワ)
Botconf – 12 月 1 日、フランス(リヨン)
詳細については以下からご確認いただけます。
ホームページ – 登録と詳細情報
http://first-plugin.us/
本稿は 2016年12月1日に Talos Group のブログに投稿された「Project FIRST: Share Knowledge, Speed up Analysis」の抄訳です。