Microsoft、ソフトウェアのセキュリティテストに機械学習を適用するニューラルファジング研究を推進システムが過去の経験から学習し、脆弱性発見を支援

Microsoftの研究者は、機械学習とディープニューラルネットワークをソフトウェアのセキュリティ脆弱性発見に利用する「ニューラルファジング」という研究プロジェクトを進めている。初期の実験では有望な結果を示している。

» 2017年11月15日 16時20分 公開
[@IT]

 Microsoftの研究者は2017年11月13日(米国時間)、機械学習とディープニューラルネットワークを活用して、ソフトウェアのセキュリティ脆弱(ぜいじゃく)性を発見する新しい方法を開発した、とブログで明らかにした。この新しい方法は、システムが過去の経験から学習し、バグをより効果的に除去できるように支援する。「ニューラルファジング」と呼ばれるこの新しい研究プロジェクトは、従来のファジング技術の強化を目的とし、初期の実験では有望な結果を示している。

ファズテスティング

 Microsoftは最近、ソフトウェアのセキュリティテスト支援ツール「Microsoft Security Risk Detection(MSRD)」をリリースしたばかりだ。Microsoft Azureベースのこのツールは、Windows(正式版)とLinux(プレビュー版)向けに提供されている。

 MSRDはセキュリティテストを大幅に簡素化するため、ユーザーはセキュリティの専門家でなくてもソフトウェアのバグ除去に取り組める。このツールを支える主要技術が「ファズテスティング(ファジング)」だ。

 ファジングは、悪用される可能性が高いエラー状況を引き起こす入力を探すプログラム分析手法で、こうしたエラー状況には「バッファーオーバーフロー」「メモリアクセス違反」「NULLポインタ逆参照」などがある。

 ファジングツール(ファザー)には、以下のようなさまざまなカテゴリーがある。

  • ブラックボックスファザー:新しい入力の生成をサンプル入力ファイルに依存する
  • ホワイトボックスファザー:ターゲットプログラムを静的または動的に分析し、できるだけ多くのコードパスを探索することを目的として新しい入力の調査をガイドする
  • グレーボックスファザー:ブラックボックスファザーと同様、ターゲットプログラムの構造について何も認識していないが、フィードバックループを利用して、以前のプログラム実行から観察された挙動に基づいて調査をガイドする

画像 AFL(American Fuzzy Lop)で報告されたクラッシュ。MSRDでの実験的なサポート(出典:Microsoft)

ニューラルファジング

 2017年、Microsoftの研究者チームは、機械学習とディープニューラルネットワークを利用してファジング技術を改良する研究プロジェクトを開始した。特に、ディープニューラルネットワークをグレーボックスファザーのフィードバックループに挿入した際、どのような機械学習モデルで学習できるのかを探ろうとした。

 同チームは初期の実験として、既存ファザーによる従来のファジングの反復を観察することで、時間をかけて学習を行う効果があるかどうかを調べた。同チームはその方法をグレーボックスファザーの一種である「American Fuzzy Lop(AFL)」に適用した。

 同チームは4種類のニューラルネットワークを試し、4つのターゲットプログラムに対して実験を実施。実験では、4つのファイルフォーマット(ELF、PDF、PNG、XML)のパーサを使用した。

 実験の結果、コードカバレッジ、ユニークコードパス、4つの入力フォーマットのクラッシュに関して、従来のAFLと比べて大幅な改善が見られたという。

  • ニューラルネットワークモデルのLong Short-Term Memory(LSTM)に基づくディープニューラルネットワークを使用したAFLシステムは、ELFとPNGという2つのファイルパーサについて、従来のAFLと比べてコードカバレッジが10%程度改善した。

  • ユニークコードパスについては、ニューラルAFLは従来のAFLと比べ、PDFを除く全てのパーサでより多くのユニークパスを発見した。PNGパーサでは、24時間のファジング後、従来のAFLと比べて2倍のユニークコードパスを発見した。
画像 libpngファイルパーサにおける時系列(時間)での入力の増加(出典:Microsoft)

  • 報告されたクラッシュ数の比較は、ファザーを評価する良い方法だ。ELFファイルパーサでは、ニューラルAFLは20回以上のクラッシュを報告。従来のAFLはゼロだった。XMLのようなテキストベースのファイルフォーマットでも、ニューラルAFLは従来のAFLよりも38%多くのクラッシュを発見した。PDFでは、従来のAFLの方がニューラルAFLよりも新しいコードパスの発見に優れていた。だが、どちらのシステムもクラッシュを一切報告しなかった。
画像 readelf(左)とlibxml(右)における時系列(時間)でのクラッシュの報告数(出典:Microsoft)

 全体的にPDFを除く全てのインスタンスで、ニューラルファジングを使用する方が、従来のAFLを上回っていた。PDFファイルはサイズが大きいために、オーバーヘッドが顕著なのではないかと思われる。

 Microsoftは、ニューラルファジングのアプローチはグレーボックスファジングを実行する「シンプル」「効率的」「汎用的」な新しい方法になると考えている。

  • シンプル

 システムは既存のファザーから手順を学習する。バイトシーケンスを与えるだけで、システムはあらゆる機能を理解し、それらから、どのタイプの入力が重要か、ファザーの注意をどこに向けなければならないかを自動的に予測するようになる。

  • 効率的

 AFLの実験では、最初の24時間で従来のAFLよりもはるかに多くのユニークコードパスを探索するようになった。

  • 汎用的

 AFLでのみテストを行ったが、この実験でのアプローチはブラックボックスファザーやランダムファザーなど、あらゆるファザーに適用できると考えられる。

 Microsoftは、現在のモデルではファジングの場所を学習するだけだが、変異の種類や適用する戦略など、他のファジングパラメーターもこのモデルを使って学習できると考えている。また、Microsoftでは機械学習モデルのオンラインバージョンの構築も考えている。オンラインバージョンのファザーにより、進行中のファジングの反復から常に学習するようになるという。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。