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