調べてみたところ、リフレクション攻撃というものらしいです。
分かりやすく簡単に説明すると
●●さんが、ntpサーバーに対して「私は▲▲だが、ちょっと教えてくれないか?」と尋ねると、ntpサーバーは▲▲に対して返事します。
そんな感じらしい、多分ね。いわゆる。
おれおれ詐欺みたいなものか。
話を戻して、ScientificとCentOSのデフォルトの設定では
restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery もしくは restrict default ignore restrict -6 default ignore
すべて拒否か無視してローカルだけ受け入れる設定で、ntpを入れた直後のデフォルトでこうなっていました。古いバージョンのものは分かりません。
この状態でmonlistを送ってみますと。
# ntpdc -c monlist 192.168.17.129 192.168.17.129: timed out, nothing received ***Request timed out # telnet 192.168.17.129 123 Trying 192.168.17.129... telnet: connect to address 192.168.17.129: Connection refused
タイムアウトします。んでもしもiptablesが動いてたらこうなります。
# ntpdc -c monlist 192.168.17.129 ntpdc: read: No route to host # telnet 192.168.17.129 123 Trying 192.168.17.129... telnet: connect to address 192.168.17.129: No route to host
ではでは、iptablesが動いておらず、ntp.confもデフォルトから変更して受け入れる設定に変えた場合ではこうなります。
# ntpdc -c monlist 192.168.17.129 remote address port local address count m ver rstr avgint lstint =============================================================================== ******* 123 192.168.17.129 1 4 4 0 0 0 ********** 123 192.168.17.129 1 4 4 0 1 1
ふつうに値を返しますな。
ただここまではあくまで普通の話でして、2進数の世界ではやろうとするなできると知れってのが普通らしいですし。
なにがあるか予測がつかないので、monlist無効にしてるのがいいと思う。
おれおれ詐欺がなぜできるかとなると、UDPなのでIP偽装ができるようです。
話は逸れるけど、TCPでもハーフクローズならIP偽装可能らしいでーってことで、それでsyn_floodという攻撃というのも存在している。
以前conntrack-toolを使って実験をやったが Established=>Destroy となってしまってうまくいかなかったのだけど、いくら大量のTCPの通信を普通にやってもうまくいかない訳だ。
なにわともあれ、monlistを無効にするのがよいぞと。
vim /etc/ntp.conf disable monitor //どこでもOK
monlist無効にしたサーバにデータ送信してみるとこうなります。データがないよ。
$ ntpdc -c monlist 192.168.17.129
***Server reports data not found
実際にIP偽装して検証はしてません。
つい3日前にITメディアで
400GbpsのDDoS攻撃発生、「NTP増幅」で過去最大規模に
なんて記事が出た。400Gbpsっていってもいまいちピンとこないから、単位を変えてみよう。
1Gbpsは2の30乗倍から400倍をすると、なんと4280億bpsらしい。
なんだかすごい感じはするけど、よけいにピンと来なくなってしまったな。