オープンソース ソフトウェアの引用は、オープンソース ソフトウェアのダイナミック ライブラリや jar パッケージを導入するのが一般的であるため、脆弱性検出時の脆弱性の誤報率は非常に低くなりますが、Linux カーネルの場合は異なります。 Linux カーネル機能モジュールは非常に豊富かつ大規模であり、実際の使用時にビジネス ニーズに応じて調整されるため、このシナリオで正確な脆弱性検出を実現し、脆弱性検出の誤検知率をいかに低減するかが特に重要になります。 。
Linux カーネル構造:
Linux カーネルは 7 つの部分で構成されており、それぞれの異なる部分は複数のカーネル モジュールで構成されており、その構造ブロック図は次のとおりです。
Linux トリミング シーン分析:
Linux カーネルのソース コードを分析すると、さまざまなモジュールの実装コードがさまざまなディレクトリに保存されていることがわかります。同時に、コンパイル中に config に設定された情報を使用して、どのモジュールをカーネルにコンパイルするかを制御できます。最終バイナリとどのモジュールがトリミングされるか。たとえば、IPV6 モジュールを例にとると、このモジュールを制御する設定名は CONFIG_IPV6 です。設定項目が y に設定されている場合、汎用モジュールがバイナリにコンパイルされていないことを意味します。以下に示す最終バイナリ ファイル:機能モジュールを切断した場合、脆弱性が修正されていない場合でも、機能モジュールに存在する脆弱性はバイナリに影響を与えないため、脆弱性検出時にIPV6関連の脆弱性は影響を受けません。 CVE-2013-0343 (Linux カーネル 3.8 より前のバージョンの net/ipv6/addrconf.c の関数 ipv6_create_tempaddr は、IPv6 一時ファイルを正しく処理しません) など、この脆弱性の影響を受けないことをレポートに明確にマークする必要があります。アドレス生成の問題。リモート攻撃者がサービス拒否を引き起こし、ICMPv6 ルーター アドバタイズメント (RA) メッセージを介して機密情報を取得することを許可する可能性があります。)
業界のバイナリ SCA ツールが検出できない理由の分析:
業界の通常のバイナリ SCA ツールでは正確な検出ができないのはなぜですか? その理由は、業界のバイナリ SCA ツールは、検出されたオープン ソース ソフトウェアの名前とバージョン番号に基づいて既知の脆弱性のリストを関連付けるためです。テーラリング機能によるモジュール方式による Linux カーネルの適用では、オープンソース ソフトウェアの名前とバージョン番号が変更されないため、ツールは正確に検出できません。
バイナリ SCA ツールがこの機能を実装する方法:
Linux カーネルの調整シナリオで既知の脆弱性を正確に検出するには、バイナリ SCA ツールは、オープン ソース ソフトウェアの名前とバージョン番号の元の検出に基づいたソース コード ファイルの粒度に基づいて、更新されたきめ細かい検出テクノロジを実装する必要があります。検出機能により、シナリオの調整において既知の脆弱性を正確に検出できます。つまり、どのコードが最終的なバイナリ ファイルにコンパイルされ、どのコードがコンパイルに含まれないかを知ることができます。同時に、脆弱性ライブラリは、きめ細かいディメンションもサポートする必要があります。つまり、脆弱性情報は、ファイルと関数が導入されているコード フラグメントを正確に特定する必要があります。
CVE-2013-0343 を例にとると、脆弱性の説明情報と Linux カーネル ソース コードを分析することで、脆弱性に関連する位置情報と次の場所コードを取得できます。
リーリー
脆弱性を導入するソース コードがバイナリのコンパイルに関与していない場合、コンパイルされたバイナリには脆弱性は存在しないという原則に基づいているため、バイナリ SCA ツールがソース コードの脆弱性を検出できる限り、上記の場所は最終的な vmlinux バイナリ ファイルのコンパイルに関与しないため、この vmlinux ファイルは CVE-2013-0343 脆弱性の影響を受けません。
バイナリ SCA ツールがセキュリティ監査の実装においてセキュリティ担当者をより適切に支援し、脆弱性検出の誤検出率を削減したい場合は、オープンソース ソフトウェアのレベルだけでなく、よりきめ細かい検出の次元まで開発する必要があります。ライブラリの要件によっても、きめ細かい正確な情報が求められます。
以上がLinux カーネルの脆弱性を正確に検出するための入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。