Microsoftの研究者は、機械学習とディープニューラルネットワークをソフトウェアのセキュリティ脆弱性発見に利用する「ニューラルファジング」という研究プロジェクトを進めている。初期の実験では有望な結果を示している。
Microsoftの研究者は2017年11月13日(米国時間)、機械学習とディープニューラルネットワークを活用して、ソフトウェアのセキュリティ脆弱(ぜいじゃく)性を発見する新しい方法を開発した、とブログで明らかにした。この新しい方法は、システムが過去の経験から学習し、バグをより効果的に除去できるように支援する。「ニューラルファジング」と呼ばれるこの新しい研究プロジェクトは、従来のファジング技術の強化を目的とし、初期の実験では有望な結果を示している。
Microsoftは最近、ソフトウェアのセキュリティテスト支援ツール「Microsoft Security Risk Detection(MSRD)」をリリースしたばかりだ。Microsoft Azureベースのこのツールは、Windows(正式版)とLinux(プレビュー版)向けに提供されている。
MSRDはセキュリティテストを大幅に簡素化するため、ユーザーはセキュリティの専門家でなくてもソフトウェアのバグ除去に取り組める。このツールを支える主要技術が「ファズテスティング(ファジング)」だ。
ファジングは、悪用される可能性が高いエラー状況を引き起こす入力を探すプログラム分析手法で、こうしたエラー状況には「バッファーオーバーフロー」「メモリアクセス違反」「NULLポインタ逆参照」などがある。
ファジングツール(ファザー)には、以下のようなさまざまなカテゴリーがある。
2017年、Microsoftの研究者チームは、機械学習とディープニューラルネットワークを利用してファジング技術を改良する研究プロジェクトを開始した。特に、ディープニューラルネットワークをグレーボックスファザーのフィードバックループに挿入した際、どのような機械学習モデルで学習できるのかを探ろうとした。
同チームは初期の実験として、既存ファザーによる従来のファジングの反復を観察することで、時間をかけて学習を行う効果があるかどうかを調べた。同チームはその方法をグレーボックスファザーの一種である「American Fuzzy Lop(AFL)」に適用した。
同チームは4種類のニューラルネットワークを試し、4つのターゲットプログラムに対して実験を実施。実験では、4つのファイルフォーマット(ELF、PDF、PNG、XML)のパーサを使用した。
実験の結果、コードカバレッジ、ユニークコードパス、4つの入力フォーマットのクラッシュに関して、従来のAFLと比べて大幅な改善が見られたという。
全体的にPDFを除く全てのインスタンスで、ニューラルファジングを使用する方が、従来のAFLを上回っていた。PDFファイルはサイズが大きいために、オーバーヘッドが顕著なのではないかと思われる。
Microsoftは、ニューラルファジングのアプローチはグレーボックスファジングを実行する「シンプル」「効率的」「汎用的」な新しい方法になると考えている。
システムは既存のファザーから手順を学習する。バイトシーケンスを与えるだけで、システムはあらゆる機能を理解し、それらから、どのタイプの入力が重要か、ファザーの注意をどこに向けなければならないかを自動的に予測するようになる。
AFLの実験では、最初の24時間で従来のAFLよりもはるかに多くのユニークコードパスを探索するようになった。
AFLでのみテストを行ったが、この実験でのアプローチはブラックボックスファザーやランダムファザーなど、あらゆるファザーに適用できると考えられる。
Microsoftは、現在のモデルではファジングの場所を学習するだけだが、変異の種類や適用する戦略など、他のファジングパラメーターもこのモデルを使って学習できると考えている。また、Microsoftでは機械学習モデルのオンラインバージョンの構築も考えている。オンラインバージョンのファザーにより、進行中のファジングの反復から常に学習するようになるという。
Copyright © ITmedia, Inc. All Rights Reserved.