www.morihi-soc.net

セキュリティの話題を中心に取扱中

Heartbleed用のハニーポットつくってみた

最近流行りの Heartbleed のハニーポットをつくってみました.

Heartpot (GitHub)

https://github.com/morihisa/heartpot

Heartbleed とは OpenSSLの脆弱性(CVE-2014-0160)に付けられた名前です.

特定のバージョンの OpenSSL にはメモリの内容が漏洩してしまう脆弱性があります.

 

PoC や Metasploit,NMAP のスクリプトなどなど,すでに多くの攻撃コードが公開されており,HTTPS のポートを開けていると,攻撃を受ける可能性があります.

ただこの攻撃を受けたとき,ほとんどの場合はログに残りません.(*1)

 

そこでログに残らないのなら,ハニーポットを立ててログを記録できるようにしたら面白いんじゃね?というのがきっかけで,Heartbleed 用のハニーポットをつくろうと決心しました.

しかしインターネットは広大なので,探してみると既にハニーポットを作られた方がいました.

Heartbleed Honeypot Script

こちらのハニーポットは Perl で書かれた1つのファイルで完結している,非常にシンプルなものです.

逆にシンプルすぎて,攻撃をしてきた送信元の IP アドレスしかわかりません.

 

そこで攻撃を受けた時間と送信元 IP アドレス,使用した SSL/TLS のプロトコルの種類,攻撃パケットに含まれるペイロードの中身を出力できるハニーポットを作成しました.ソースコードは GitHub で公開しています.

Heartpot

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

 

参考

The Heartbleed Bug

CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ

OpenSSLの脆弱性(CVE-2014-0160)関連の情報をまとめてみた

 

 

Written by morihisa

4月 13th, 2014 at 3:13 am