テキストフィルタ
- ipstringsの出力するテキストデータには暗号化された部分や画像などのバイナリデータから得られたほぼランダムな文字の羅列にしか見えないものがあり,あまり有用でないのでテキストとして人間が読める部分を抽出する.
- ランダム的なデータはHL`Rw ?"UcjQR=Bd[o5`[MV-pn&Tk+9-H;vvj+HD3X...というように小文字,大文字,記号などが入り乱れて現れあまり連続しない傾向がある.
- 連続する文字同士の遷移確率を推定することができればより正確になるが,動的に変動する確率を推定しながらフィルタするのは難しい.
- 大文字[A-Z],小文字[a-z],数字[0-9],繰り返しを許す記号および空白[ \$\%#*=-],と許さない記号[:;.,><()\[\]\\\/_]にグループ分けし遷移があればカウント.パケット長との比率を調べる.
- メールのMIMEパートのようにもともとランダム的なデータからテキスト化されたものが取りこぼされてしまうので,同時にアスキーテキストがパケット内部で占める比率を計算しある程度以上の値があれば抽出させることにする.
- 閾値はある程度ランダムな文字列が入っても許容することにし,文字グループの遷移が起る比率が55%以下,テキスト部分の比率40%以上のもののみを抽出することにする.
- ほぼ有用と思われるデータはグループ遷移比30%以下になっているがハッシュ値などが含まれる場合数値が高くなる.画像などのバイナリデータのテキスト比率は通常数%だが,テキストデータなどが埋め込まれている場合にはテキスト比率が高くなる.
- この閾値でフィルタするとbzip2圧縮後元の通信データの1/30程度になる.
- 例
比 | 遷移 | テキスト部分 | 備考 |
---|---|---|---|
76 | 9 | GET /activeupdate/japan/ows/ja_14/tmnotify.dat HTTP/1.1 User-Agent: TMhtload/14.10.1041 Accept: */* Host: vbuster-t.activeupdate.trendmicro.co.jp Connection: Keep-Alive |
ウイルスバスターのGETリクエスト |
15 | 33 | JFIFPhotoshop 3.08BIM7TJ 8BIM8BIMx8BIM8BIM8BIM'8BIM | 画像内のフォトショップのバージョン番号 |
73 | 6 | spf-ahotmailv=spf1 ip4:209.240.192.0/19 ip4:65.52.0.0/14 ip4:131.107.0.0/16 ip4:157.54.0.0/15 ip4:157.56.0.0/14 ip4:157.60.0.0/16 ip4:167.220.0.0/16 ip4:204.79.135.0/24 ip4:204.79.188.0/24 ip4:204.79.252.0/24 ip4:207.46.0.0/16 ip4:199.2.137.0/24 ~all |
DNSのTXTレコード |
38 | 19 | VeriSign Trust Network1VeriSign, Inc.1301* VeriSign International Server CA - Class 31I0G@www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign0 061222000000Z 081221235959Z0 California1Cupertino1 Apple Computer Inc.1Internet Services1301* Terms of use at www.verisign.com/rpa (c)001 idisk.mac.com0?0=0;5 http://crl.verisign.com/Class3InternationalServer.crl0D=0;090*0( https://www.verisign.com/rpa0((0&0$http://ocsp.verisign.com 0m[0Y0W0Uimage/gif0!0# http://logo.verisign.com/vslogo.gif0 $ 6N VeriSign, Inc.1705.Class 3 Public Primary Certification |
SSL通信の一部 |
96 | 55 | t3nA0EKfEQq9/z3aQwwTAFUaDrwg8WSH4Dyv... | GIF画像のMIMEパート |