ネットワークアノマリへのアプローチを考察
~シグネチャVSベースライン~
2022年8月31日
このコラムでは Science of Network Anomalies を参照し、Flowmon ADSのテクノロジーの基盤となるNetwork Anomalyについてまとめました。
はじめに
今日のネットワークは、長い道のりを経て進化し、多数の異なるネットワークデバイス、プロトコル、およびアプリケーションで構成される複雑なシステムとなりました。したがって、ネットワークで何が起こっているのか、またはネットワーク内のすべてが正常に機能しているかについて完全に把握することは、事実上不可能と言わざるを得ません。これにより、ネットワークの問題に遭遇してしまうこととなります。
ネットワークの問題がどのように発生するかに関わりなく、できるだけ早くその発生要因を排除し、将来の問題発生を回避することが求められます。そのために、ウイルス対策、ファイアウォール、IDSなどのさまざまなセキュリティ対策ソリューションが用意されています。問題を解決する以前に、その問題自身を検知することが重要な視点となります。
ネットワーク異常
ネットワークの問題は、トラフィックの異常として検知することができます。一般的に、異常は予想に反するものです。たとえば、損傷したスイッチは、ネットワークの別の部分で予期しないトラフィックを生成し、サービスがダウンしたときに新しいエラーコードを表示させることがあります。ネットワークにおけるトラブルシューティングは、ネットワークの異常に基づき実施します。
異常を分類する最初の方法は、通常のネットワークトラフィックとの違いを検知することです。転送されるデータのタイプ(動作)、転送されるデータの量(ボリューム)、または両方を調査します。また、異常を分類する別の方法として、以下のような分類方法があります。
- 自然的エラー(例:天候による機器の故障または無線通信の中断)
- 人為的エラー(例:構成の誤りまたは誤ってネットワークケーブルが切断されたために発生したネットワークサービスの停止)
- 悪意のある人間の活動(例:会社の不満を持つ従業員がネットワークプリンタに損害を与える内部攻撃、または攻撃者がネットワークを介して企業活動を妨害する外部攻撃)
異常検知システム
異常検知には、ネットワークの継続的な監視と分析が必要です。異常検知システムは、汎用的なネットワークトラフィックのシナリオをカバーし、予期しないものが検知され、異常であると評価された場合、ネットワーク管理者にその状態を通知する機能を有します。
一般に、異常検知はいくつかのコンポーネントに分けることができます。図1(右側の図)を参照してください。
- パラメータ化
- 監視されたデータは、処理に適した形式で入力データから分離されます。
- トレーニング
- ネットワークモデル(ベースライン)が更新されます。この更新は、手動だけでなく自動でも実行できます。
- 検知
- 作成された(ベースライン)モデルは、監視対象ネットワークからのデータを比較するために使用されます。特定の基準を満たしている場合、異常検知レポートが生成されます。
図1:異常検知の基本コンポーネント
異常検知の利用目的
異常検知(Anomaly Detection)は以下を目的として利用される手法となります。
- ランサムウェアの検知
- 実行ファイルのシグネチャを探すことで検知が行われます。
- DDoS攻撃の検知
- 現在のトラフィック量を予想される量と比較することにより、攻撃を検知します。
- ボットネットアクティビティの追跡
- 既知のボットネットのC&C(コマンドアンドコントロール)サーバのリストを使用することで、悪意あるサーバとの接続を検知します。
- 辞書攻撃の検知
- ログインの試行回数をカウントし、その回数をしきい値と比較することで、アカウントをハッキングする試みを検知します。
- リンク障害の検知
- バックアップリンクの接続数の増加を検知することで識別します。
- 誤ったアプリケーション構成の検知
- アプリケーション接続内のエラーコードの量の増加を検知することで識別します。
- サーバの過負荷の検知
- エクスペリエンスの品質の低下を検知することで、過負荷のサービスまたはサーバを検知します。
- 疑わしいデバイスの動作の検知
- 動作プロファイルを作成し、デバイスが作成したプロファイルから逸脱した動作をしている場合、疑わしいアクティビティとして検知します。
メソッドによる異常検知
シグネチャまたは知識ベース
異常を検知するために、その指標となるシグネチャが必要となります。シグネチャとは、既知の不正な通信や攻撃パターンを識別するためのルール集です。シグネチャの例としては、宛先IPアドレスと同じ送信元IPアドレスを持つパケットを検索する場合や、パケット内の特定のコンテンツを検索する場合があります。
ベースラインまたは統計ベース
ベースラインは、ある共通の特徴を持つ転送データの量を記録します。たとえば、5分ごとに検知されたTCP接続数などです。学習したベースライン(過去5分間のクエリ数)から大きく逸脱した場合に発生します。図2を参照してください。ここではネットワークトラフィック異常の信号分析に起因する、検知されたTCP接続の量の変化に応じた異常検知を示しています。
図2:検知されたTCP接続の量の変化に応じた異常検知
図3は、1つの宛先ポートに送信されるパケット量の増加として、異常が現れる場合を示しています。大量のデータを単一のポートに転送すると、結果の分布が大幅に変化します。
図3:宛先ポートによるパケットの分散の変化
シグネチャとベースラインを使用したネットワーク異常検知の違い
次の図は、シグネチャとベースラインの使用を比較しています。
図4:シグネチャとベースライン
シグネチャを使用した異常検知は高速で正確ですが、シグネチャがわかっているトラフィック異常に対してのみ機能します。一方、機械学習ベースは学習期間が必要なため、検知できるようになるまでの期間が遅く、誤検知も発生しますが、シグネチャが存在しない新しい異常や変更された異常を明らかにすることができます。一般に、すべての異常を誤検知することなく検知することは不可能です。したがって、バランスの取れたアプローチが推奨されます。
異常検知のための機械学習の使用
シグネチャを正確にし、ネットワーク内の既知の異常を検知するには、攻撃に関する知識を利用し手動でシグネチャを作成する必要があります。一方、ベースラインは機械学習アルゴリズムを使用します。機械学習を使用する主な利点は、実際に検知されたデータに応じてベースラインが時間の経過とともに変化し、過去の結果から学習できることです。
機械学習アルゴリズム(ヒューリスティックなど)は、異常ベースの侵入検知システムで使用されます。侵入検知システムは、ベースラインからの逸脱を探すという原則に基づいて機能します。
機械学習を使用する利点は、監視対象のネットワークに関する知識が必要になることはめったになく、予想されるトラフィック量を自動学習し異常を検知できることです。ただし、トラフィックが急激に増加した場合、ベースラインを用いた異常検知では、誤検知を検知します。この誤検知は、ベースラインが通信の増加にゆっくりと対応することで、いずれ発生しなくなる反面、特定の通信が徐々に増加するような攻撃が発生した場合、異常が検知されないという欠点になります。Slow Rate Attackなどの巧妙な攻撃手法では、この特性を利用し検知を回避されることがあります。
機械学習の問題(誤検知、暗号化されたトラフィック)
ベースラインの作成は、現実的には単純ではありません。今日では異常検知の機能を大幅に制限する問題がいくつか発生します。このセクションでは、最も重要な2つの問題について説明します。
誤検知の課題
正常なトラフィックと異常なトラフィックを正確に区別することは、容易ではありません。昨日までは通常のトラフィックだったかもしれませんが、明日は異常になるということが発生します。これは、ネットワークに問題(異常)があるかどうかに関係なく、送信されるデータが変化するためです。その為、検知はスコアを用いて実施されます。システムや手法によってその利用方法は異なりますが、基本的な考え方は同じです。検知された各イベントにはスコアが割り当てられ、このスコアが事前定義されたしきい値を超えると、異常としてマークされます。
異常を検知するためのしきい値は、検知の感度を決定します。感度が高すぎると、問題や異常がすぐに検知されますが、誤検知が増えるという犠牲が伴います。一方、感度が低い場合、誤検知の数は減少しますが、本来、検知すべき異常通信が発見できない可能性があります。
誤検知イベントの例としては、オペレーティングシステムの予期しない更新によって突然大量のデータが転送されたり、予期せず異常な数の顧客が同時に企業のオンラインショップに接続したりする場合があります。
一般的にネットワーク上のすべての異常を検知し、同時に誤検知を起こさないようにすることは不可能です。誤検知が問題となる理由はいくつかありますが、正当なトラフィックまたはサービスに問題があると識別され、そのアクティビティが制限される可能性があります。同時に、これらの異常を手動で処理および分析するには、膨大な時間と労力が必要です。
暗号化されたトラフィック監視への挑戦
ネットワーク内のプライバシーとセキュリティの理由から、データ暗号化は一般的となっています。データの暗号化により、監視と分析で処理できるデータの量が減少するため、暗号化された通信も異常の検知に悪影響を与えます。たとえば、暗号化された電子メール通信の監視では、暗号化されているためにメールアドレスを確認することはできません。
暗号化がどのレベルで行われているか、知ることが重要ですが、ほとんどの通信はアプリケーションレベルでのみ暗号化されます。つまり、IPアドレス、宛先ポートなどを用いて統計分析を実行できます。したがって、一般的に暗号化によって異常の検知が妨げられることはありませんが、検知可能な異常の種類が制限されます。この事実は攻撃者やさまざまなマルウェアスクリプトも認識しており、検知を回避するために暗号化された通信で活動を隠しています。
終わりに
Flowmon ADSでは、お客様の既存ネットワーク環境にほとんど影響を与えることなく、ネットワークを流れるデータから異常検知が可能です。ベースラインを用いたふるまい検知、ブラックリストを用いたシグネチャ検知により、有効なセキュリティ対策となるソリューションとして、ADSには今後も実践的な機能拡張が予定されています。
Flowmonについて、より詳しく知りたい方は、下記の資料をぜひご覧ください。
細かく相談されたい方は、こちらよりお気軽にお問い合わせください。
担当営業が直接Web会議ツールなどで製品のご案内をすることも可能ですので、お気軽にお申し付けください。
関連情報
コラム記事: ゼロトラストを支えるFlowmon
コラム記事: ランサムウエア検知でのADSのシナリオ
コラム記事: 模擬攻撃とFlowmonでの可視化事例
- お見積依頼、お問い合わせはこちらからどうぞ
- 03-6205-6082
- 平日AM9:00~17:30(土日、祝祭日、年末年始、および弊社が定める定休日を除く)