人工知能ベースのファズ テスト ツールである Google の OSS-Fuzz は、最近目覚ましい成果を上げ、20 年近く前の OpenSSL 暗号化ライブラリの中の重大度の脆弱性を含む、26 のオープン ソース コード ライブラリの脆弱性の発見に成功しました。このブレークスルーは、自動脆弱性検出における新たなマイルストーンとなり、AI によって生成されたファズ テスト ターゲットは、コード カバレッジを向上させ、深刻な脆弱性を発見する強力な機能を実証しました。この記事では、OSS-Fuzz の最新の調査結果、OSS-Fuzz における AI テクノロジーの役割、コードのセキュリティを向上させるために Google が講じた対策について詳しく説明します。
最近、Google は、人工知能ベースのファズ テスト ツール OSS-Fuzz が、OpenSSL 暗号化ライブラリの中の重大度の脆弱性を含む、26 のオープン ソース コード ライブラリの脆弱性の発見に成功したと発表しました。
「これらの脆弱性の発見は、自動化された脆弱性検出における新たなマイルストーンとなる。それぞれの脆弱性は、AIが生成し強化されたファズテストターゲットを通じて発見される」とGoogleのオープンソースセキュリティチームは共有ブログ投稿で述べた。
画像出典注:画像はAIにより生成され、画像認証サービスプロバイダMidjourney
今回発見された OpenSSL の脆弱性番号は CVE-2024-9143 (CVSS スコア 4.3) で、アプリケーションのクラッシュやリモート コードの実行につながる可能性のある境界外のメモリ書き込みエラーとして現れます。この問題は、3.3.3、3.2.4、3.1.8、3.0.16、1.1.1zb、1.0.2zl などの複数のバージョンの OpenSSL で修正されています。 Googleは、この欠陥はコードベースに20年近く存在していた可能性があり、従来の人が書いたファズテストのターゲットでは問題を発見できなかったであろうと指摘した。
Googleはまた、AIが生成したファズテストターゲットの助けにより、272のC/C++プロジェクトのコードカバレッジが改善され、37万行以上の新しいコードが追加されたと述べた。 Google は、多くのバグが気づかれない理由は、コード カバレッジが機能にバグがないことと同じではないためであると説明しています。コード カバレッジだけでは、考えられるすべてのコード パスと状態を測定できるわけではありません。これは、フラグや設定が異なると異なる動作がトリガーされ、さまざまな脆弱性が露呈する可能性があるためです。
この AI 支援による脆弱性発見は、開発者のファズ テスト ワークフローをシミュレートする際の大規模言語モデル (LLM) の優れたパフォーマンスの恩恵も受けており、自動化の度合いがさらに高まります。さらに、Google は今月初め、LLM ベースのフレームワーク Big Sleep が SQLite オープンソース データベース エンジンのゼロデイ脆弱性の検出に役立ったことを明らかにしました。
Googleは自社のコードベースのセキュリティを向上させるため、Rustなどのメモリセーフ言語へのコードの移行を推進し、既存のC++プロジェクトにおける空間メモリの安全性の脆弱性を修復している。これには、安全なバッファへの移行と強化された libc++ の有効化が含まれます。これにより、標準 C++ データ構造に境界チェックを追加することで、重要なクラスの空間セキュリティ脆弱性が排除されます。 Google によれば、これらの改善の実装によるパフォーマンスの低下は最小限で、平均してわずか 0.30% です。
Googleはさらに、オープンソースの貢献者によって最近追加された強化されたlibc++では、運用環境での境界外アクセスなどの脆弱性を捕捉するために設計された一連のセキュリティチェックが導入されていることを強調した。 C++ 言語はメモリの安全性を完全に実装することはできませんが、これらの改善によりリスクが軽減され、ソフトウェアの信頼性と安全性が向上したことは間違いありません。
ハイライト:
Google の OSS-Fuzz ツールは、20 年近く前の OpenSSL 脆弱性を含む 26 のオープンソース プロジェクトの脆弱性を発見しました。
AI 生成のファズ ターゲットは、272 の C/C++ プロジェクトのコード カバレッジを向上させ、370,000 行を超える新しいコードを追加しました。
Google はコードをメモリセーフ言語に移行し、libc++ の強化などの対策を通じて C++ プロジェクトのセキュリティを向上させています。
全体として、Google は AI テクノロジーを使用してソフトウェア セキュリティ検出機能を大幅に向上させており、その経験は他の機関にとって貴重な参考となっています。将来、AI はソフトウェア セキュリティの分野でますます重要な役割を果たし、開発者がより安全で信頼性の高いソフトウェア システムを構築できるようになります。