MalwareGuard: マルウェアを検出して防止する FireEye の機械学習モデル

FireEye の使命は、サイバー攻撃の最前線から学んだ革新的なテクノロジーと専門知識を使用して、お客様とそのデータを絶え間なく保護することです。お客様のエンドポイントの保護に関しては、FireEyeエンドポイント セキュリティはエンドポイントの検出と対応 (EDR) 市場の創出に貢献しており、業界のリーダーです。この 1 年間で、 ウイルス対策 (AV) 保護を統合することで、エンドポイント セキュリティの範囲を大幅に拡大しました。 AV 機能により、既存の検出スイートにマルウェア防御が追加されました。これには、 ExploitGuard動作検出機能と侵害の痕跡 (IOC) 検出が含まれます。

本日、この多層防御のエンドポイント戦略である MalwareGuard に、新しい機械学習 (ML) レイヤーを追加できることを非常にうれしく思います。 MalwareGuard を使用すると、マルウェアの実行を検出して防止できます。この機能は、従来の AV テクノロジーでは見逃されていた新しいマルウェアを初日に検出することで、重要なニーズに対応します。

MalwareGuard は、Windows 実行可能ファイルが悪意のあるものであるかどうかを実行前に予測するため、マルウェアが足場を固めるのを防ぐことができます。この新しい検出機能を最大限に活用するために、ネットワーク セキュリティおよび電子メール セキュリティソリューションにも MalwareGuard を導入する予定です。 ML モデルの静的検出機能は、Network Security および Email Security に表示される既存の Multi-Vector Virtual Execution (MVX) 動的分析エンジンを効果的に補完します。静的分析と動的分析の両方を実行すると、マルウェアを検出して停止する可能性が高くなり、攻撃者が検出を回避することがより困難になります。

この投稿では、モデルの目標と、ソリューションの構築と評価にどのように取り組んだかについて説明します。

目標

MalwareGuard の構築プロセスを開始したとき、いくつかの目的がありました。

  • 現在の検出および防止の範囲は、Windows Portable Executable (PE) ファイル (EXE、DLL、および SYS ファイルなど) です。 PE ファイル形式は、Windows が実行可能コードをロードするために必要な情報を含む構造です。 VirusTotal に提出されたファイル タイプの分布からも明らかなように、PE ファイルは引き続きマルウェア ユニバースの大きな部分を占めています (図 1)。
  • ML アルゴリズムの焦点は、PE ファイルを入力として受け取り、そのファイルが無害か悪意があるかの予測を出力することです。
  • PE ファイルのスコアリングは 1 秒未満の時間で実行する必要があり、最小限のメモリ使用量と処理能力しか必要としません。時間の制約により、悪意があると見なされたファイルの実行を防ぐことができます。
  • ML モデルには、ユーザーが必要な感度を選択できる構成設定が必要です。ほとんどのユーザーは非常に低い誤検知率を望んでいると想定していますが、ML モデルが悪意があると見なすものに対してより積極的になるような、他の「ハンティング」ユース ケースもサポートしたいと考えています。

FireEye は、これらの目標を達成する上で優れた立場にあります。最も重大な脅威に対応してきた経験により、当社は多数の多様なマルウェアにアクセスできます。コモディティ マルウェアを超えて、FireEye は、Mandiant インシデント レスポンス (IR) 契約に基づいて、標的型マルウェアおよび APT マルウェアに対する卓越した可視性を備えています。さらに、FireEye Labs Advanced Reverse Engineering (FLARE) チームの対象分野の専門家の幅広い知識により、深い知識が得られます。この経験とインテリジェンスの組み合わせにより、独自のデータセットを作成できます。 MalwareGuard を作成するためのデータ サイエンティストとリバース エンジニアのパートナーシップは、可能な限り最良のモデルを作成するために重要でした。

Submissions to VirusTotal during the week of 5/6 to 5/13, 2018. Notice the Win32 EXE and Win32 DLL types, which are Windows PE files
図 1: 2018 年 5 月 6 日から 5 月 13 日の週のVirusTotalへの提出。Windows PE ファイルである Win32 EXE および Win32 DLL タイプに注意してください。

発達

最初のステップは、データセットを組み立て、PE ファイルのストリームとそれに関連するメタデータを取り込むためのパイプラインを作成することでした。私たちは、長年にわたる活動をカバーする、社内外のソースからの包括的で独自のマルウェア コレクションをキュレーションしました。これを達成するために、FireEye の 2 つのリソースを活用しました。1) MVX 動的分析エンジンを使用して、マルウェアの一部を特定し、ラベルを付けました。2) FLARE チームの分析レポートを取り込んで、リバースの時間と作業を活用しました。エンジニア。

私たちが直面した本当の課題は、無害なサンプル セットを作成することでした。そのために、既知の信頼できる出所を持つサンプルを含めることから始めました。無害な PE ファイルの多様性を考えると、FireEye が実際に目にする変動性をより多くキャプチャするのに役立つサンプルを追加して、最初の無害なセットを強化する必要があることがわかりました。今日の時点で、私たちのデータセットは 3 億を超えるサンプルにまで成長しました。モデルをトレーニングするとき、サンプルが最初に見られた時期に基づいて、データセットを 3 つのグループ (トレーニング、検証、テスト) に分けます。トレーニング セットは、最も古いサンプル、検証セット、最新のサンプルを表すテスト セットで構成されます。このようにデータを分割することで、トレーニングされたモデルが長期にわたってどれだけうまく機能するかを測定できます。

