ブログ(製品・サービス関連)

MalwareGuard:FireEyeの機械学習モデル

FireEyeの使命は、サイバー攻撃の最前線から学んだ革新的なテクノロジーと専門知識で、お客様を守ることにあります。エンドポイント対策に関しては、FireEye エンドポイント・セキュリティにより、EDR市場の創出に貢献し、業界をリードしています。昨年は、アンチウィルス(AV)保護を統合することで、エンドポイント・セキュリティの幅を大幅に広げてきました。AV機能として、ExploitGuard挙動検知機能と侵害調査指標(IOC)検知を含むマルウェア防止を追加しました。

本日、新しい機械学習機能である、MalwareGuard をエンドポイント戦略に追加することを発表します。MalwareGuardはマルウェアの実行を検知し、防止します。この機能は、従来のAV技術が見落とすゼロデイ・マルウェアを検出することができます。

MalwareGuardは、Windows実行ファイルが悪意のあるものかどうかを予測し、実行前にその動きを防止します。FireEyeネットワーク・セキュリティおよびEメール・セキュリティにも同機能を搭載し、検出機能強化を図っていきます。機械学習モデルによる脅威の静的解析は、現在FireEye ネットワーク・セキュリティやEメール・セキュリティ製品に搭載している動的解析エンジン、MVXを補完するものです。静的解析と動的解析を併用することで、マルウェアの検出およびブロック精度を向上させ、攻撃者の検知回避をより困難なものにします。

本ブログでは、この機械学習モデルのゴールと、ソリューションの構築と評価について説明します。

ゴール

MalwareGuardの実装を開始した当初、いくつかのゴール設定を行いました。

  • 既存の検知において視野に置かれているのはPEファイル(例えば、EXE、DLL、およびSYSファイル)です。PEファイルのフォーマットは、Windows OS が実行可能コードをロードする際に必要とする情報を含む構造の一つです。VirusTotal(図)1のファイルタイプ傾向が示すとおり、PEファイルはマルウェアの多くを占めるものです。
  • 機械学習アルゴリズムは、PEファイルを入力し、そのファイルが良性であるか悪性であるかの判断を出力するものです。
  • PEファイルのスコアリングは、最小のリソースで即時に判断する必要があります。即時判断はマルウェアに実行の隙を与えないためです。
  • また、精度が設定可能である必要があります。誤検知を可能な限り抑えたいという要望が多数だと思われる一方で、より積極的な検知が求められるハンティングもサポートする必要があると私たちは考えています。

幸い、私たちFireEyeはこれらのゴールを達成するにあたって有利な立場にありました。深刻な脅威への対応を行ってきている経験から、さまざまなマルウェアの知識を持っているからです。Mandiant チームのインシデントレスポンスによって収集された標的型マルウェアやAPTマルウェアなど、FireEyeは、一般的なマルウェアを超えたマルウェアに関する情報を持ちます。さらに、FireEye Labs Advanced Reverse Engineering (FLARE)チームが深い知識を提供します。経験とインテリジェンスの組合せにより、独自のデータセットの作成が可能になります。MalwareGuard実装にあたり、データ・サイエンティストとリバース・エンジニアリング担当者が協力できたのは非常に重要なポイントでした。

図1:2018年5/6~5/13週のウイルス総件数の推移。注意:Win32EXEおよびWin32DLLはWindows PEファイルです

開発

まず、データセットと、機械学習モデルに与えるためのPEファイルと関連するメタデータの作成から取り掛かりました。社内外で長年収集されてきた、独自かつ精製された、マルウェアの集合体を作成するため、FireEyeは、1) MVX エンジンおよび2) FLARE チームの分析レポートの2つの情報ソースを活用しましたが、実際問題として苦労したのは、良性のサンプルセットの用意です。これには、信頼できる情報ソースが提供するサンプルの収集から始めました。良性PEファイルの多様性を考えると、FireEyeが現場で収集しているよりも、もっと幅広いサンプルを追加する必要がありました。今日、データセットのサンプル数は、3億を超えています。モデルを学習させる際、サンプルがいつ発見されたかによってデータセットを3つのグループ(トレーニング、検証、およびテスト)に分割します。学習セットは、まず最も古いサンプルから始まり、検証セット、そして最新のセットへと進めます。データを分割することにより、学習モデルが時間の経過とともにどれくらい持ちこたえられるかを正確に測定することが可能になります。

次に、機械学習アルゴリズムに学習させるPEファイルをどうエンコードするか決定する必要があり、2つの選択肢を検討しました。

  1. PEファイルの静的解析に基づいて特徴の集合を作成する、伝統的な機械学習方式
  2. PEファイルそのものをアルゴリズムへの入力として使用する、ディープラーニング方式

