Fortify ソフトウェアはどのように機能しますか? [終了] 質問する

Fortify ソフトウェアはどのように機能しますか? [終了] 質問する

強化するソフトウェア コードのセキュリティ脆弱性を見つけるために使用される SCA です。このソフトウェアが内部でどのように動作するのか興味がありました。コードを実行するための一連のルールを構成する必要があることは知っています。しかし、コード内の脆弱性を正確にどのように見つけることができるのでしょうか。

これについて何か意見をお持ちの方はいらっしゃいますか?

前もって感謝します。

ベストアンサー1

HP Fortify SCA には、データ フロー、制御フロー、セマンティック、構造、構成、バッファーの 6 つのアナライザーがあります。各アナライザーは、異なるタイプの脆弱性を検出します。

データフローこのアナライザーは、汚染されたデータ (ユーザー制御の入力) が潜在的に危険な用途に使用されている場合に発生する潜在的な脆弱性を検出します。データ フロー アナライザーは、グローバルなプロシージャ間の汚染伝播分析を使用して、ソース (ユーザー入力の場所) とシンク (危険な関数呼び出しまたは操作) 間のデータ フローを検出します。たとえば、データ フロー アナライザーは、無制限の長さのユーザー制御の入力文字列が静的サイズのバッファーにコピーされているかどうかを検出し、ユーザー制御の文字列が SQL クエリ テキストの作成に使用されているかどうかを検出します。

制御フローこのアナライザーは、潜在的に危険な操作シーケンスを検出します。プログラム内の制御フロー パスを分析することで、制御フロー アナライザーは一連の操作が特定の順序で実行されているかどうかを判断します。たとえば、制御フロー アナライザーは、チェック時間/使用時間の問題や初期化されていない変数を検出し、XML リーダーなどのユーティリティが使用前に適切に構成されているかどうかをチェックします。

構造的これにより、プログラムの構造または定義における潜在的に危険な欠陥が検出されます。たとえば、構造アナライザーは、Java サーブレットのメンバー変数への割り当てを検出し、static final として宣言されていないロガーの使用を識別し、述語が常に false であるために実行されることのないデッド コードのインスタンスにフラグを立てます。

セマンティックこのアナライザーは、プロシージャ内レベルで関数と API の潜在的に危険な使用を検出します。基本的にはスマートな GREP です。

構成このアナライザーは、アプリケーションのデプロイメント構成ファイル内の間違い、弱点、ポリシー違反を検索します。

バッファこのアナライザーは、バッファが保持できる量を超えるデータの書き込みまたは読み取りを伴うバッファ オーバーフロー脆弱性を検出します。

おすすめ記事