Microsoft、ソフトウェアのセキュリティテストに機械学習を適用するニューラルファジング研究を推進:システムが過去の経験から学習し、脆弱性発見を支援
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と比べて大幅な改善が見られたという。
- ニューラルネットワークモデルのLong Short-Term Memory(LSTM)に基づくディープニューラルネットワークを使用したAFLシステムは、ELFとPNGという2つのファイルパーサについて、従来のAFLと比べてコードカバレッジが10%程度改善した。
全体的にPDFを除く全てのインスタンスで、ニューラルファジングを使用する方が、従来のAFLを上回っていた。PDFファイルはサイズが大きいために、オーバーヘッドが顕著なのではないかと思われる。
Microsoftは、ニューラルファジングのアプローチはグレーボックスファジングを実行する「シンプル」「効率的」「汎用的」な新しい方法になると考えている。
- シンプル
システムは既存のファザーから手順を学習する。バイトシーケンスを与えるだけで、システムはあらゆる機能を理解し、それらから、どのタイプの入力が重要か、ファザーの注意をどこに向けなければならないかを自動的に予測するようになる。
- 効率的
AFLの実験では、最初の24時間で従来のAFLよりもはるかに多くのユニークコードパスを探索するようになった。
- 汎用的
AFLでのみテストを行ったが、この実験でのアプローチはブラックボックスファザーやランダムファザーなど、あらゆるファザーに適用できると考えられる。
Microsoftは、現在のモデルではファジングの場所を学習するだけだが、変異の種類や適用する戦略など、他のファジングパラメーターもこのモデルを使って学習できると考えている。また、Microsoftでは機械学習モデルのオンラインバージョンの構築も考えている。オンラインバージョンのファザーにより、進行中のファジングの反復から常に学習するようになるという。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Microsoft、リアルタイムAIを実現する加速型ディープラーニングプラットフォーム「Project Brainwave」を発表
Microsoftの研究チームは、リアルタイムAIの実現に向けたディープラーニングアクセラレーションプラットフォーム「Project Brainwave」(開発コード名)を発表。Intelの新FPGAを採用した。 - AI、Deep Learning、「Mixed Reality」で未来のコンピューティングはどう変わるのか
日本マイクロソフトは2017年5月23、24日に「de:code 2017」を開催。基調講演後半では、AI、Deep Learning、「Mixed Reality」といった「未来のコンピューティング」を実現するためのテクノロジーと、それに向けてMicrosoftが提供する製品、サービスが多数紹介された。 - マイクロソフトが「AIで主導権を握る」ために取る4つのアプローチとは
マイクロソフトが、総勢5000人以上のAI製品研究開発チーム「AI and Research Group」を設置。今後、同社が「AIで主導権を握る」ために注力する4分野も明らかにした。 - Webアプリケーションを作る前に知るべき10の脆弱性