今日(米国時間9/26)Microsoftは、アトランタで行われた同社のIgniteカンファレンスで、Project Springfieldを初めて披露した。このクラウドベースのツールは、デベロッパーがアプリケーションのバグを見つけるのを支援するもので、準ランダムな入力を与えて自動的にコードをテストするファズテストに、潜在的セキュリティー問題を見つめるための想定質問を生成するAIツールを組み合わせ作られている。
「自動車の衝突事故を思い浮かべてほしい」とMicrosoftの研究員、David Molnarが私に言った。現場を見てもなぜ衝突したのかはわからない。一般のファズテストは、いつコードがクラッシュしたかを教えてくれるだけだが、このツールのAI部分はソフトウェアがどのようにクラッシュしたかを推測する。開発チームは、このツールが「100万ドルのバグ」を見つける最適な方法だと繰り返し語った。同社のオペレーティングシステムや生産性ツールにセキュリティー問題があった時、配布後に修正するには膨大なコストがかかるからだ。
「ツールを実行すると、最も重要な部分に集中してデータを集める。こうした焦点を絞り合理的判断に基づくアプローチをとることによって、Project Springfieldは他のファズツールが見逃がすような脆弱性を発見できる」と今日の発表文でチームは語った。
デベロッパーが同サービスにバイナリーファイルをアップロードすると、クラウド上でテストが行われる。バグが見つかると、問題を再現するためのテストケースがデベロッパーに通知される。
Microsoftは、類似のツールをこれまで約10年間社内で使用している、とMolnarは言った。例えば、Windowsの潜在バグを検出するためにも使われているという。
一つ興味深いのは、このツールがソースコードを必要としないことだ。テストにはバイナリーを利用するため、他社から買うコードを評価したり、会社を買収する際にも使うことができる。
複数のファズテスト技法にAIを組み合わせることによって、他のテスト方式より多くのバグ ― および奥深いバグ ― を見つけることができる、とチームは言っている。
究極のゴールはこの技術を民主化し、開発パイプラインに簡単につないでどの会社でも利用できるようにすることだとMolnarは言う。MicrosoftがいつProject Springfieldをデベロッパーに提供するのか、Molnarは言わなかったが、今すぐプレビューにサインアップできると繰り返し話していた。
[原文へ]
(翻訳:Nob Takahashi / facebook)