 
ステートフル型のトラフィック監視ツールとDNSの監視例 
水谷正慶(@m_mizutani)
自己紹介 
 水谷正慶(@m_mizutani) 
 Background 
 Specialty: Network monitoring, IDS/IPS, anti-malware 
 Snort, libpcap, malwareと付き合い続けた学生時代 
 Favorite: Online gaming (World of Warcraft, Starcraft, 
etc) 
 Current Job: Research staff, IBM Japan 
 Could, Cyber Security 
 Related to SIEM, SOC, Cloud products, etc
はじめに 
 ネットワーク監視でリッチな情報がとりたい 
 MRTGだと流量など以外の情報がおえない 
 nflowでもかなりの情報が落ちてしまう 
 フルダンプしておくのも結構つらい(と思う) 
 パケットという単語から文脈に直して読みたい 
 パケット単位ならいろいろある 
 例:Dsc: A DNS Statistics Collector 
 目的 
 ネットワークのデバッグ 
 セキュリティフォレンジクス
Devourer 
 ステートフルな情報を持つパケット監視ツール 
 Devourer【名詞】がつがつと、または貪欲に食 
べる人(Weblio http://ejje.weblio.jp/content/devourer より) 
 ステートフルな情報を保持:セッション、フ 
ロー、キャッシュ、トランザクション、etc 
 今のところDNSのトランザクションのみ監視 
 開発 
 Github: https://github.com/m-mizutani/devourer 
 C++ & libpcap, libev, msgpack (output to fluentd)
構成例 
Devourer 
(packet 
monitor) 
Port 
mirroring 
Fluentd 
Influxdb 
TCP 
Saving records 
Grafana 
Web b rowser 
Network traffic 
Administrator 
http://qiita.com/m_mizutani/items/af30b87721a70d5290fa
できること 
 DNSクエリの応答時間が取得できる 
 DNSサーバのデバッグ 
 DNSクエリがどこで遅延しているかの特定 
 クエリのタイムアウト数のカウント 
 クエリがない応答の発見 
 キャッシュポイゾニング攻撃の検知 
 (ステート関係ないけど)問い合わせ結果ログ 
 問い合わせ名、レコード種別、問い合わせ結果 
 フォレンジクス、問い合わせ名のトレース
DNSクエリの応答時間をグラフ化 
 100ms未満、1000ms未満、1000ms以上で分類 
 そこそこ1000ms以上かかっているクエリもある 
自宅ネットワークより
クエリの結果をグラフ化 
 Status毎にグラフ化 
 Success: 同一セッション+トランザクションIDで返答あり 
 Timeout: タイムアウト(現在は60秒設定) 
 Miss: 観測されていないクエリに対する応答 
http://ictf.cs.ucsb.edu/data/ictf2010/ictf2010pcap.tar.gz より
Available on Elasticsearch + Kibana 
 Fluentdのモジュールを追加して宛先を増やせばいいだけ 
 モニタリングだけではなく調査やデバッグもやりたいな 
らこちらの組み合わせのほうが便利
Performance 
 実験環境 
 i7 2.3GHz / SSDディスクより読み込み 
 DNSパケットのみの場合 
 約85,000 pps 
 通常パケットも含むトラフィックの場合 
 約923,000 pps, 約3.284Gbps 
 http://ictf.cs.ucsb.edu/data/ictf2010/ictf2010pcap.t 
ar.gz の一部で計測 
 DNSパケットは全体の約6.8%
今後できそうなこと 
 以下のような値を取れるようになる見込み 
 フロー毎のIPフラグメンテーション数 
 TCPセッションのlatency(segmentとackの組み合 
わせによる) 
 TCPセッションのpacket loss rate(ackの再送を利 
用) 
 httpのリクエストと応答の組合せ 
 httpsで使われているcipher suiteの種類
ご清聴ありがとうございました 
 ご意見歓迎です 
 そういうツールはもうあるよ! 
 そういう目的では使わないよ! 
 こういう目的だったら使えるかも!

ステートフル型のトラフィック監視ツールとDNSの監視例

  • 1.
  • 2.
    自己紹介  水谷正慶(@m_mizutani)  Background  Specialty: Network monitoring, IDS/IPS, anti-malware  Snort, libpcap, malwareと付き合い続けた学生時代  Favorite: Online gaming (World of Warcraft, Starcraft, etc)  Current Job: Research staff, IBM Japan  Could, Cyber Security  Related to SIEM, SOC, Cloud products, etc
  • 3.
    はじめに  ネットワーク監視でリッチな情報がとりたい  MRTGだと流量など以外の情報がおえない  nflowでもかなりの情報が落ちてしまう  フルダンプしておくのも結構つらい(と思う)  パケットという単語から文脈に直して読みたい  パケット単位ならいろいろある  例:Dsc: A DNS Statistics Collector  目的  ネットワークのデバッグ  セキュリティフォレンジクス
  • 4.
    Devourer  ステートフルな情報を持つパケット監視ツール  Devourer【名詞】がつがつと、または貪欲に食 べる人(Weblio http://ejje.weblio.jp/content/devourer より)  ステートフルな情報を保持:セッション、フ ロー、キャッシュ、トランザクション、etc  今のところDNSのトランザクションのみ監視  開発  Github: https://github.com/m-mizutani/devourer  C++ & libpcap, libev, msgpack (output to fluentd)
  • 5.
    構成例 Devourer (packet monitor) Port mirroring Fluentd Influxdb TCP Saving records Grafana Web b rowser Network traffic Administrator http://qiita.com/m_mizutani/items/af30b87721a70d5290fa
  • 6.
    できること  DNSクエリの応答時間が取得できる  DNSサーバのデバッグ  DNSクエリがどこで遅延しているかの特定  クエリのタイムアウト数のカウント  クエリがない応答の発見  キャッシュポイゾニング攻撃の検知  (ステート関係ないけど)問い合わせ結果ログ  問い合わせ名、レコード種別、問い合わせ結果  フォレンジクス、問い合わせ名のトレース
  • 7.
    DNSクエリの応答時間をグラフ化  100ms未満、1000ms未満、1000ms以上で分類  そこそこ1000ms以上かかっているクエリもある 自宅ネットワークより
  • 8.
    クエリの結果をグラフ化  Status毎にグラフ化  Success: 同一セッション+トランザクションIDで返答あり  Timeout: タイムアウト(現在は60秒設定)  Miss: 観測されていないクエリに対する応答 http://ictf.cs.ucsb.edu/data/ictf2010/ictf2010pcap.tar.gz より
  • 9.
    Available on Elasticsearch+ Kibana  Fluentdのモジュールを追加して宛先を増やせばいいだけ  モニタリングだけではなく調査やデバッグもやりたいな らこちらの組み合わせのほうが便利
  • 10.
    Performance  実験環境  i7 2.3GHz / SSDディスクより読み込み  DNSパケットのみの場合  約85,000 pps  通常パケットも含むトラフィックの場合  約923,000 pps, 約3.284Gbps  http://ictf.cs.ucsb.edu/data/ictf2010/ictf2010pcap.t ar.gz の一部で計測  DNSパケットは全体の約6.8%
  • 11.
    今後できそうなこと  以下のような値を取れるようになる見込み  フロー毎のIPフラグメンテーション数  TCPセッションのlatency(segmentとackの組み合 わせによる)  TCPセッションのpacket loss rate(ackの再送を利 用)  httpのリクエストと応答の組合せ  httpsで使われているcipher suiteの種類
  • 12.
    ご清聴ありがとうございました  ご意見歓迎です  そういうツールはもうあるよ!  そういう目的では使わないよ!  こういう目的だったら使えるかも!