Heartbleed用のハニーポットつくってみた
最近流行りの Heartbleed のハニーポットをつくってみました.
Heartpot (GitHub)
https://github.com/morihisa/heartpot
Heartbleed とは OpenSSLの脆弱性(CVE-2014-0160)に付けられた名前です.
特定のバージョンの OpenSSL にはメモリの内容が漏洩してしまう脆弱性があります.
PoC や Metasploit,NMAP のスクリプトなどなど,すでに多くの攻撃コードが公開されており,HTTPS のポートを開けていると,攻撃を受ける可能性があります.
ただこの攻撃を受けたとき,ほとんどの場合はログに残りません.(*1)
そこでログに残らないのなら,ハニーポットを立ててログを記録できるようにしたら面白いんじゃね?というのがきっかけで,Heartbleed 用のハニーポットをつくろうと決心しました.
しかしインターネットは広大なので,探してみると既にハニーポットを作られた方がいました.
こちらのハニーポットは Perl で書かれた1つのファイルで完結している,非常にシンプルなものです.
逆にシンプルすぎて,攻撃をしてきた送信元の IP アドレスしかわかりません.
そこで攻撃を受けた時間と送信元 IP アドレス,使用した SSL/TLS のプロトコルの種類,攻撃パケットに含まれるペイロードの中身を出力できるハニーポットを作成しました.ソースコードは GitHub で公開しています.
Python で作っており,1つのファイルで完結しています.
ファイルをダウンロードし,443/tcp で動かすなら root 権限で実行すると,Heartbleed の攻撃を受けた際にログが表示されます.
出力ログサンプル
[2014-04-13 01:59:23],192.168.1.22,SSL,1803000003014000 [2014-04-13 01:59:28],192.168.1.22,TLS1.0,1803010003014000 [2014-04-13 01:59:33],192.168.1.22,TLS1.1,1803020003014000 [2014-04-13 01:59:38],192.168.1.22,TLS1.2,1803030003014000 |
使う人はいないと思いますが,せっかくなので公開してみました.
*1
nginx はパッチを適用すると,ログに残るようです.Patch Now: OpenSSL “Heartbleed” Vulnerability
参考
CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ
OpenSSLの脆弱性(CVE-2014-0160)関連の情報をまとめてみた