次のステップは、ML アルゴリズムの入力として PE ファイルをエンコードする方法を決定することでした。 2 つの異なるオプションを検討しました。

  1. PE ファイルの静的分析に基づいて一連の機能を作成する従来の機械学習アプローチ。
  2. PE ファイル内の生のバイトがアルゴリズムへの入力として使用されるディープ ラーニング アプローチ。

最初のオプションを調査するために、FLARE の対象分野の専門家と緊密に協力して、指標を特定し、データの関連特性を取得しました。機能の例は次のとおりです。

  • PE ファイルのテキスト セクションのバイト ランダム性 (エントロピー) の量
  • PE ファイルのセクション数
  • 特定の API 呼び出しの有無

これらの機能は、ファイルの構造とコンテンツに関する情報の一部をキャプチャするため、ファイルが無害か悪意があるかを予測するのに役立つ可能性があります。これらの静的機能を作成する反復プロセスは、機能エンジニアリングと呼ばれます。特徴量エンジニアリングは、私たちが調査した 2 番目の深層学習オプションとはまったく対照的です。深層学習アルゴリズムへの入力は、PE ファイルを構成する一連のバイトです。バイトを有用な表現に変換して、悪意のあるサンプルと無害なサンプルを区別できるようにするのは、ディープ ラーニング アルゴリズムの仕事です。これは、情報セキュリティ コミュニティだけでなく、非常に活発な研究分野です。昨年の応用 ML カンファレンスで、深層学習アルゴリズムに関する調査結果を発表しました。最終的に、従来の学習オプションとディープ ラーニング オプションの両方を使用することに成功しました。

次に、さまざまな教師あり学習モデルをトレーニングしました。これには、ランダム フォレスト、勾配ブースティング ツリー、ニューラル ネットワーク、および SME で識別された機能のロジスティック回帰モデルと、深層学習の場合の畳み込みニューラル ネットワークと再帰型ニューラル ネットワークが含まれます。典型的な実験は、モデルのハイパーパラメーターを調整するための検証セットを使用しながら、トレーニング セットの PE ファイルでモデルをトレーニングし、次にテスト セットでトレーニング済みモデルを評価して、正しい予測、偽陽性、および偽の数を決定することで構成されていました。ネガ。異なるモデルの結果を比較するために、ROC 曲線下面積 (AUC) を使用しました。 AUC 統計は、0 から 1 の間の単一の数値です。予測が常に正しくないモデルの AUC は 0 ですが、予測が常に正しいモデルの AUC は 1 です。最高のパフォーマンスを発揮するマルウェア検出モデルにはスコアがありました。 0.9998の。さらに評価するために、いくつかの最高のパフォーマンスのモデルを選択しました。

内部評価

過去 1 年間、Mandiant IR およびマネージド ディフェンス エンゲージメント中に、いくつかの有望な候補モデルを実行して、パフォーマンス メトリックを収集してきました。また、FireEye のチームが ML モデル スコアリングのために PE ファイルを送信できる社内サービスも作成しました。現在までに、この評価中に 2,000 万を超える新しい PE ファイルについて予測を行いました。これにより、貴重なフィードバックのソースが提供され、いくつかのことを行うことができました。データ収集のギャップを特定して対処することができ、偽陽性と偽陰性を評価することで、対象を絞った追加の機能エンジニアリングが可能になりました。これらは、堅牢な機械学習モデルを作成する反復プロセスの重要なステップです。内部評価の最後のステップは、候補の中から最終モデルを選択することでした。これも、AUC 統計を使用して行いました。

内部評価期間中に、MalwareGuard の長期的な追跡と保守をサポートするインフラストラクチャも開発しました。私たちの目標は、パフォーマンスがしきい値を下回ったときにモデルの再トレーニングをオンデマンドで実行できることを期待して、モデルのパフォーマンスをリアルタイムで可視化することでした。この目的を達成するために、ML プロセスの各フェーズ用のデータ パイプラインを開発しました。これにより、システムは完全に自動化されます。

今後

Endpoint Security、Network Security、Email Security を使用している FireEye のお客様は、MalwareGuard の恩恵を受けることができます。クライアントは、ゼロデイ脅威でさえ、マルウェアを検出する能力の大幅な向上を期待できます。特にエンドポイント セキュリティのお客様にとって、MalwareGuard は統合された多層防御ソリューションへの重要な追加機能です。このソリューションは、侵害の痕跡の検出、マルウェア シグネチャの検出と防止、ExploitGuard の動作の検出とブロック、および MalwareGuard の機械学習によるマルウェアの検出と防止を備えた新しいレイヤーで構成されています。

本日、このマイルストーンの発表に到達できることを嬉しく思いますが、MalwareGuard を徐々に改善していきたいと考えています。マルウェアの脅威環境は急速に進化し続けており、機械学習を適用することで、従来のシグネチャ ベースのアプローチよりも迅速に新しいマルウェアを検出して阻止できると考えています。

参照: https://www.mandiant.com/resources/blog/malwareguard-fireeye-machine-learning-model-to-detect-and-prevent-malware

コメント

タイトルとURLをコピーしました