概述
今天主要介紹一下NTP服務(wù)放大攻擊以及常用的檢測預(yù)防手段。
一、什么是NTP服務(wù)放大攻擊?
NTP放大攻擊是一種基于反射的體積分布式拒絕服務(wù)(DDoS)攻擊,其中攻擊者利用網(wǎng)絡(luò)時間協(xié)議(NTP)服務(wù)器功能,以便用一定數(shù)量的UDP流量壓倒目標(biāo)網(wǎng)絡(luò)或服務(wù)器,使常規(guī)流量無法訪問目標(biāo)及其周圍的基礎(chǔ)設(shè)施。
標(biāo)準NTP 服務(wù)提供了一個 monlist查詢功能,也被稱為MON_GETLIST,該功能主要用于監(jiān)控 NTP 服務(wù)器的服務(wù)狀況,當(dāng)用戶端向NTP服務(wù)提交monlist查詢時,NTP 服務(wù)器會向查詢端返回與NTP 服務(wù)器進行過時間同步的最后 600 個客戶端的 IP,響應(yīng)包按照每 6 個 IP 進行分割,最多有 100 個響應(yīng)包。由于NTP服務(wù)使用UDP協(xié)議,攻擊者可以偽造源發(fā)地址向NTP服務(wù)進行monlist查詢,這將導(dǎo)致NTP服務(wù)器向被偽造的目標(biāo)發(fā)送大量的UDP數(shù)據(jù)包,理論上這種惡意導(dǎo)向的攻擊流量可以放大到偽造查詢流量的100倍。
二、NTP放大攻擊四個步驟
攻擊者使用僵尸網(wǎng)絡(luò)將帶有欺騙IP地址的UDP數(shù)據(jù)包發(fā)送到啟用了monlist命令的NTP服務(wù)器。每個數(shù)據(jù)包上的欺騙IP地址指向受害者的真實IP地址。每個UDP數(shù)據(jù)包使用其monlist命令向NTP服務(wù)器發(fā)出請求,從而產(chǎn)生大量響應(yīng)。然后,服務(wù)器使用結(jié)果數(shù)據(jù)響應(yīng)欺騙地址。目標(biāo)的IP地址接收響應(yīng),周圍的網(wǎng)絡(luò)基礎(chǔ)設(shè)施因流量泛濫而變得不堪重負,導(dǎo)致拒絕服務(wù)。
由于攻擊流量看起來像來自有效服務(wù)器的合法流量,因此很難在不阻止真正NTP服務(wù)器合法活動的情況下減輕此類攻擊流量。由于UDP數(shù)據(jù)包不需要握手,因此NTP服務(wù)器將向目標(biāo)服務(wù)器發(fā)送大量響應(yīng),而不驗證請求是否可信。這些事實與內(nèi)置命令相結(jié)合,默認情況下發(fā)送大量響應(yīng),使NTP服務(wù)器成為DDoS放大攻擊的極好反射源。
三、如何查看是否遭受NTP放大攻擊?
如果網(wǎng)絡(luò)上檢測到大流量的UDP 123端口的數(shù)據(jù),就可以確認正在遭受此類攻擊。
四、如何防范NTP放大攻擊?
1、linux系統(tǒng)升級
將系統(tǒng)中的NTP服務(wù)升級到 ntpd 4.2.7p26 或之后的版本,因為 ntpd 4.2.7p26 版本后,服務(wù)默認是關(guān)閉monlist查詢功能的。
2、關(guān)閉現(xiàn)在 NTP 服務(wù)的 monlist 功能
在ntp.conf配置文件中增加(或修改)“disable monitor”選項,可以關(guān)閉現(xiàn)有NTP服務(wù)的monlist功能。修改并保存配置文件之后,重啟ntpd服務(wù)。
3、在網(wǎng)絡(luò)出口封禁 UDP 123 端口
在攻擊發(fā)生時,通過網(wǎng)絡(luò)設(shè)備的ACL丟棄UDP 123端口的數(shù)據(jù)包。
放大反射 Dos 攻擊由 CVE-2013-5211 所致。且這漏洞是與 molist 功能有關(guān)。ntpd 4.2.7p26 之前的版本都會去響應(yīng) NTP 中的 mode7 monlist 請求。ntpd-4.2.7p26 版本后, monlist 特性已經(jīng)被禁止,取而代之的是 mrulist 特性,使用 mode6 控制報文,并且實現(xiàn)了握手過程來阻止對第三方主機的放大攻擊。