スタティック・セキュリティー解析の概要

スタティック・セキュリティー解析とは、ソースコードの詳細な解析を通じてソフトウェアのエラーとセキュリティーの脆弱性を発見するプロセスです。 スタティック・セキュリティー解析には、インテル® Parallel Studio XE 製品が必要です。解析自体はコンパイラーで行われ、解析結果はインテル® Inspector XE GUI で表示されます。 解析を任意のマシンで行い、別のマシンで結果を表示できます。この場合、解析マシンではコンパイラーのみインストールされていれば問題ありません。表示するマシンには、コンパイラーとインテル® Inspector XE がインストールされている必要があり、また有効なインテル® Parallel Studio XE のライセンスが必要です。

スタティック・セキュリティー解析では、アプリケーションのセキュリティーを突破したり、あるいはアプリケーションを機能不全にするような攻撃者に悪用される可能性のある幅広い範囲のエラーを見つけられます。検知されるエラーには、バッファー・オーバーフロー、ポインターとヒープストレージの誤用、C/C++ または Fortran 言語機能の安全ではない使用、あるいは誤った使用、そして OpenMP* 並列プログラミング構造の誤用などがあります。

スタティック・セキュリティー解析により行われる解析の種類と使用方法についての詳細は、インテル® Inspector XE のドキュメントを参照してください。

スタティック・セキュリティー解析では、インテル®コンパイラーで重大なエラーなくコードがコンパイルされている必要があります。

スタティック・セキュリティー解析は、Mac OS* X システムではサポートされていません。

Note icon

プロダクション・バイナリーのビルドにインテル® コンパイラーを使用する予定がない場合でも、ソースコードの解析を使用することができます。 同様に、インテル® コンパイラーでサポートされていないプロセッサーの種類で動作するプログラムにも使用できます。

スタティック・セキュリティー解析の動作

コンパイラーは特殊なモードで動作して、要求された解析を実行します。 このモードでは、コンパイラーは解析により時間をかけ、命令生成プロセス全体を省略します。 これにより、通常のコンパイルでは検知されないエラーを発見することができます。 つまり、コードは、インテル® コンパイラーで重大なエラーなくコンパイルされている必要があります。ただし、コンパイルの結果は実行できません。したがって、プロダクション・バイナリーのビルドにインテル® コンパイラーを使用する予定がない場合でも、スタティック・セキュリティー解析を使用することができます。

スタティック・セキュリティー解析は最初に、それぞれのソースファイルを個別に処理し、擬似オブジェクト・モジュールを生成します。実際のオブジェクト・モジュールを壊さないように、スタティック解析で生成される擬似オブジェクト・モジュールは実際のオブジェクト・モジュールとは分けられています。

解析結果はリンク段階で生成されます。これは、最終命令がリンク段階でのみ生成されるプロシージャー間の最適化 (IPO) の動作と似ています。 これにより、スタティック・セキュリティー解析でプロシージャーとファイル境界にわたるエラーを発見できます。 これは、直接リンカーを起動するのではなく、コンパイラーによりリンク段階を起動しなければならいことを意味します。

スタティック・セキュリティー解析の推奨事項

スタティック・セキュリティー解析は、完全なプログラムで最も効果を発揮します。これは、問題の中にはソースファイル間の対話を解析することによりのみ検知できるものがあるためです。スタティック・セキュリティー解析を部分的なプログラム、あるいはより少ないモジュールをリンクして単一ファイルでも実行可能です。 ただし、この場合、プログラム全体の解析なら発見できるような問題を検知できないことがあります。

スタティック・セキュリティー解析をライブラリーに対してビルド、リンクを行うプロジェクトで使用する場合、そのライブラリーにリンクするプロジェクトを解析する前にライブラリーを解析してください。 解析済みのライブラリーにリンクするプロジェクトを解析する際、ライブラリー・ソースがあたかもアプリケーションの一部であるかのように、ライブラリーのモジュールは完全に解析に含められます。

ライブラリー自体を解析すると、そのライブラリー内の問題のみが診断されます。 コンパイル段階中に生成された擬似オブジェクト・モジュールは、標準的なライブラリアン・ユーティリティーを使用して、スタティック・リンク・ライブラリーに結合できます。 ダイナミック・ライブラリーの解析時に、スタティック・ライブラリーは通常のエクスポート・ライブラリーの代わりに、リンク段階中に生成されます。 解析されないライブラリーへのリンクも許可されていますが、解析されていないライブラリーは解析には含まれません。


このヘルプトピックについてのフィードバックを送信

© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。