バイナリ・コードとバイナリ解析

バイナリ・コードとは

バイナリ・コードは、コンピュータによって直接解釈されるプログラミング・データの基本形式です。このコードは0と1を並べて組成された文字列で構成され、ハードウェアによって読み取られ、より大きなコンピュータ・プログラムの一部として実行されます。バイナリ・コードは、CやJavaなどの高級言語で記述されたソースコードをコンピュータ・プログラムが実行されるプロセッサ・アーキテクチャに固有の機械語に変換する、マルチステージのコンパイル・プロセスによって生成されます。ある意味では、人間が読めるソースコードから変換されたコンピュータが直接理解できる言語です。

バイナリ解析とは

バイナリ解析(コード・レビュー)は、ソースコードを可視化せずにアプリケーションのバイナリ実行可能ファイルのみを処理する、静的解析の一形式です。通常はマルチステップ・アプローチで構成され、さまざまな方法でデータ型、フロー、制御パスをモデル化することによってバイナリをリバースエンジニアリングします。その後、既知のセキュリティの欠陥パターンを検出し、その結果を合成して実践的な対策を示した詳細な脆弱性レポートを生成するために、派生モデルを解析する試みが行われます。

バイナリ・コード・レビューで解決できる問題

バイナリ解析を実行する契機としては、コンパイル・プロセスで生じたアプリケーションの潜在的な脆弱性を評価する場合、ベンダーの関与なしにサードパーティ・ライブラリの独立したセキュリティ監査を実行する場合、何らかの理由でソースコードにアクセスできない場合などがあります。

バイナリ・コード・レビューでは、通常、バイナリの分解と逆アセンブル、既知の脆弱性パターンの認識によって脆弱性を検出します。対象には、バッファ・オーバーフロー、未処理のエラー条件、クロスサイト・スクリプティング(XSS)、さまざまなインジェクション・アタック・ベクターなどの一般的な弱点の一部を含めることができます。バイナリ・コード・レビューでは機械レベルの命令セットに固有の超低レベルの解析が行われるため、悪意のあるコードの検出、バックドアやルートキットなどの低レベルの問題に特に適しています。

Synopsysのバイナリ解析ソリューション

SynopsysのBlack Duckは、購入したソフトウェアのコンポジション(構成)を可視化し、購買の意思決定を向上させ、複雑なシステムやソフトウェアの運用に伴う継続的なリスクに対処する自動ソフトウェア・コンポジション解析(SCA)ツールです。

また、Synopsysは、アプリケーション・セキュリティに対する総合的なアプローチを取り入れた包括的な静的解析ソリューションを提供しています。Synopsysの静的アプリケーション・セキュリティ・テスト(SAST)マネージド・サービスは、組織の幅広いアプリケーション・ポートフォリオ全体にわたるスケールとリーチを提供し、進化する脅威、ビジネスの優先順位の変化、ワークロードの変動に動的に対応する柔軟性を備えています。 

バックエンド・ビジネス・ロジック、各種ビュー、各種構成ファイルなど、関連する多様なコンポーネントを備えたSASTのソースコード解析は、多層開発フレームワークをコンテキストに基づいて解析する機能が本質的に優れています。SASTの手動検査手順を利用すれば、はっきりとしない脆弱性パターンをより効果的に識別できます。これは、対象となるコンポーネントの詳細な解析から、人がコンテキストを理解することを通じて可能になります。さらに、手動検査によって、評価時のノイズや誤検知が排除されるため、重要な脆弱性が見つかり、個別に実践的な修正ガイダンスが提示されます。