第1の選択肢を探索しながら、我々はFLAREチームと連携し、インディケーターの特定と、共通するデータの特性を見つけました。フィーチャーのサンプルとしては以下のものがあります:

  • PEファイルのテキスト部のバイト列のランダム性
  • PEファイルのセクション数
  • 特定のAPIコールの有無

これらのフィーチャーによって、ファイル構造やコンテンツに関する情報を捉えることができ、そのファイルが良性なのか、悪性なのかの判断に役立つのです。これら静的フィーチャーを作成するプロセスは、特徴量エンジニアリングと呼ばれます。特徴量エンジニアリングは、第2選択肢であるディープラーニングとは対照的なものです。ディープラーニング・アルゴリズムへの入力は、単にPEファイルを構成するバイト列です。ディープラーニング・アルゴリズムにより、入力されたバイト列を、良性悪性の判断ができる情報に変化させることができます。ディープラーニングは、セキュリティ分野に限らず、活発な研究が行われている分野です。昨年、FireEye は応用機械学習会議で、ディープラーニング・アルゴリズムにおける発見について発表を行いました。最終的には、伝統的な機会学習とディープラーニングの両方を使用し、良い結果を得ることができました。

次に、さまざまな教師あり学習モデルを適応しました。SME識別フィーチャーのためのランダムフォレスト、勾配ブーストツリー、ニューラルネットワーク、およびロジスティック回帰モデル、ならびにディープラーニングのための畳み込みニューラルネットワークおよび再帰ニューラルネットワークなどが含まれていました。まず、モデルをチューニングするためのバリデーション・セットを使いながら、学習セット内のPEファイルをモデルとした学習をさせ、次に、学習したモデルが下した正しい予測、過検知、未検知の数を評価しました。異なるモデルの結果を比較するため、ROC曲線(AUC)の下の領域を使用しました。AUC統計は、0と1との間の数値で表されます。常に間違った予測をするモデルはAUC=0、常に正しい予測をするモデルはAUC=1にスコア化されますが、FireEyeの検知モデルはAUC=0.9998をマークしました。さらなる評価のため、FireEyeは、他のパフォーマンスに優れたモデルもいくつか採用しています。

内部評価

この1年、Mandiantのインシデントレスポンス活動およびManaged Defenseサービスにおいて、パフォーマンスを評価するために有効なモデルをいくつか使用してきました。また、FireEye社内から機械学習モデルに与えるためのPEファイルを提供できる仕組みも作りました。評価を通じ、2000万以上の新しいPEファイルの良性悪性の判断を行ってきました。これらの仕組みは、FireEyeにとって非常に貴重な情報源となりました。データ・コレクションのギャップを認識し、過検知や未検知を評価することで、さらなる機能追加を実現しました。これらは、堅牢な機械学習モデルを生成する反復プロセスにおける重要なステップです。内部評価の最後のステップは、候補の中から最終モデルを選択することであり、これにあたり、再度AUC値を利用することにしました。

また、長期にわたるMalwareGuard機能の提供のためのインフラも整えました。私たちのゴールは、モデルのパフォーマンスに対するリアルタイムな可視性の提供であり、パフォーマンスがしきい値を下回ったときに、オンデマンドでモデルが再学習を行うようになることです。このゴールを達成するために、機械学習プロセスの各フェーズのためのデータ・パイプラインを開発しました。これにより、システムは完全に自動化されることになります。

さらに先へ

FireEye エンドポイント・セキュリティ、ネットワーク・セキュリティ、Eメール・セキュリティ製品をお使いのお客様は、MalwareGuard 機能をお使いいただけます。ゼロデイを含めたマルウェアの検知能力の飛躍的な改善をご実感いただけると思います。特に、エンドポイント・セキュリティのお客様にとって MalwareGuard は多層防御ソリューションにおいて重要な役割を果たします。IoC、シグネチャベースのマルウェア検知やブロック、ExploitGuardによる挙動検知や阻止から構成されるエンドポイント・セキュリティに、新たに機械学習によるマルウェア検知機能であるMalwareGuardが加わったことになります。

今回の発表を非常に嬉しく思う一方で、この状態にとどまらず、さらなるMalwareGuardの改善に取り組む所存です。機械学習は、従来のシグネチャベースのアプローチよりも速く、進化を続けるマルウェアを検出、ブロックすることができると確信しています。

本ブログは、米FireEyeが公開した「MalwareGuard: FireEye’s Machine Learning Model to Detect and Prevent Malware」(英語)の日本語抄訳版です。