ルータ、スイッチで構成されたネットワーク基盤上を流れるトラフィックのパターンを「フロー」として識別し、フローごとに流量を測定する NetFlow という技術があります。以前はハイエンド機種での実装が中心でしたが、近年では、Cisco 800 シリーズのようなローエンド ルータや、Cisco Catalyst 3850/3650 シリーズあるいは Catalyst 2960-X シリーズ(一部機能制限あり)といった固定構成型の LAN スイッチでも、活用できるようになってきています。
パケットサンプリングより詳細、パケットキャプチャより軽量
NetFlow は、あらかじめ装置内部でフローキャッシュを作成し、余分な情報は取り除かれた状態でバイナリで出力されるため、パケットキャプチャ技術と比較すると解析もしやすく非常に軽量という特長があります。その一方で、全パケットを対象にキャッシュ化されることから、sFlow などのパケットサンプリング技術と比較すると抜けがないという強みもあります。(sFlow では、4000 分の 1、1000 分の 1 といったサンプリング レートを利用するのが一般的ですが、NetFlow では 1 分の 1 がデフォルトです。)
この「ノンサンプリング」という特性のため、傾向を把握するというよりも、セキュリティ用途やログのトレーサビリティという観点から、最近になって改めて注目されている技術です。
フローコレクターいろいろ
NetFlow を利用するには、NetFlow Export パケットを情報元としてその内容を表現する側の「コレクター&アナライザ」が必要です。シスコ製品以外にも、多くのテクノロジーパートナー様やオープンソースのツールがありますので、いろいろ試して一喜一憂するのも、ネットワーク エンジニアとしては楽しいものです。もちろん、値段もピンからキリまであります!
情報元は同じなのに、表現方法がツールによって全く異なることがあります。さらに、コンテクスト情報サーバなどと連携させることで、通信の可視化という横軸方向の展開にとどまらず、ユーザや端末といった情報も収集でき、縦軸方向にも活用方法が拡がっていきます。これも、とても興味深いことです。
すでに NetFlow は汎用的に使えるレベルに達しており、ネットワーク管理プロトコルの観点からも、Syslog、SNMP、CLI/Telnet/SSH に加えて NetFlow も標準的に活用すべきです。
NetFlow 情報から異常な通信を可視化
ここからは、私が気に入っている NetFlow コレクターの 1 つである「Flowmon ADS(Anomaly Detection System)」を紹介します。この製品は、単にフローを可視化するだけではなく、ネットワーク フローをパターン照会することで、その名のとおり「異常な通信を検出」してくれるツールなのです。
ADSのダッシュボード 1:
ダッシュボードのグラフは、縦軸で流量を表しています。かつ、その内訳を 優先度(高)・優先度(中)・優先度(低)・正常なトラフィック に分類で色分けされて表示するので、その割合が一目で分かります。
さらに優先度と検出の多いイベントタイプについて、何が異常か?どの端末がどのようなトラフィックを出しているか?が表示され、クリックして内容を掘り下げて調査していくことができます。
ADS のダッシュボード 2:
明らかに怪しいトラフィックを送出している端末を見つけたときには、右クリックでイベントの詳細を表示できます。過去にも同様のトラフィックを出していたかなど、検出されたイベントを掘り下げて見ることができます。
ADS で検出したイベントの詳細を掘り下げ:
怪しい端末に絞って、指定期間内に検出された異常パターンをすべてフィルターして表示できます。この例では、ポートスキャンや Telnet 総当たり、一定の流量を常時送信するなど、通常のユーザ端末の通信パターンにはないような条件を指定して表示させています。
ADS がもつ異常検出のパターン:
技術者であれば、ADSがいったいどのような条件で「通信の異常」を判断しているのか、気になるところでしょう。この製品の場合、条件が設定として公開されており、1 つずつ詳細を確認していくことができます。設定されている条件には、DNS traffic anomaly、Web form authentication attack、Port Scanning、RDP attack、Telnet anomaly などがあり、個別のパラメータが複数紐付いていて、それぞれに閾値が設定されています。
実は、これらのパターンはそれほど多くの種類があるわけではありません。「ネットワークのトラフィック異常検出ルール」としては、きわめて原始的な(?)マッチングとも見えますが、NetFlow を利用することで、それらをプローブなしに自動化でやってしまうところが面白いところですね。
まとめ
今回は、NetFlow データを収集・蓄積・解析することによって、単純な可視化を行うだけでなく、「異常検知」を行うコレクターを紹介しました。これは、専用のセキュリティ製品やアプライアンスが配置された「境界」とは異なり、LAN や WAN といった区別もなく利用できます。境界についてはセキュリティ対策がされていたとしても、LAN 内部はまだまだ可視化が進まず、適切に管理されてないというネットワークも少なくありません。LAN 全体でNetFlow を活用して可視化を標準化することによって、内部犯行の通信フローが記録され、自動で犯罪を特定される可能性だってあります。
一人のユーザとしては、LAN で行った通信がすべて記録されるというのは何とも苦しい気がしないでもありません。しかし管理者の立場からすれば、非常にパワフルなツールであることは間違いありません!
他にも、強力で非常に興味深いフローコレクターが、日本でも身近になってきています。また別の機会に、他のソフトウェアも紹介したいと思います。
参考資料
- ネットワークの可視化を始めるには
http://gblogs.cisco.com/jp/2013/04/introduction-of-network-visibility/ - JANOG36 Meeting xFlowチュートリアル
https://www.janog.gr.jp/meeting/janog36/program/xflow - Network as a Sensor
http://www.cisco.com/web/JP/solution/security/enterprise-network-security/net-sensor.html - Flowmon ADS(オリゾンシステムズ様)
http://www.orizon.co.jp/products/flowmon/ads.html