レイヤード ディフェンス: 静的分析、動的分析、機械学習が必要な理由

Dec 26, 2018
1 minutes
5 views

セキュリティにおけるポイント ソリューションとは、単一のポイントに重点を置き、攻撃のライフサイクル全体の中でそのポイントで攻撃に介入するソリューションを指します。たとえセキュリティ ソリューションが90%の成功を収めたとしても、攻撃がそうしたポイントをくぐり抜けるのを阻止するのに失敗する確率は10%も残されています。サイバー攻撃を阻止する確率を向上させるには、ポイント ソリューションに依存してはいけません。攻撃を封じる複数のポイントを持つ、多レイヤーの防御が必要です。効果的な手法を重ねることによってセキュリティ ソリューションの全体的な有効性は高まり、攻撃のライフサイクルを複数のポイントで阻止する機会が提供されます。

以降の部分では、協調してサイバー攻撃の阻止に当たる3つの脅威特定手法について説明します。

 

動的分析

ゼロデイ脅威を検出できる唯一のツール

動的分析では、仮想マシン内(マルウェア分析環境など)で疑わしいファイルを作動させ、そのファイルが何を行うかを分析します。脅威特定のためにシグネチャに依存するのではなく、実行させて何を行うかに基づいてグレードを決定します。そのため、動的分析は過去のいかなる脅威とも似ていない脅威を特定することが可能です。

最も正確な結果を得るため、サンプルには、企業ネットワーク内の平均的なエンドポイントと同じくインターネットへの完全なアクセスを与える必要があります。脅威が完全に機能するにはコマンド アンド コントロールが必要になることがよくあるためです。マルウェア分析では、防御メカニズムの一環としてインターネットへのアクセスを禁止し、脅威がその姿を現すようにするために応答の偽造が試みられる場合があります。しかし、この手法の信頼性は低く、インターネット アクセスの真の代用となることはありません。

マルウェア分析環境は識別可能であり、そのプロセスには時間がかかる

攻撃者は検出を逃れるため、ネットワークのプロファイリングを行い、攻撃を実行している場所がマルウェア分析環境内であるかどうかを特定しようとします。その際に、マルウェアが仮想環境内にあることを示す指標を見つけようとします。たとえば、同じタイミングで作動していたり、同じIPアドレスで作動していたり、キーボードのストロークやマウスの動きなどの有効なユーザー アクティビティが存在しなかったり、異例なほど大きなディスク容量を持つなどの仮想化テクノロジを示す要素があるかどうかを探ります。マルウェア分析環境で実行されていると判断すると、攻撃者は攻撃の実行を停止します。これは、分析が失敗する可能性があることを意味します。たとえば、サンプルが作動した時に外部の親サイトに接続するという動作が組み込まれているとします。しかし、マルウェア分析が行われていることを攻撃者が特定したため、外部への接続動作は発生しなかったとします。その場合、サンプルは何も悪いことを行わないため、分析で脅威は検出されません。同様に、脅威が作動するためには特定のソフトウェアの特定のバージョンが実行されている必要がある場合があります。その場合、マルウェア分析環境内では悪意のある動作が特定されなくなります。

仮想マシンを起動し、ファイルをその中に入れて、何が行われるかを観察し、仮想マシンを停止し、結果を分析し終えるまで、数分程度の時間がかかることがあります。動的分析はリソースや時間を最も多く消費する方法ですが、未知の脅威やゼロデイ脅威を効果的に検出できる唯一のツールでもあります。

 

静的分析

結果が迅速に得られ、分析に関する要件は特になし

動的分析とは異なり、静的分析はファイルを作動させるのではなく、ディスクに保存された状態でファイルの内容を調べます。データを解析し、パターン、属性、構造物を抽出し、異常かどうかを識別します。

動的分析で問題となったことは、静的分析ではあまり問題となりません。非常に効率的であり、1秒未満で完了し、コスト効率ははるかに優れています。静的分析では、特定の要件や独自の環境は不要であり、分析を行うためにファイルと外部の間で通信を行わせる必要もありません。そのため、どのようなファイルでも扱うことができます。

ファイルがパックされていると可視性が得られない

