IDA

IDA Pro活用事例

Hex-Rays社の主力製品であるIDA Proは、人気がありながら洗練されたソフトウェアです。 IDA Proは何に使用されているのでしょうか? IDAには、キャッチーなワンライナーでは要約できない非常に幅広い複雑なユースケースがあります。

そのため、IDAを説明するための売り込みを考え出すのではなく、ユーザーへのヒアリングをすることにしました。 以下は、IDA Proを使用してワークフローの重大な問題を解決し、結果を公開することを決定した、さまざまなセキュリティエキスパート、 マルウェアアナリスト、およびソフトウェアエンジニアからのサンプルです。このような出版物へのさまざまなリンクを収集し、 ソフトウェア業界のさまざまな下位区分にグループ化しました。 これにより、IDA Proが現場の実際のソリューションにどのように適用されているかを確認することが出来ます。

デジタルフォレンジック

チャレンジ
デジタルフォレンジック調査は、システムが悪意のあるソフトウェアによって侵害された場合に発生します。 ソフトウェアベースの攻撃が発生した場合、通常企業は、専門のコンピュータ緊急対応チーム(CERT)を派遣し、脅威を排除し、 被害の程度を評価し、将来同様の事態を防ぐために攻撃がどのように実施されたかを調査します。 コンピューター、モバイルデバイス、ネットワークアプライアンス、さらには分散システムからデジタル証拠を収集する必要があります。 したがって、さまざまなバイナリコード形式で動作できる必要があります。 多くの場合、調査をより困難で時間のかかるものにすることを目的として、コードが難読化されています。
アプローチ
IDA Proは、フォレンジック調査中に収集されたバイナリコードを分析できます。 最新のプロセッサで実行されるほぼすべてのコードを処理でき、その機能はカスタムスクリプトとプラグインで拡張できます。 これは、非常に難読化されたコードを分析するときに特に役立ちます。 IDAは、実際のマルウェアとのフィールドでのテストを常に受けており、多くのCERT組織に最適なツールとなっています。

 【事例】

ペネトレーションテスト(侵入テスト)

チャレンジ
ソフトウェア開発者には、セキュリティを強化する目的で自分のソフトウェアを攻撃する強いインセンティブがあります。 一般的な哲学は、他の誰かがあなたのクライアントに対して悪意を持ってそれを使用する前に、 自分でセキュリティの欠陥を積極的に見つける方が良いということです。 セキュリティ監査は、社内の専門チームまたはサードパーティのコンサルタントが実行できますが、 ほとんどの場合、IDAなどのツールの精度が必要です。
アプローチ
IDAをより攻撃的に使用して、ミッションクリティカルなソフトウェアの悪用可能な脆弱性を検出することができます。 通常、これには、ユーザー入力の処理を担当するロジックを特定し、論理エラーがないか積極的に分析することが含まれます。 多くの場合、生のマシンコードからソフトウェアを逆コンパイルするときに、このようなエラーを見つけやすくなります。 これは、元のソースコードを作成するときに、怠惰なプログラマーによる偏見や仮定がないためです。 セキュリティ監査人は、どのような種類のバグを探すべきかを知っており、それらは非常に有害である可能性があります。

 【事例】

知的財産

チャレンジ
知的財産は多くの企業にとって不可欠な資産です。無形ではありますが、多くの場合、企業の最も重要な資産を表しています。 知的財産は、著作権、特許、商標、企業秘密など、さまざまな形態があります。 知的財産権の侵害は、多くの企業の存在そのものにとって深刻な脅威です。 ソフトウェアIPの場合、そのような違反を見つけて証明する作業は課題です。 私たちの社会は、このタスクのために手動だけでなく自動ツールも必要としています。
アプローチ
IDA Proは、著作権侵害、IP盗難、および特許違反を検出するための自動システムを開発するための基盤として使用できるため、 このタスクに完全に適合します。手動検査も引き続き利用できます。

 【事例】

動的分析とデバッグ

チャレンジ
コンピュータプログラムを逆アセンブルすると、その動作について多くのことが明らかになりますが、生の逆アセンブルの有用性を制限する方法はたくさんあります。 マルウェアの作成者は、分析時に実行可能ファイルを無害に見せようと積極的に試み、実際に実行するときの動作は大きく異なります。 適切に設計された悪意のないプログラ ムでさえ、予期しない状況が原因で実行時に誤動作する可能性があります。 アナリストとエンジニアは、実行中にコードを監視できるツールに依存しています。 多くの場合、これが問題を理解して修正する唯一の方法です。
アプローチ
IDA Proは、すべての主要なデスクトッププラットフォーム(Windows、Linux、Mac)、モバイルプラットフォーム(iPhone、Android)、 およびエミュレーター(QEMU、Bochs)でアプリケーションをデバッグできます。 MIPSまたは他のプロセッサに基づくあまり知られていない組み込みシステムでさえ、Hex-Rays社のデバッガーは処理することができます。 IDA Proには、すぐに使用できる10種類のデバッガーが付属しています。当然、それらはすべて構成可能で、プログラム可能で、拡張可能です。

 【事例】

