Cisco Japan Blog

“トラフィックのふるまい” を特定するための測定とは

1 min read



New Era of Networking におけるセキュリティ

シスコは、企業や組織に対応した「新しい時代のネットワーキングpopup_iconとして、ルールやポリシーの変更作業や、ネットワーク基盤で発生している問題やその影響範囲などを、直感的に実行把握できるインテントベース ネットワーキングを発表しました。その中では、変更と監視が連携した自動運転が強調されていますが、同時に、ネットワーク全体で脅威活動の検出と緩和も必須要件とされ、暗号化トラフィックを復号化せずに検出する ETA(Encrypted Traffic Analytics)機能が全体を囲むように位置づけられています。

このブログでは、以前に NetFlow 技術を使ってトラフィックの異常、すなわちセキュリティ インシデントを見つける取り組みを紹介しました(「ネットワーク内部を可視化し、異常検出を行うフローコレクター」)。その記事では、Flowmon Networks 社の製品を例に、可視化に加えてネットワーク全体のセキュリティ インシデント検知のメカニズムを紹介しましたが、暗号化トラフィックに特化した機能は含まれていませんでした。

今回は、「暗号化トラフィックを復号化せずに、どうやって見つけるの?」という素朴な疑問に対して、スイッチやルータの観点から、具体的に紹介したいと思います。メカニズムの詳細は、別のブログ「暗号化されたマルウェアトラフィックを復号化せずに検出」やホワイトペーパーでも詳しく紹介されていますので、そちらも併せて参照ください!

ETA をサポートする測定 = Flexible NetFlow の拡張

Cisco Catalyst 9300 の IOS-XE 16.6.1 のコンフィグガイド「Network Management Configuration Guide, Cisco IOS XE Everest 16.6.1 (Catalyst 9300 Switches) Chapter: Configuring Encrypted Traffic Analyticspopup_iconでは、既に設定や確認方法が参照できます。実は ETA の設定マニュアルは、ネットワーク管理ガイドの 1 つのチャプターになっています。興味深いですね。ETA の測定は、装置の内部で行われ、NetFlow プロトコルを使ってコレクターに送られる仕組みが採用されています。

設定は、ものすごくシンプルです。Flexible NetFlow の CLI ではなく、独自の形式で設定行数を減らしています。概要は、コレクターの IP アドレスやポート番号、Inactive Timer を設定し、インターフェイスごとに起動するというものです。

et-analytics
ip flow-export destination <Collector-IPAddress> 2055
inactive-timeout 10
!
interface GigabitEthernet1/0/1
switchport mode access
et-analytics enable

※動作確認しているIOS-XEは、以下のバージョンです。

Cat9300-1#show version | i bin
System image file is "flash:cat9k_iosxe.16.06.01.SPA.bin"

フローデータとして送信されるデータは、以下のコマンドで確認できます。SPLT(Sequence of Packet Length and Time)、IDP(Initial Data Packet)およびBD(Byte Distribution)のExport-IDが確認できます。

Cat9300-1#show flow exporter export-ids netflow-v9 | i 4494
ipv4 splt : 44941
ipv4 idp : 44940
ipv4 bd : 44944

ETA によるテレメトリ情報(フロー テンプレートとフロー データ)

さて、設定を行うと早速、NetFlow によってパケットが送信されてきます。実際には、NetFlow v9 を使って、2 つのテンプレートと、それに対応するデータが入っています。Wireshark は、ポート番号 2055 をフィルタしておくのがおすすめです。

それぞれのテンプレートとデータは、以下のとおりです。

まずは 40 バイト長の 44941、つまり SPLT(Sequence of Packet Lengths and Times)が、テンプレートとデータともに確認できます。

次に、1300 バイト長の 44940、つまり InitialDataPacket(IDP)も、テンプレートとデータともに確認できます。データ フロー セットの中身をみると、確かに 1300 バイト詰まってます。

SPLT(パケットの長さと時間の連続)の例

SPLT については、オープンソースで公開されているツール「Joy」を使って、実際に人間が見てわかりやすい形で表示できます。「SPLT = パケットの長さと時間の連続したもの」ということで、ポート番号 443 で暗号化された TLS 通信が、「普通らしい」のか「異常らしい」のかを判定するために、非常に有用なテレメトリ情報です。

※Joy(https://github.com/cisco/joy): ネットワーク フロー データやインフラフ ロー データのキャプチャと分析を行うためのパッケージ。ネットワーク研究、フォレンジックス、セキュリティ モニタリングが主な用途とされ、オープンソースで公開されている。

以下の 2 つは、宛先ポート番号 443 のフロー情報を Joy で可視化したものです。左から右に向かって時間が経過し、上半分が送信、下半分が受信、線の長さはそれぞれのパケット長を表しています。例 1 は、私のパソコンと適当なサーバとのウェブ通信、例 2 は TLSで暗号化された、とあるマルウェアのサンプルです。技術的な知識がある方でしたら、例 2 のようなポート 443 宛ての通信は「異常っぽい」と気になるのではないでしょうか?

例1) 私のパソコンと適当なサーバとのウェブ通信 例2) とある暗号化されたマルウェア

学習し続ける判定ロジックと、拡張されたネットワークテレメトリの連携

トラフィックのふるまいを見て、普通か異常か、を完璧に判定することは実際には非常に難しいのは、言うまでもありません。このブログでは SPLT を特に紹介しましたが、他にもさまざまな要素を掛け合わせていくことで、精度は高まります。また、判定するロジックが、これまでのオンプレミスに配置された静的な条件でのみ動作するのではなく、クラウドと連携することで、日々学習されている高い精度をもった判定ロジック(Classifier)を活用できるようになりました。

分析や高い精度での判定ロジックについては、これから各社各様に進化していく部分であると思いますが、ネットワーク基盤も、トラフィックのふるまいを可視化するための新しいテレメトリ情報を提供することで、新時代の脅威に対抗していこうとしています。IOS-XE16.6.1 は、まだその入り口にすぎませんが、非常に画期的なアプローチであることはご理解いただけたのではないでしょうか?是非、今後の機能拡張にもご注目ください!

まとめ

  • 装置内でのメータリングの拡張(SPLTなど)
  • 既存のプロトコルを使った送信(NetFlow v9/IPFIX)
  • クラウドで学習し続ける判定エンジンを採用

 

参考:

 

Authors

Kazumasa Ikuta

業務執行役員 プリンシパルアーキテクト

APJCアーキテクチャ

コメントを書く