NTP服務放大攻擊的解決辦法

轉載:

什麼是NTP服務?

網絡時間協議NTP(Network Time Protocol)是用於互聯網中時間同步的標準互聯網協議。NTP服務器通過NTP服務向網絡上的計算機或其他設備提供標準的授時服務,以保證這些服務系統的時鐘能夠同步。通常NTP服務使用UDP 123端口提供標準服務。

什麼是NTP服務放大攻擊?

標準NTP 服務提供了一個 monlist查詢功能,也被稱爲MON_GETLIST,該功能主要用於監控 NTP 服務器的服務狀況,當用戶端向NTP服務提交monlist查詢時,NTP 服務器會向查詢端返回與NTP 服務器進行過時間同步的最後 600 個客戶端的 IP,響應包按照每 6 個 IP 進行分割,最多有 100 個響應包。由於NTP服務使用UDP協議,攻擊者可以僞造源發地址向NTP服務進行monlist查詢,這將導致NTP服務器向被僞造的目標發送大量的UDP數據包,理論上這種惡意導向的攻擊流量可以放大到僞造查詢流量的100倍。

如何查看是否遭受NTP放大攻擊?

如果網絡上檢測到大流量的UDP 123端口的數據,就可以確認正在遭受此類攻擊。

如何防範NTP放大攻擊?

1、linux系統升級辦法:

升級服務程序版本
將系統中的NTP服務升級到 ntpd 4.2.7p26 或之後的版本,因爲 ntpd 4.2.7p26 版本後,服務默認是關閉monlist查詢功能的。

關閉服務的monlist查詢功能:
首先查詢問題主機的REQ_MON_GETLIST和REQ_MON_GETLIST_1請求是否可用。具體操作方法:

ntpq -c rv<localhost/remotehost>
ntpdc -c sysinfo<localhost/remotehost>
ntpdc -n -c monlist<localhost/remotehost>

如果上述功能可用,可嘗試通過修改ntp.conf文件解決問題,具體操作建議是在上述配置文件中增加下面的配置:

IPV4: restrict default kod nomodify notrap nopeer noquery

IPv6: restrict -6 default kod nomodify notrap nopeer noquery

/允許發起時間同步的IP,與本服務器進行時間同步,但是不允許修改ntp服務信息,也不允許查詢服務器的狀態信息(如monlist)/

另外,還可以配置限制訪問命令,如:

restrict default noquery /*允許普通的請求者進行時間同步,但是不允許查詢ntp服務信息*/

修改並保存配置文件之後,請重啓ntpd服務。

2、windows系統的解決辦法:

在ntp.conf配置文件中增加(或修改)“disable monitor”選項,可以關閉現有NTP服務的monlist功能。修改並保存配置文件之後,請重啓ntpd服務。

3、網絡防範:

在攻擊發生時,通過網絡設備的ACL丟棄UDP 123端口的數據包。

參考信息:

[1] http://www.rfc-editor.org/rfc/rfc5905.txt

[2] http://cve.scap.org.cn/CVE-2013-5211.html

[3] http://www.kb.cert.org/vuls/id/348126

[4] http://support.ntp.org/bin/view/Support/AccessRestrictions

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章