Microsoftは13日(現地時間)、Microsoft Researchが機械学習と深層ニューラルネットワークを使用して過去の経験から学び、バグの根絶と支援と脆弱(ぜいじゃく)性を発見する動的プログラム解析手法「Fuzzing」を開発して、その技術を「Security Risk Detection」に実装したことを公式ブログで発表した。Microsoft Researchは過去15年のバグ抽出に関する知見を「Project Springfield」としてまとめていたが、その研究成果がSecurity Risk Detectionというサービスの登場に至っている。

Fuzzing技術を利用した「Security Risk Detection」

Microsoft Azure上のWindowsやLinux仮想マシン上で動作するSecurity Risk Detectionは、「Fuzz Testing」と呼ばれる技術で、バッファオーバーフローやメモリーアクセス違反、NULLポインターデリファレンスなど、脆弱性につながるようなエラー要件を探し出す解析ツール。Microsoft Researchの研究チームはFuzzingの改良に着手して、従来よりもコード網羅率を10%改善し、ユニークなコードパスの発見率を2倍に増やした。

AFLによって報告されたクラッシュレポート(画像は公式ブログより抜粋)

MicrosoftはFuzzing技術を用いることで、シンプル性と効率性を高まると述べつつ、コード網羅率を効率的に向上させるAFL(American Fuzzy Lop)でしかテストしていないが、内部構造や動作に頼らずに調査するブラックボックステストなどにも利用できると説明する。

阿久津良和(Cactus)