NTPの脆弱性についてのお知らせが来た

調べてみたところ、リフレクション攻撃というものらしいです。

分かりやすく簡単に説明すると

●●さんが、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らしい。
なんだかすごい感じはするけど、よけいにピンと来なくなってしまったな。

 

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です