sonickun.log

備忘録

パケット解析ツール"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笑