ネットワークトラフィック 可視化システムの開発

ネットワークトラフィック
可視化システムの開発
ISC B3 kominu
親:武⽥田教授
1
コンセプト
•  ネットワークの⼤大規模化・複雑化
–  状態の把握が困難に
•  既存のツール
–  Tcpdump
–  Wireshark
→ずっと⽂文字を眺める必要がある
直感的に状態を把握したい!
2
研究⽬目的
•  ネットワークトラフィックを監視すること
で通信の異異常を検知する
•  直感的な状況把握を可能とし、ネット
ワーク監視のコストを軽減させる
3
関連研究
「実ネットワークトラフィック可視化システム
NIRVANAの開発と評価」
鈴鈴⽊木宏栄、衛藤将史、井上⼤大介
•  既存の通信可視化システムでは最も有名
•  ベースはnicterの世界地図攻撃可視化システム
Atlas
•  世界地図に加え背景画像を⾃自作しマッピング可
•  パケットの⾊色分けはプロトコルとそのフラグ毎
•  マウスクリックによって詳細情報を表⽰示できる
4
ネットワーク可視化⼿手法
•  3次元空間表⽰示
–  軸を⾃自由に設定できる
–  状態の把握に特化した表現
•  世界地図表⽰示
–  通信先の国まで把握できる
–  トラフィックの地域性を知ることが出来る
鈴鈴⽊木和也、⾺馬場俊介、和⽥田英彦、中尾康⼆二、⾼高倉弘喜、岡部寿男, “迅速な障害対応
を⽀支援するトラフィック可視化システムの構築と評価”
5
⼿手法
•  キャプチャ部:C++ / libpcap
–  キャプチャ結果をUDPで可視化プログラムに送信
•  可視化部:Processing
–  3次元空間表⽰示を選択
–  UDPで送られてきたキャプチャ結果を可視化
–  リアルタイム且つリモートな通信可視化が可能に
–  3Dアニメーションで実際の流流れを再現
6
実装
パケットキャプチャプログラム
•  実⾏行行環境:Amazon Linux
•  ⾔言語:C++
•  パケットキャプチャ:libpcap
送信元、送信先のIPアドレスとポート番号、プロトコル、
経過時間をUDPでクライアントに送りつづける
7
実装
可視化プログラム
•  実⾏行行環境:Mac OS X
•  ⾔言語:Processing version2.2.1
•  ライブラリ:OpenGL, hypernet.media
UDPで受け取ったキャプチャ結果を配列列に格納し、経過時
間をもとにリアルタイムに可視化
OpenGLライブラリを⽤用いて3Dアニメーションで再現する
8
可視化について①
•  3次元空間表現
–  3次元空間上での3Dアニメーション
•  描画する情報
–  IPアドレス
–  ポート番号
–  プロトコル
–  経過時間
–  ⽅方向(送信、受信)
9
可視化について②
•  情報を割り当てられる要素
1.  座標
2.  ⾊色
← IPアドレス、ポート番号、プロトコル
3.  向き(送信か受信か)
4.  ⽂文字(経過時間、補⾜足)
•  パケットの持つ情報を各要素に割り当て、状態
の把握を促す
10
可視化について③
•  実験も兼ねて5つの表現⽅方法を⽤用意した
モード
座標
⾊色
次元
1
IPアドレス(SV, CL)
プロトコル
3D
2
IPアドレス(SV, CL)
ポート番号
3D
3
IPアドレス(CL), ポート番号(SV)
プロトコル
3D
4
IPアドレス(CL), ポート番号(SV)
ポート番号
3D
5
IPアドレス(CL), ポート番号(SV)
ポート番号
2D
プロトコルによる⾊色分けの対象はTCP, UDP, ICMP
TCPはフラグによりさらに⾊色分け
11
プロトコル⾊色分け⼀一覧
•  TCP
–  SYN
–  SYN/ACK
–  ACK
–  RST
–  FIN
–  OTHER
•  UDP
•  ICMP
•  OTHERS
12
可視化について④
モード1、モード2
•  サーバを中⼼心としクライア
ントのIPアドレスを座標に
変換して周囲に割り振った
表現
•  図はサーバ上のwebページ
にアクセスした際の物であ
る
13
可視化について⑤
モード3、モード4
•  左側にクライアントのIPア
ドレス、右側にサーバの
ポート番号を割り振った表
現
•  こちらもサーバ上のweb
ページにアクセスした際の
物である
14
可視化について⑥
モード5
•  左側にクライアントのIP
アドレス、右側にサーバ
のポート番号を割り振っ
た表現
•  つまり、モード4を2Dで
表現したもの
•  シンプルだが、華やかさ
にかける
15
デモ
•  今から実際に可視化プログラムを動かし
ます。
–  http://kominu.com
–  ping kominu.com
–  など
•  悪さはしないでください
16
評価
•  評価実験
–  DoS攻撃やポートスキャンなどの異異常を含む
通信の様⼦子を可視化し、被験者に異異常だと感
じた時間を記録してもらった。またその異異常
を推測してもらった。
–  実験に際し、ポートスキャンにはnmap、
DoS攻撃にはhping3を使⽤用した
17
評価実験①
•  5⼈人の被験者を対象として評価実験を
⾏行行った。⽤用意したキャプチャデータに含
まれる異異常は以下のとおりである。
時間(秒)
攻撃内容
1
23〜~30
TCP connect scan
2
82〜~93
DoS (SYN Flood)
3
100〜~105
DoS (SYN Flood)
4
133〜~153
UDP port scan
5
168〜~178
TCP NULL port scan
6
247〜~255
DoS (SYN Flood (random source) )
7
260〜~279
DoS (SYN Flood (random source) )
18
評価実験②
•  実験結果は以下のようになった。
※被験者6が正しいデータ
19
評価実験③
•  異異常の内容推測
–  ほぼ全ての攻撃がDoSと推測されていた。
被験者1
被験者2
被験者3
1
DDoS
DoS
2
DoS
3
DoS
4
被験者5
正答
port scan
Unknown
port scan
DoS(F5)
Unknown
Unknown
DoS
Unknown
DoS
Unknown
DoS
Unknown
port scan
Unknown
port scan
Unknown
DoS
ManyUDP DoS
5
Unknown
Unknown
DoS
6
DDoS
DDoS
DoS
7
DDoS
被験者4
DoS
port scan
DoS
20
評価実験 考察
•  異異常の検知⾃自体は上⼿手くいく
–  直感的に異異常な通信を発⾒見見できている
•  異異常内容の判別精度度は低い
–  使⽤用者の知識識に依存
–  異異常ごとにサンプルをある程度度⽤用意すべき
–  システム側で判断して欲しいとの声も
21
模範解答
•  TCPのSYNとSYN/ACKが⼤大量量に⾏行行き来し
ていて、ACKがない
→TCP SYN Flood攻撃(DoS)
•  ⼀一つのクライアントから⼤大量量のポートに
アクセス
→ポートスキャン
•  random source
–  各パケットの送信元IPアドレスを偽装
–  DDoSとの⾒見見分けがつきづらい
22
異異常を可視化した様⼦子
DoS (SYN Flood)
ポートスキャン(TCP connect)
23
結果
•  完全にリアルタイム且つリモートな通信
可視化に成功した
•  DoS攻撃やポートスキャンの検知も可能で
あるが、知識識が必要
•  TCPのフラグ情報を含むプロトコルの⾊色分
けが状態把握には有効
24
まとめ
•  ネットワーク通信可視化システム
–  異異常検知
–  監視コストの軽減
•  3次元空間表現での3Dアニメーション
–  リアルタイムで可視化可能に
–  多様な軸の割り当てを実装
–  より直感的な把握が可能に
25