しかし、ファイルがパックされていると、静的分析は比較的簡単に回避されてしまいます。パックされたファイルは動的分析では正常に動作しますが、サンプルのパック解除を行うとファイル全体がノイズに変わってしまうため、静的分析では実際のファイルに対する可視性が得られません。静的に見た場合、抽出したものはほとんど無意味です。

 

機械学習

新しいバージョンの脅威を動作に基づいて既知の脅威とクラスタ化

機械学習では、特定のパターンマッチングを行ったりファイルを作動させたりするのではなく、ファイルを解析し、多くの特徴を抽出します。これらの特徴は、分類器(特徴ベクトルとも呼ばれる)を通じて実行され、既知の識別子に基づいてファイルが良性、悪性のいずれであるかが特定されます。具体的な何かを探すのではなく、ファイルの特徴が以前に評価したファイル クラスタに似ている場合に、そのファイルはそのクラスタに含まれるとマークされます。機械学習が適切に機能するには、良性、悪性の判定を受けているトレーニング セットが必要です。新しいデータや特徴を追加するとプロセスは向上し、誤検知の割合が減少します。

機械学習は、動的分析や静的分析に欠けているものを補います。不活性のサンプル、作動しないサンプル、パッカーによって機能が損傷を受けたサンプル、コマンド アンド コントロールがダウンしているサンプル、信頼性の低いサンプルは、機械学習を利用することによって悪性であるかどうかを特定できます。特定の脅威のさまざまなバージョンが観察され、クラスタ化されており、そのクラスタの機能と似た機能をサンプルが有している場合、該当のサンプルはそのクラスタに属していると判断され、数秒で悪性であるとマークされます。

すでに知られているものをさらに検出することだけが可能

他の2つの手法と同様に、機械学習も多くの利点といくつかの欠点を備えたツールであると見なす必要があります。機械学習は、すでに識別されているもののみに基づいてモデルをトレーニングします。動的分析とは異なり、機械学習は完全にオリジナルなものや未知のものを見つけることはできません。以前に検出されたいかなるものとも異なる脅威に遭遇した場合、機械学習はそれを脅威であると認識できません。なぜなら、機械学習は、すでに知られているものをさらに検出するようトレーニングされているからです。

1つのプラットフォームで階層化の手法を実現

高度な敵がどのような攻撃を仕掛けてきてもそれを阻止できるようにするには、パズルの1つのピースだけでは不十分であり、階層化の手法が必要になります。これは、以前はマルチベンダー ソリューションという概念でした。多層防御は現在でも有効性を失ってはいませんが、マルチベンダーのポイント ソリューションを超えた、静的分析、動的分析、機械学習を統合したプラットフォームに進化する必要があります。これら3つすべてが協調して動作することにより、多層化され統合されたソリューションを通じたレイヤードディフェンスが実現します。

 

Palo Alto Networks Security Operating Platformは、クラウドベース脅威分析サービスのWildFireと統合され、コンテキストに応じた実行可能な脅威インテリジェンスをコンポーネントに提供し、ネットワーク、エンドポイント、クラウドのすべてを通じて安全な環境を実現します。WildFireは、カスタム設計された動的分析エンジン、静的分析、機械学習、ベアメタル分析を組み合わせて、高度な脅威防御の手法を実現しています。多くのマルウェア分析環境はオープンソースのテクノロジを活用していますが、WildFireは動的分析エンジン内のオープンソースの仮想化をすべて削除し、ゼロから設計された仮想環境に置き換えました。WildFireの検出を回避するには、他のサイバーセキュリティ ベンダーに対して使用されている手法とは異なる、完全に独自の脅威を作成する必要があります。WildFireの最初の3層の防御(動的分析、静的分析、機械学習)をくぐり抜けたごくわずかな攻撃に関しては、回避的な動作を見せたファイルはベアメタル環境に動的に送られ、そこで完全なハードウェア上で実行されます。

このプラットフォームの内部では、これらの手法が非線形的に協調動作します。他のすべての機能のセキュリティを向上させる複数層のアプローチでは、ある1つの手法でファイルが悪性と判断された場合、プラットフォーム全体で悪性であると認識されます。


Subscribe to the Newsletter!

Sign up to receive must-read articles, Playbooks of the Week, new feature announcements, and more.