生成AIが自律的にテストを生成、実行しバグや脆弱性を発見してくれる「Spark」、Code Intelligenceが正式リリース

2025年2月5日

ドイツのCode Intelligence社は、生成AIが人間の介在なしに自律的にソフトウェアテストを生成し実行することで、対象となるソフトウェアのバグや脆弱性などを発見してくれるAIテストエージェント「Spark」の正式リリースを発表しました

Sparkが自律的に生成し実行するのは「ホワイトボックスファズテスト」(White box Fuzz Test)と呼ばれるテストです。

ファズテストもしくはファジングとは、検査対象のソフトウェアに「Fuzz」と呼ばれる問題を引き起こしそうなデータを大量に送り込み、その応答や挙動を監視することで脆弱性を検出する検査手法です。

参考:Google、脆弱性検出のためのファジング(Fuzzing)を機械的に実行する「OSS-Fuzz」、ベータ公開

このファズテストを対象となるソフトウェアのコードなどの内容を把握した上で行うことを「ホワイトボックスファズテスト」、ソフトウェアの内容が分からないままFuzzを送り込んでテストすることを「ブラックボックスファズテスト」と呼びます。

ホワイトボックスファズテストはバグや脆弱性を発見する手法として有効であることが知られていますが、ソースコードなどを把握した上で多数のテストケースやFuzzデータの作成を行う手間が大きいことが課題です。

今回正式リリースされたSparkは、生成AIがソースコードを解析して攻撃対象となるAPIや関数などの境界面の選択とFuzzの生成を行い、それを送り込むためのテストコードを生成、実行し、結果をまとめてバグや脆弱性を報告してくれる、というものになります。

Sparkが自律的に行うテストの内容

Sparkは起動すると次のようなステップで自律的にソフトウェアテストを行うと説明されています。

1:テスト対象の特定
コードを解析し、ファジング対象となる関数やAPIを次の4つのメトリクス「関数が到達できる行数の多さなどのカバレッジ範囲」「ポインタのデリファレンス(dereference)や生のポインタ操作などメモリ破壊につながるようなリスクの高い動作」「memcpy、strcpy、memset のような潜在的に安全でない関数の呼び出し」「コードの複雑度」をスコアリングすることで特定します。

2:ファズテストの作成
ターゲットとなる関数やAPIのテストに必要な正しいコンテキストを抽出するための静的コード解析および大規模言語モデル(LLM)を活用したファズテストの作成と最適化。

3: 生成されたテストの実行と検証
テストを実行し、正しくビルドされたかどうか、高いコードカバレッジが達成されたかどうかを確認します。

4:発見されたバグを報告
発見されたバグや脆弱性にフラグを立て、問題が発生したコードの正確な行、スタックトレース、根本原因の分析を支援するためにバグの引き金となった入力値などの詳細情報を報告します。

下記は同社が公開したSparkのデモ動画から、実行後の画面キャプチャです。1行目でカバレッジ75%と引数を設定してSparkを実行すると、Sparkはそれに従ってテストを作成し、実行結果として深刻度(SEVERITY)9.0と4.0の2つのバグを報告しています。

fig

あわせて読みたい

ソフトウェアテスト・品質 機械学習・AI 開発ツール




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本