パケット解析ツール"Corsaro"のインストール
"Corsaro"(コルサロ)はネットワーク解析で世界的に有名な"CAIDA"という組織によって提供されているパケット解析ツールです。CAIDAのホームページはこちら。
Corsaroの機能はいくつかありますが、その中でメインとなるのが、pcap形式やdmp形式のパケットデータをflowtupleという形式のデータに整形してくれる機能で、大量のトレースデータを解析するのに有効です。
flowtupleのフォーマットは次のようなものです。
START <class_name> <key_cnt> <src_ip>|<dst_ip>|<src_port>|<dst_port>|<protocol>|<tcp_flags>|<ttl>|<ip_len>,<value> END <class_name>
これにより、パケット分析がより容易になります。他にも似た機能を持つツールとして、tshark、p0fなどがあります。
Corsaroの公式のマニュアルはありますが、日本語で書かれたマニュアルが見つからなかったので、Corsaroのインストールからflowtupleファイル形成までの手順を書いていこうと思います。今回は基本的な機能が使える"Quick Start"の方法を紹介します。
ちなみに今回使用したOSはMac OS X 10.8.3です。
まず、Corsaroとlibtraceの2つのファイルをダウンロードします。
Corsaroダウンロードリンク:http://www.caida.org/tools/measurement/corsaro/
libtraceダウンロードリンク:http://research.wand.net.nz/software/libtrace.php
今回は「corsaro-2.1.0.tar.gz」と「libtrace-3.0.19.tar.bz2」というファイルをダウンロードしました。
次に、libtraceに関して以下のコマンドを実行します。バージョンは適宜変更してください。その前にC++コンパイラなど基本的なソフトが入っている必要があります。
$ tar jxf libtrace-3.0.19.tar.bz2 $ cd libtrace-3.0.19 $ ./configure --prefix=$HOME/corsaro $ make $ make install
もし、3行目のコマンドの実行の段階で、"libpcap0.8"が必要だと言われたら次のコマンドを実行してください。
$ sudo apt-get install libpcap0.8-dev
次にCorsaroに関して次のコマンドを実行します。
$ tar zxf corsaro-2.0.0.tar.gz $ cd corsaro-2.0.0 $ ./configure CPPFLAGS="-I$HOME/corsaro/include" LDFLAGS="-L$HOME/corsaro/lib" $ make $ make install
これでcorsaroコマンドが実行できるようになります。オプションに何も付けないで実行すると、以下の様なマニュアルが表示されます。
$ corsaro
usage: corsaro [-alP] -o outfile [-i interval] [-m mode] [-n name]
[-p plugin] [-f filter] [-r intervals] trace_uri [trace_uri...]
-a align the end time of the first interval
-o <outfile> use <outfile> as a template for file names.
- %P => plugin name
- %N => monitor name
- see man strftime(3) for more options
-f <filter> BPF filter to apply to packets
-i <interval> distribution interval in seconds (default: 60)
-l the input file has legacy intervals (FlowTuple only)
-m <mode> output in 'ascii' or 'binary'. (default: binary)
-n <name> monitor name (default: gibi.caida.org)
-p <plugin> enable the given plugin, -p can be used multiple times (default: all)
available plugins:
- flowtuple
use -p "<plugin_name> -?" to see plugin options
-P enable promiscuous mode on the input (if supported)
-r rotate output files after n intervals
-R rotate corsaro meta files after n intervals 最後にCorsaroを使ってFlowtupleファイルを生成してみます。
"$ corsaro -o 出力ファイル 入力ファイル"で実行できます。
例
$ corsaro -o /path/to/output/file.%P.cors.gz /path/to/pcap/file.pcap.gz
これにより、「file.flowtuple.cors.gz」が生成されました。
ただ、今回Mac OSを使いましたが、64bitのUbuntu14と32bitのkaliで試すとうまくいきませんでした。具体的には、どちらもcorsaroコマンドをたたくと
"corsaro: error while loading shared libraries: libcorsaro.so.1: cannot open shared object file: No such file or directory"
というエラーが出てしまします。どうやらインストールの段階で"libcorsaro.so.1"というファイルが生成されていないようです。どなたかこの解決方法が分かるかたら教えて下さいm(__)m笑