ハニーポット観察(その1)
WOWHoneypot観察
先日建てたWoWHoneypotを運用してから数日経ちました。
その間攻撃とみられる通信も色々と観測されていたので実際にいくつか解析と、解析環境の整備の進捗を書いて見ようと思います。
(環境の話とか前回ブログに書いた所とダブっていますが気にしないでください)
解析環境
ハニーポットに対してSSHでの接続がうまく行かなかったため(今度また原因を探るつもりですが)、初めはlessコマンドなどを駆使してアクセスログを確認していました。しかし、これではどうしても全てログを読まないといけないのでどのような攻撃がきているのかというのがぱっと見では分かりません。そのため、アクセスログを解析して、どこに対してのアクセスかやWOWHoneypotで定義されている不審な通信があった場合にはその統計をまとめる簡単なプログラムを作成しました。
github(https://github.com/teatime13/DecorateHoneypotLog)
このプログラムを簡単に説明すると、アクセスログのファイルを取ってきてそれをログごとに区切り表示する部分と、base64でエンコードされている部分をデコードして表示する部分、統計情報をまとめて表示する部分からできています。とりあえず自分用に作ったものなのでパスとかは固定されていますが、これをもう少し再利用性が高いプログラムにするためにもこの辺りもいつか書き直せたらとは思っています。
また、最近オブジェクト指向を勉強していたので綺麗な書き方したかったのですが…あんまり上手い事行ってないですね(笑)。テンプレートメソッドの書き方個人的にすごい綺麗で好きなのでこの書き方できたらとは思ったのですが実際に書こうとすると難しかったです。
とりあえず、このプログラムを拡張しながら使用していってしばらくはやっていこうと思います。kibanaなども導入しようかなとは思っているのですがそのためのサーバをとかなるとまた金銭的なコストがかかるので、現在運用しているハニーポットは一台だけですししばらくはこのままいこうかと思っております。(最低でもSlackとの連携はしたいですが)
観測された攻撃ログ
ログには不審な通信が何件もありましたのでせっかくなので紹介しようと思います。
WOWHoneypot側で不審な通信と検知された件数は以下のようになってます。
この数字がそれぞれ定義されている不審な通信の番号を表しています。(Falseは未定義)それぞれの番号と通信の対応が以下のようになってます。
- 1001:Login request sample(GET) /loginへのアクセス
- 1003:HEAD method HEADリクエストメソッドによる通信
- 1004:OPTIONS method OPTIONSリクエストメソッドによる通信
- 1006:access to robots.txt /robots.txtに対するアクセス
参考(https://github.com/morihisa/WOWHoneypot/blob/master/art/mrrules.xml)
定義されている不審な通信としてはtomcatに対するリクエストやapacheに対するリクエストなどもあるのですが、この統計をみるとそれらの通信が行われていないことが分かります。
では統計情報にないからそれらの通信が行われていないのかというとそうではありません。定義されている不審な通信はデフォルトのまま使っているため基本的な不審な通信は定義されているのですが、脆弱性に対する攻撃というのはあまり定義されていないため捉えることができません。そのため、次はアクセス先の情報より不審な通信を探します。
アクセス先を確認していくと「/TP/public/index.php?s=capcha」といった不審な通信があることが確認できました。
この通信が一体何なのかというのを軽く調べてみると、このTPというのはThinkPHPという中国で開発されているフレームワークであり、コマンド実行の脆弱性があるということが分かります。
ExploitDBを確認するとすでにPoCが出ていました。
https://www.exploit-db.com/exploits/46150
このPoCを確認すると、上の二つ目の通信と似た通信が流れているのでこの脆弱性を攻撃する通信だというのが分かりました。
まとめ
こんな感じでしばらくは数日に一回くらいはのぞいてハニーポット観察を続けていけたらと思います。それと並行して長く続けられるように解析環境の整備というのも行なって行きたいと思います。