調べてみたところ、リフレクション攻撃というものらしいです。
分かりやすく簡単に説明すると
●●さんが、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偽装して検証はしてません。
せっかくなんでJPCERTの通達&さくらから届いた対策も載せておきます。
■対策方法の一例 ・ntpdの設定変更 ntp.conf 内に「restrict」を追加してアクセス制限を行う 「disable monitor」を追加して monlist 機能を無効にする [restrict の設定例] restrict default ignore restrict -6 default ignore restrict 127.0.0.1 restrict ntp1.sakura.ad.jp kod nomodify notrap nopeer noquery server ntp1.sakura.ad.jp ・NTPを使用されていない場合は、NTPの停止または削除
III. 対策 NTP Project から monlist 機能の一部を修正し、DDoS 攻撃の影響を低減さ せた開発版の ntpd が公開されています。ntpd を使用した NTP サーバを公開 している場合は、修正済みのバージョン以降の開発版の適用を検討してくださ い。 修正済みのバージョンは、以下のとおりです。 ntpd 4.2.7p26(開発版) また、開発版の適用が難しい場合は、以下の回避策の適用を検討してくださ い。 - ntpd の設定により、monlist 機能を無効にする ntp.conf に以下の1行を追加 disable monitor その他の回避策については、以下の CERT/CC の情報を参考にしてください。 CERT/CC Vulnerability Note VU#348126 NTP can be abused to amplify denial-of-service attack traffic https://www.kb.cert.org/vuls/id/348126
1月にJPCERTからRSSで流れてきたときにツイッターでもつぶやいたね。
つい3日前にITメディアで
400GbpsのDDoS攻撃発生、「NTP増幅」で過去最大規模に
なんて記事が出た。400Gbpsっていってもいまいちピンとこないから、単位を変えてみよう。
1Gbpsは2の30乗倍から400倍をすると、なんと4280億bpsらしい。
なんだかすごい感じはするけど、よけいにピンと来なくなってしまったな。