ntpのmonlist機能の脆弱性を使ったDDoS攻撃が多発しているようですが、monlistって何ですか?って感じなので、ちょっと通信を確認してみました。
ちなみにCVE番号は CVE-2013-5211 です。
手持ちの環境でmonlistに答えてくれたNTPサーバがあったので、その出力を貼りますね。
$ ntpdc -nc monlist 10.123.1.253
remote address port local address count m ver code avgint lstint
===============================================================================
10.123.7.30 35585 10.123.1.253 675 7 2 0 756 0
10.123.76.32 123 10.123.1.253 683 3 4 0 1024 0
10.123.39.49 123 10.123.1.253 982 3 4 0 1008 0
10.123.38.40 123 10.123.1.253 672 3 4 0 1024 3
10.123.3.83 123 10.123.1.253 1269 3 4 0 108 5
10.123.3.80 123 10.123.1.253 1148 3 4 0 1036 15
10.123.1.174 123 10.123.1.253 664 3 4 0 1051 22
10.123.12.30 123 10.123.1.253 672 3 4 0 1024 22
10.123.12.32 123 10.123.1.253 673 3 4 0 1024 24
10.123.19.100 123 10.123.1.253 672 3 4 0 1024 25
~~省略~~
10.123.19.126 123 10.123.1.253 2 3 3 0 2 429635
10.123.1.233 123 10.123.1.253 94 3 4 0 1050 589670
10.123.12.130 123 10.123.1.253 60 3 4 0 120 592082
127.0.0.1 14702 127.0.0.1 5 6 2 0 0 686994
$
###(゚д゚)!!
ntpdcコマンドでmonlistのクエリ投げると、出るわ出るわで、なんと300行超の結果が返ってきました。
時刻同期の問い合わせをしたクライアントのIPアドレスが全て返るようですね。
tcpdumpでパケットも覗いてみましたよ。
$ tcpdump -nX -r /tmp/todaemon.cap | less
09:28:02.148284 IP 10.123.7.30.44164 > 10.123.1.253.ntp: NTPv2, Reserved, length 192
0x0000: 4500 00dc 0929 4000 4011 11f6 0a7b 071e E....)@.@.......
0x0010: 0a7b 01fd ac84 007b 00c8 1fcc 1700 032a .......{.......*
0x0020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0090: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00d0: 0000 0000 0000 0000 0000 0000 ............
09:28:02.149852 IP 10.123.1.253.ntp > 10.123.7.30.44164: NTPv2, Reserved, length 440
0x0000: 4500 01d4 8648 0000 3f11 d4de 0a7b 01fd E....H..?.......
0x0010: 0a7b 071e 007b ac84 01c0 5779 d700 032a .....{....Wy...*
0x0020: 0006 0048 0000 0268 0000 0000 0000 0000 ...H...h........
0x0030: 0000 02a5 0a7b 071e 0a7b 01fd 0000 0001 ................
0x0040: ac84 0702 0000 0000 0000 0000 0000 0000 ................
0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0060: 0000 0000 0000 0000 0000 0000 0000 03eb ................
~~省略~~
出力が多くて省略してますがが、問い合わせはわずか192byteなのに、応答は440byte x 39回 = 17160byte も返っておりました。
こりゃ、増幅効果が高い通信ですね。
UDPなので送信元を詐称しやすいという話もあって、そこはどうすればいいのかよくわかりませんが、偽装された送信元アドレスに、大量のUDPパケットを送りつけるには都合のいい機能ってのがよくわかりますね。
ではでは。