マルウェア解析、プログラムの脆弱性チェックのための
デファクトスタンダート
IDAは、Windows, Linux, Mac OS Xに対応した、プラグインにより拡張も可能な高機能逆アセンブラです。
デバッガも付属していて、マルウェアの解析には必須のツールです。
IDAとは?
IDAは逆アセンブラ
- IDAは、逆アセンブラとして、実行のマップを作成するために、バイナリのプログラムを調査します。
逆アセンブラの本当の関心は、それがアセンブリ言語と呼ばれている記号的な表現によってプロセッサーで実行される指示を示すということです。
あなたがちょうど今インストールしたスクリーン・セーバーが、電子バンキング・セッションをスパイしていたり、
電子メールをロギングしていた場合、逆アセンブラはそれを明らかにすることができます。しかし、アセンブリ言語を理解するのは困難です。
そのため、そのコードをより読みやすくし、バイナリプログラムを生じた元のソースコードに近いものにするために、
革新技術がIDAに実装されたのです。
プログラムコードのマップは、更なる調査のために後処理することもできるため、ウイルスのゲノム分類にも使用されています。
IDAはデバッガ
- 敵対的なコードは、通常解析者に非協力的で、ウイルス、ワームやトロイの木馬型マルウェアなどは、より感染力が強くなり、
わかりにくくなっています。そのため、より強力なツールが必要とされているのです。
IDAのデバッガは、逆アセンブラの静的解析能力を補完します:
調査対象のコードを一行づつステップ実行することによって、デバッガはしばしば混乱を回避して、
より強力な静的逆アセンブラが深く処理することができるデータを得ることを助けます。
IDA ProはWindows、Linux、およびMac OS Xで動作し、特定のプラットフォーム(Windows 32/64ビット、Linux 32/64ビット、OS X x86 /
x64、iOS、Androidなど)の多数のアレイをデバッグできます。これは、ローカルまたはリモートで実行できます。
リモートデバッガーは、潜在的に有害なプログラムを安全に分析するのに非常に役立ちます。
一部のIDAデバッガーは、マルウェア分析をさらに安全にする仮想環境でアプリケーションを実行することもできます。
IDAはインタラクティブ
- コンピュータが未知のものを調査することとなると、今のところ人間の脳に勝つことはできないので、IDAは完全にインタラクティブです。
IDAは、人間の解析者がその判断を無効にするか、ヒントを提供するのかを決定することを可能にし、その対話性は、ビルトイン・
プログラミング言語とオープンプラグインアーキテクチャでもたらされます。
IDAはプログラム可能
- IDAには、中程度の複雑な作業を単純に自動化するのに用いられる非常に強力なマクロのような言語から成る開発環境があります。
より高度な仕事のために、オープンプラグインアーキテクチャでは、外部の開発者が制限なく、IDAの機能を強化することが可能です。
どのようにIDAは役に立つのか?
敵対的コードの分析
- 今日の敵対的なコードのスピードと複雑さには、強力な分析方法が必要とされます。
IDAは、新しいウイルスに関する情報が「IDAデータベース」で交換し合われるようなマルウエア分析のスタンダードになりました。
2001「CODE RED(コードレッド)」事件で、eEyeがホワイトハウスのウェブサイトを攻撃対象とした新しいワームを孤立させたときにも、
IDAはワームを分析して理解するのに用いられました。
一日24時間、週7日体制で、世界のどこかで、IDAのおかげでアンチ・ウィルス解析者は新しいウイルス・サンプルを調査して、
タイムリーな解決を提供することができるのです。
バルネラビリティ(脆弱性)調査
- IDAは、ソフトウェアがなぜ壊れるのかについて調査するための理想的なツールです。
脆弱性開示の話題がますます議論を呼んでいますが、
残念なことにソフトウェアがしばしば外部からの攻撃に弱いという事実を無視することはできません。
ソフトウェアの重要な部分に脆弱性が潜在することは、あってはならないのです。
COTS検証
- ソフトウェアの多くは、使用される国の外で、現在開発されています。
プログラムを確認するのが信じられないほど難しいために、ソースコード監査をして作り直すことは必ずしも現実的でありません。
IDAが、プログラムが実行しようとしていることを実際に実行するかどうかをチェックするための便利な手段を提供します。
プライバシー保護
- ソフトウェアは、あらゆるレベルで我々の生活に無断で入り込んでいます。
IDAは、あなたの重要な権利を保護します。
IDAのテクノロジと機能
IDAの双方向性により、リアルタイムで逆アセンブルの改善が可能になります。IDAのマルチプロセッサ・サポートは比類ないものです。
Hex-Rays社の2つの技術は本当にユニークで、実際の逆アセンブラでは実装されたことがなく、
そしてさらに重要なことに、信じられないほどの時間の節約になります。
BEST分析 - 他のどの言語よりも高級言語に最も近い
- Hex-Rays社のFLIRT(ast Library Identification and Recognition Technology ):高速ライブラリ識別および認識技術は、
多くのコンパイラの標準的な関数呼び出しを識別します。
- PIT:Parameter Identification and Trackingは、スタックパラメータを使用時に追跡します。
PITはパラメータの使用をバックトラックすることができます。
拡張性
- IDAはビルトインのCのような言語を通してプログラム可能です。
- IDAはオープン・プラグインアーキテクチャを提供しています。Hex-Rays社のPEデバッガはプラグインです。
いくつかのプラグインのソースコードはSDKに含まれています。
- stealth:アンチデバッグトリックに対するステルス
- findcrypt:よく使われるいくつかのブロック暗号を識別
- highlighter:デバッグセッションでシングルステップをスルーしたコードを強調表示
- unispector:IDAデータベースからUnicode文字列を抽出
IDAその他の機能
- 完全にインタラクティブ:逆アセンブラを使って作業し、面倒な複数のパスは必要ありません。
- マルチプロセッサ:何十ものプロセッサと同じインタフェースと機能
- デバッガ:WinDbgおよびGDBServerベースのものを含む、複数のローカルおよびリモートデバッガモジュール
- すべてのプラットフォームで完全にカスタマイズ可能な作業と統一された環境。
- スタック変数はローカル変数を追跡します。
- グラフ作成:VCGポートを通して、グラフを作成します。
- プログラムナビゲータツールバー
- 完全に動的なグローバルおよびローカルラベル。
- インタラクティブなレジスタ名変更により、RISCプロセッサが簡単になります。
- 自動コメント:自分のコメントベースを定義して使うことができます。
- 汎用性:事実上あらゆるファイルをロードし、逆アセンブルします。
IDAがサポートするプラットフォーム
IDAは、GUIモードとコンソールモードの両方で、MS Windows、Linux、Mac OS X上で動作します。
IDA スクリーンショット
ダウンロード等