自動車のセキュリティ

チャレンジ
現代の車両は、ソフトウェアエコシステムをローリングしています。今では、以前のような純粋なハードウェアではなく、 マイクロコントローラーで実行されているファームウェアに依存するようになっています。 車には70を超える電子制御ユニット(ECU)を搭載できるようになり、それぞれに専用のファームウェアが搭載されています。 エンジン、運転制御、インフォテインメント、ナビゲーション、および追跡システムがそれらに該当します。 これらのシステムの一部は、セルラーネットワークに接続されている場合があります。このすべてのコードには、潜在的なバグ、 脆弱性、または隠された/不要な機能があります。 したがって、「スマートカー」の概念は素晴らしいアイデアですが、一部の個人にとって「スマート」は単に「ハッキング可能」を意味します。 自動車業界は、複雑さが増しているにもかかわらず(文字通り)車両を駆動するソフトウェアを可視化する必要があります。 見落とされた欠陥は深刻な結果をもたらす可能性があります。
アプローチ
IDAは、最新の車両の論理インフラストラクチャへのエントリポイントとして機能します。 多くの場合、元のECUファームウェアをリバースエンジニアリングして、たとえばセンサーの読み取り方法やエンジンの制御方法を決定できます。 IDAは、ECUで使用されるすべての主要なプロセッサファミリをサポートしているため、このタスクに最適なツールです。 IDAを使用すると、完全なドキュメント、ソースコード、またはデバッグシンボルがなくても、ファームウェアの動作を段階的に理解することができます。

 【事例】

相互運用性

チャレンジ
情報がアプリケーション内で生成および消費されることはめったにありません。最近のコンピューターは、 他のコンピューターと情報を交換したり、ディスクやクラウドに情報を保存したりします。 多くの場合、使用されるデータ形式は文書化されていませんが、アプリケーションと対話したり、そのデータを抽出したりする必要がある場合があります。 たとえば、廃止されたソフトウェアからデータを抽出するには、使用されている形式を知る必要があります。 または、ボットネットを停止するには、感染したゾンビコンピュータにコマンドを送信するために、 ボットネットのネットワークプロトコルを知る必要がある場合があります。
アプローチ
ファイル形式を処理するために、IDA Proはカスタムメイドの「ローダー」で簡単に拡張でき、UI内からデータを利用できるようにします。 ネットワークプロトコルのリバースエンジニアリングに関しては、通常、IDA Proをパケットキャプチャツール(Wiresharkなど)とペアリングします。 両方のトラフィックを分析し、クライアント側またはサーバー側のコードでの使用法を照合することで、プロトコルの検出が高速化されます。

 【事例】

ソフトウェア評価

チャレンジ
悪意のないソフトウェアの内部動作は、調査する価値がある場合があります。 アナリストは、毎日使用されるソフトウェア (オペレーティング システム、ドライバー、サードパーティ アプリケーションなど) を明確に理解する必要があります。通常、商用ソフトウェアの内部詳細は文書化されていませんが、それらを調べる理由があります。
アプローチ
IDA は、デスクトップ、モバイル、および組み込みデバイスで使用されるすべての主要なアーキテクチャをサポートしています。 デバッグ情報の有無にかかわらず、バイナリを逆アセンブルするために使用できます。 FLIRT や Lumina などの組み込み機能を使用して、よく知られた関数やライブラリ関数を識別できます。 BinDiff や Diaphora などのサードパーティのアドオンを使用すると、バイナリ バージョン間の相違点を見つけて、 変更、修正、さらにはバックドアを特定できます。

教育

チャレンジ
リバース エンジニアリングには、かなりの量の経験、トレーニング、さらには直感が必要です。 しかし、適切なツールがなければ、熟練したリバース エンジニアでさえ、タスクを実行するのにかなりの時間を費やしたり、 重要な情報を見落とすことさえあります。
アプローチ
IDA Pro は、バイナリ分析を教えるのに最適なツールです。高速で強力でありながら使いやすく、 ほとんどのプロセッサとファイル形式をすぐにサポートし、教育機関向けの教育用無料ライセンスとしても利用できます。 IDA Pro は世界中の大学、オンラインまたはオフラインのクラス、トレーニング、セミナーで同様に使用されています。

SSL GMOグローバルサインのサイトシール