パケットキャプチャ術で秘密もちょっぴりこぼれた?:セキュリティ・ダークナイト(4)(4/5 ページ)
Wiresharkのコマンドライン版「tshark」で知る、平文通信の危険性。膨大なログから狙った1行を検索するテクニック、身をもって体験せよ!(編集部)
フィルタしてみよう
ここからは、Wireshark Display Filterについて話を進めていこう。といっても、公式サイトの「Display Filter Reference」を見て分かるように、Wiresharkには相当の数のフィルタが存在している。そのため今回は「これだけは覚えるべし!」というフィルタのみを紹介しよう。
それでは、フィルタの演算子から紹介しよう。フィルタに使える比較演算子は下記のようなものがある。
演算子 | 説明 |
---|---|
eq == |
等しい(Equal) |
ne != |
等しくない(Not Equal) |
gt > |
右辺より大きい(Greater Than) |
lt < |
右辺より小さい(Less Than) |
ge >= |
右辺より大きい、もしくは、等しい(Greater than or Equal to) |
le <= |
右辺より小さい、もしくは等しい(Less than or Equal to) |
例えば、IPアドレス(IPv4)「192.168.0.1」が送信先になっている通信にマッチさせたい場合は、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
や、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と記述することが可能である。また、逆に送信先に「192.168.0.0」のネットワークを含まないといった場合には、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
や、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と記述することで可能である。
また、前述したように単一のフィルタでは事足りない場合もあるだろう。その際には、論理演算子を用いて条件を指定することが可能である。使用可能な論理演算子は以下の通りである。
演算子 | 説明 |
---|---|
and && |
論理積 |
or || |
論理和 |
not ! |
否定 |
例えば、IPアドレス(IPv4表記)「192.168.0.1」が送信元、「かつ」送信先ポートがtcp/22(ssh)の通信をマッチさせたい場合は、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
や、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と記述することが可能である。
また、IPアドレス(IPv4表記)「192.168.0.1」「または」「192.168.0.2」が送信元になっている通信をマッチさせたい場合は、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
や、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と記述できる。
次に、筆者が考える「これだけは!」というフィルタを紹介しておこう。
- ip.addr
IPアドレス(v4)を指定。送信元、送信先限らず指定したIPアドレスが通信に含まれていた場合にマッチする。 - ip.dst
IPアドレス(v4)を指定。指定したIPアドレスが通信内の送信先に含まれている場合にマッチする。 - ip.src
IPアドレス(v4)を指定。指定したIPアドレスが通信内の送信元に含まれている場合にマッチする。 - ip.host
ホストアドレスを指定。送信元、送信先限らず通信に指定したホストアドレスが含まれていた場合にマッチする。 - ip.dst_host
ホストアドレスを指定。指定したホストアドレスが通信内の送信先に含まれている場合にマッチする - ip.src_host
ホストアドレスを指定。指定したホストアドレスが通信内の送信元に含まれている場合にマッチする
上記、[ip]の部分を[ipv6]とすることでIPv6通信に対応できる。
- tcp
TCP通信すべてにマッチする。 - tcp.port
ポート番号を指定。送信元、送信先限らず指定したポート番号が通信に含まれていた場合にマッチする - tcp.dstport
ポート番号を指定。指定したポート番号が送信先ポートである場合にマッチする - tcp.scrport
ポート番号を指定。指定したポート番号が送信元ポートである場合にマッチする。
上記[tcp]の部分を[udp]とすることで、同内容でudp通信に対応可能である。
- tcp.flags.[FLAG]
[FLAFGS]部分に[ack][cwr][ecn][fin][push][reset][syn]を指定可能。1または0の値を指定することで含む含まないをマッチさせることが可能である。
例えば、SYN/ACKとビットがセットされている通信にマッチさせたい場合は以下のように記述することが可能である。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
- [対応プロトコル名]
tcp、udp、icmpやarp、dns、httpなどプロトコル名のみでのフィルタリングも可能である。「http」とすることでhttpのみを表示したり、「
!arp and !dns」とすることでARP、DNSの通信を表示させないといったことも可能である。
また、いくつかのフィルタについてのチートシートも公開されているので、印刷してデスクに貼っておくのもよいだろう。
フィルタで遊んでみる
では、問題を解いてみよう。
上記ファイルは、とある通信を保存したものである。通信の内容には、認証情報が含まれている。正しい認証情報のIDとパスワードを、tsharkのみで見つけ出してほしい。
記事中で紹介したフィルタのみでは見つけ出すことは困難であるため「Display Filter Reference」を適宜参照してほしい。
Copyright © ITmedia, Inc. All Rights Reserved.