本記事は、Windows Security のブログ “Windows Defender ATP machine learning: Detecting new and unusual breach activity” (2017 年 8 月 3 日 米国時間公開) を翻訳したものです。
マイクロソフトは積極的に次世代のセキュリティ テクノロジに投資しており、マイクロソフトが誇る膨大なデータ セットを集約する能力を使用し、そのデータから学習するインテリジェントなシステムを構築しています。機械学習 (ML) システムでは、日々の膨大な数のイベントに潜む脅威や、従来のセンサーでは反応しない未知の小さな異常を見つけ出すことができます。
専門家による分析を組み合わせることで、機械学習を活用した Windows Defender Antivirus のマルウェア対策が進化し、未知のポリモーフィック マルウェアをほぼリアルタイムで検出できるようになりました。Windows Defender Advanced Threat Protection (Windows Defender ATP) の高度な攻撃の検出機能も向上しています。たとえば、メモリ内に潜んで、頻繁に使用されるツールやアプリケーションがトリガーしたイベントのように装う Apex 攻撃なども検出することができます。
この記事では、Windows Defender ATP をエンタープライズ ネットワーク内のあらゆるセキュリティ違反を検出できるすばらしいソリューションへと進化させた、機械学習のテクノロジをご紹介します。
Windows Defender ATP のセンサーとインテリジェント セキュリティ グラフ
Windows Defender ATP は、Windows 10 に組み込まれたエンドポイント センサーを使用して、効果的な侵入後検出* を実施します。このエンドポイント センサーは、従来のようなシグネチャを使用せず、その代わりに、行動イベントのストリームを収集します。たとえば、プロセスが Web サーバーに接続したり、アプリケーションを終了したり起動したりする行動を検知することができます。
* 6 月に発表されたとおり、Fall Creators Update では、Windows Defender ATP とその他の Windows 脅威保護スタックが密接に統合され、侵入前、侵入後に対応した包括的な保護ソリューションに生まれ変わります。これにより、企業のデバイスやネットワークの脅威を検出して対処できるだけでなく、脅威を未然に防げるようになります。
Windows Defender ATP の検出機能は、センサーのデータと Microsoft インテリジェント セキュリティ グラフの組み合わせによってトリガーされます。たとえば、上の例の場合、センサーのデータと、Web サーバーに関するさまざまな情報 (IP アドレスの評判、同じサーバー上のサイトの Windows Defender SmartScreen の評判など) を利用することができます。ファイルの普及、ネットワーク アクティビティが類似するファイル、その他の共通行動を表示するようにグラフを拡張することも可能です。さらに、Intelligent Security Graph のコンテキスト情報を参照して、より信頼性の高い判断を行うことができます。
センサーとグラフ データに基づいて、特定の悪意のある行動をピンポイントで検出する簡単なものから、より複雑なヒューリスティック分析まで、幅広い検出を行います。たとえば、特定のハッキング ツールに関連するコマンドライン パラメーターの使用、信頼性の低い Web サイトからのバイナリのダウンロードや実行も検出することができます。本格的な機械学習機能を活用して、より巧妙で発見しにくい侵入アクティビティも検出します。
機械学習の役割
人間のアナリストは、専門知識に基づいて侵害アクティビティを警告するヒューリスティックを見いだすことに長けていますが、ヒューリスティック ルールを作成する際に考慮できるシグナルの数が限られます。これに対し、機械学習は数千ものシグナルを考慮できるため、アナリストが作成したヒューリスティックを応用して、データをより細かく分析することができます。実際のアラート分析では、人が作成したヒューリスティックよりも機械学習テクノロジのほうが 20% 以上も正確であることがわかっています。
さらに、その他の一般的な成果物も併用可能なため、さまざまなデータを一般化して、まだ知られていない新しい脅威を検出することができます。マイクロソフトの機械学習モデルでは、Windows Defender ATP の大量のデータと計算リソースをさまざまな用途に最適化します。
専用の分類子の利用
Windows Defender ATP の機械学習システムは、多数のモデルと分類子で構成されており、これらを組み合わせて検出の意思決定を行います。これにより、不正プロセス、不正スクリプト、ソーシャル エンジニアリング、Microsoft Office の悪用、ランサムウェア攻撃 (英語) などの悪意のあるエンティティやアクティビティを特定することができます。
マイクロソフトの機械学習モデルは、最先端の特徴量エンジニアリングと幅広い機械学習アルゴリズムを組み合わせたものです。ニューラル ネットワーク (英語) を使用して、一連のオブジェクト、重み付け特性、個々の特性の関係などに基づく高度な予測を行います。また、デシジョン ツリー (英語) では、複数のデシジョン ツリーからエラーを修正して確度の高い予測を行います。
一部のモデルは幅広い行動データを対象としますが、その他のモデルは、レジストリやメモリ アクティビティのような特定エリア専用の分類子として設計されています。すべての機械学習モデルでは、対象の行動が悪意のあるものかそうでないかを段階的に判断します。モデルから得た数値スコアに基づいて攻撃の可能性を計算し、アラートを生成するかどうかを判断します。
コンテキスト情報の提供
一般的に、機械学習モデルは、アラートが生成された理由などの限られたコンテキスト情報のみを提供します。これは、セキュリティ オペレーション担当がインシデントの重大度を評価し、適切な対応を行うのに役立ちます。また、その後の調査の指針としても利用されます。
ほとんどの機械学習モデルで提供されるコンテキストは、概要レベルです。先ほど取り上げたモデルでは、組織が悪意のあるプロセスと対峙しているかを知らせることはできますが、ソーシャル エンジニアリング攻撃やドキュメント エクスプロイトであるかどうかまでは通知できません。Windows Defender ATP が提供する機械学習モデルとコンテキスト情報は非常に優れているため、セキュリティ オペレーション担当はより多くの成果物を取得し、インシデントの影響範囲を正確に把握することができます。永続メカニズムや特定の IP アドレスへの接続情報のほか、Windows Defender ATP は、アラートの元となった特定の分類子を示し、一方でアラートに至った概要レベルの行動を明確にすることで意味ある情報を提供します。
図 1 では、機械学習アラートにより疑わしいファイルが検出され、プロセスの行動 (特にメモリ アクティビティ) や、分類子がファイルを「疑わしい」と判断するに至ったファイル内の構造的シグナルを表示しています。この情報を基に、メモリ アクティビティにターゲットを絞り込んで調査し、エクスプロイトの発生、クロスプロセス インジェクション、またはその両方を検出することができます。
図 1. 機械学習アラートとコンテキスト情報
教師あり学習と特徴量エンジニアリング
マイクロソフトでは、不審なユーザー アクティビティなどのネットワーク上の異常の特定には、教師なし学習メソッドを使用します。しかし、大多数の機械学習アルゴリズムは、教師あり学習モデルで構成されています。
教師あり学習のモデルまたは分類子は、グラウンド トゥルース クラス (「ラベル」) という例を基に作成され、未知のファイル、メール、プロセス、イベント、あらゆる種類のエンティティに正しいラベルを生成し、割り当てることを目的としています。教師ありの分類子を評価する際には、未知のエンティティの処理パフォーマンスを確認します。
機械学習システムでは、メール (がスパムであるかどうか) や画像 (が猫か、犬か、それ以外か) などの実世界のエンティティを判断する際に、特徴量に作用するアルゴリズムを使用します。このため、機械学習の手法を適用するには、特徴量エンジニアリングというプロセスによってエンティティを特徴量に変換する必要があります。たとえば、スパム メールの特徴量は、同じ送信元からの同じ内容のメールの数を指します。
特徴量エンジニアリングは、ドメイン エキスパートの理解度に基づいて行われます。あるいは、近年普及している深層学習メソッドと同様に、大量の生データと計算能力を利用したプロセスで適切な表現を学習します。たとえば、深層学習では数十億のメールを使ってスパムの概念を学びます。Windows Defender ATP の機械学習では、特徴量エンジニアリング アプローチ (エキスパート エンジニアリングと深層学習) を採用しています。
攻撃者は、特性を判断しにくいよう細工して検出を回避しようとするため、サイバーセキュリティに機械学習を適用するのは簡単ではありません。そのため、このような課題には多面的なアプローチで対応する必要があります。1 つ目に、攻撃者が簡単には変えられない行動特性に基づく機械学習モデルを構築します。たとえば、種類が多く検出回避のために静的プロパティを簡単に変更できてしまうマルウェアでも、いくつかの永続メカニズムを利用するという特性は変えることができません。2 つ目に、常に新しいデータで機械学習モデルを再教育し、最新のアクティビティに基づいて一般化するようにします。3 つ目に、機械学習モデルのアラートを検証する一連の評価システムを採用し、潜在的なミスを発見できるようにすることで、高い精度を維持します。
プロセス行動ツリー: ソフトウェアの行動をキャプチャ
さまざまなソフトウェアの行動を、機械学習アルゴリズムで処理できる特徴量に変換するにはどうすればよいでしょうか。
ソフトウェア プロセスの行動を定義する要因は、プロセス自体のアクションだけでなく、子孫プロセスや関連プロセスのアクションなども関係しています。特に悪意のあるプロセスの実行アクションの多くは、悪意のあるコードが挿入された別プロセスが実行しているため、このような情報がとても重要です。
Windows Defender ATP の機械学習では、プロセス行動ツリーを採用し、プロセスの作成やメモリの追加によって関連付けられたプロセスとその子孫プロセスが示す、すべてのアクションと行動をカプセル化しています。図 2 は、マルウェア実行のプロセス行動ツリーの例です。
図 2. プロセス行動ツリー: 発生したプロセスとコードを挿入されたプロセス
行動データで機械学習モデルをトレーニングすると、一連のトレーニング例からその他の問題を発見することができます。Windows Defender ATP は、さまざまなソースと種類の異なる数百万の悪意のあるファイル (PE、ドキュメント、スクリプトなど) を使用します。さらに、侵害された Web サイトから仕掛けられた悪用手法、インメモリやファイルレス脅威の行動など、非ファイル アクティビティのトレーニング例を収集します。世の中に出回っており、一般的なマシンの正常なアクティビティに潜む、悪意のある行動に基づいてトレーニング セットを構築し、悪意のある成果物の制御されたデトネーションで得たデータを追加します。Windows Defender ATP センサーは必要なすべてのデータとインサイトをシグネチャなしで提供します。
機械学習モデルのトレーニング プロセスでは、ラベル付きデータをトレーニング セットとテスト セットに分割するのが一般的で、トレーニング データからテスト データを最も適切に予測するモデルが選択されます。このようにデータをランダムに分割することは、サイバーセキュリティ ドメインでは十分とは言えないかもしれません。Windows Defender ATP では、Apex 攻撃からの保護を目指しており、一般化できるモデルを積極的に利用しています。たとえば、受信時間とマルウェア ファミリ別にラベル付きデータをパーティション化し、最もパフォーマンスの高いモデルを選択して、未知のマルウェア ファミリや持続的標的型 (APT) 攻撃を検出します。
検出情報以外に、Microsoft インテリジェント セキュリティ グラフから提供されるコンテキスト データも、プロセス行動ツリーの強化に利用されます。リモート ホストに接続するコマンドライン シェルを開く PE ファイルのプロセス ツリーに、Windows Defender ATP がフラグを立てると、さまざまなコンテキストを含むシグナルが集められ、観察結果が補強されます。このシグナルには、ファイルの普及、ホストの普及、ファイルが Office 365 内に存在するかどうかなどのコンテキストが含まれます。Windows Defender ATP 分類子は、これらの内容を考慮して、アラートを生成するかどうかを決定します。
疑わしい PowerShell アクティビティ、コード インジェクション、悪意のあるドキュメントの検出
機械学習のテクノロジにより、Windows Defender ATP であらゆる高度な攻撃を検出できるようになります。このセクションでは、機械学習テクノロジを活用して、悪意のあるコードを実行する PowerShell スクリプト、コード インジェクション、ポリモーフィック ドキュメントなどを検出する方法を説明します。
PowerShell アクティビティ
攻撃者は PowerShell と呼ばれる Windows のスクリプト作成ツールを使って、悪意のあるバイナリを使わずに攻撃を仕掛けることがあります。悪意のあるバイナリはシグネチャベースのセンサーで簡単に検出されてしまうためです。スクリプト内に悪意のあるペイロードを保持しやすく、さまざまな形に簡単に変更できるという理由からも、攻撃者は PowerShell をよく利用します。Windows Defender ATP の機械学習では、シグネチャを使わずに Kovter (英語) マルウェア攻撃などに見られる疑わしい PowerShell の行動を検出します。
図 3. Kovter 攻撃の実行中に疑わしい PowerShell の行動を検出
コード インジェクションとインメモリ攻撃
Kovter は、高いステルス性を維持するために、インメモリまたはファイルレスの攻撃手法 (英語) を使用します。これは、攻撃者がシグネチャベースのスキャナーをくぐり抜け、フォレンジックで証拠を残さないようにするために使用される手法です。メモリ内に留まるために、PowerShell スクリプトを使用して他のプロセスに悪意のあるコードを挿入します。
Windows Defender ATP センサーは、Kovter によるコード挿入などの、さまざまなメモリ イベントを可視化します。機械学習では、これらのイベントを処理して Kovter アクティビティや同様のアクティビティを検出し、異常または悪意があるというフラグを立てます。
悪意のあるコードが埋め込まれたドキュメント
Windows Defender ATP の機械学習は、PowerShell と Microsoft Word の疑わしい行動をトリガーする、悪意のあるマクロが埋め込まれたドキュメントを検出します。実行時にのみ発生する行動シグナルからこの攻撃を検出します。一方、ほとんどのシグネチャベースのテクノロジでは、PowerShell.exe や Winword.exe などの標準プロセスを使用する攻撃を阻止することができません。ドキュメント自体も、一般的に簡単にポリモーフィックに変更することができます。
図 4. 悪意のあるドキュメントによってトリガーされた PowerShell や Microsoft Word の疑わしい行動の検出
Windows Defender ATP の機械学習は、メモリ インジェクション アクティビティなどの疑わしい行動にフラグを立てることで、Chanitor と呼ばれるマルウェア (英語) (別名 Hancitor) で使用される疑わしいドキュメントも検出することができます。検出される情報には、フラグが立てられている理由を理解するのに十分なコンテキストが含まれます。Chanitor ドキュメントも、他の悪意のあるドキュメントと同じく、シグネチャベースのソリューションをすり抜けてしまいます。
図 5. 一般的な行動ベースの Hancitor ドキュメントの検出
まとめ: 機械学習による強力な行動データに基づく侵入検出
悪意のあるサイバー アクティビティの検出を強力かつ包括的に行うためには、行動データが重要です。Windows Defender ATP は、Windows 10 に組み込まれたセンサーからこのデータを受け取ります。その後、これらの行動イベントを、プロセス行動ツリーなどの強力な機械学習テクノロジで利用できるコンポーネントや特徴量に変換します。さらに、Microsoft インテリジェント セキュリティ グラフで、行動データに重要なコンテキスト情報を付加し、機械学習アルゴリズムを適用することで、持続的標的型攻撃 (APT) や関連するサイバー攻撃を最先端の方法で検出できるようになります。
Windows Defender ATP の詳細については、Windows Defender ATP の機能と、エンタープライズ セキュリティ スタックにおける侵入後検出アプローチの重要性 (英語) を参照してください。Fall Creators Update (英語) でリリースされる機能は、パブリック プレビューですべてのユーザーに提供されます。
Windows Defender ATP は Windows 10 Enterprise のコアに組み込まれ、無料でお試しいただけます。
Shay Kels、Christian Seifert
Windows Defender ATP Research