独Code Inteligenceは、ホワイトボックスファズテストへの参入障壁を下げるAIテストエージェント「Spark」の一般提供を開始した。
ホワイトボックスファズテストは、重大なバグや脆弱性の発見に非常に効果的であるものの、手作業による作業が多く、適切に設定して維持するには長い時間がかかることが導入の障壁となっている。
従来のホワイトボックスファズテストでは、テスト対象を特定して対応するファズテストを実装・実行して、特定されたバグに対処する必要があった。
今回、一般提供が開始されたSparkは、人間の介入なしに未知のコードのバグや脆弱性を自律的に特定する、初のAIテストエージェントであり、広く使用されているオープンソースソフトウェアのテストを自動で生成して実行することによって、現実世界の脆弱性を見つけられる。
Sparkでは、以下の手順でホワイトボックスファズテストを実行できる。
- テスト目標(達成したいコードカバレッジの量)を設定
- Sparkを起動
- 発見された問題や脆弱性を確認
具体的には、コードベースを分析してファジングするもっとも重要な関数とAPIを特定する。それぞれのファジングエントリポイントは、4つの主要なメトリクスを使用して予想される影響に基づいてスコア付けされる。続けて、静的コード解析を利用してターゲット関数のテストに必要な正しいコンテキストを抽出し、LLMを活用してファズテストを作成・最適化することによって、それぞれの関数のファズテスト(ハーネス)を生成する。あわせて、生成されたテストを実行・検証し、正しくビルドおよび実行され、高いコードカバレッジが達成可能であることの確認を行う。さらに、すべての発見にフラグを付けて、問題が発生した正確なコード行、スタックトレース、トリガとなった入力などの詳細を提供することで、根本原因の分析を支援する、といった動作が行われる。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です