戴云偉,沈春苗
1(江蘇省未來網(wǎng)絡(luò)創(chuàng)新研究院,南京 211111)
2(南京師范大學(xué) 商學(xué)院,南京 210023)
DNS[1,2]是互聯(lián)網(wǎng)最重要、最基本的服務(wù)之一,提供了方便記憶的域名與復(fù)雜的IP 地址的相互映射.萬維網(wǎng)發(fā)展得如此迅速,離不開DNS 系統(tǒng)的廣泛應(yīng)用.然而,隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,DNS 因其協(xié)議設(shè)計的脆弱性,成為違法分子發(fā)動網(wǎng)絡(luò)攻擊的跳板,使互聯(lián)網(wǎng)在可用性、安全性及完整性等方面受到嚴(yán)重威脅.如何提供DNS 防護(hù)成為ISP (Internet service provider)及監(jiān)管機(jī)構(gòu)的重要關(guān)切.
根據(jù)EfficientIP和IDC 共同研究發(fā)布的“IDC 2020 Global DNS Threat Report”顯示,2019年有79%的組織受到DNS 攻擊[3].DNS 不僅僅是黑客的攻擊的目標(biāo),同時也是其實施攻擊的重要手段.最常見的DNS 攻擊類型包括[4]:
(1) DNS hijacking,域名劫持.此類攻擊手段有多種,如攻擊者通過攻擊域名注冊系統(tǒng),獲得修改域名對應(yīng)記錄的權(quán)限.一旦域名被劫持,攻擊者就可以通過篡改記錄,將用戶引導(dǎo)至病毒網(wǎng)址、釣魚網(wǎng)站等,從而獲得用戶的敏感數(shù)據(jù).2010年百度境外的DNS 服務(wù)器被攻擊,攻擊者修改了解析記錄,導(dǎo)致長達(dá)11 小時的服務(wù)中斷[5,6].
(2)DNS flood attack,泛洪攻擊.這是最基本的DNS攻擊類型之一,在這種分布式拒絕服務(wù)(DDoS)中,攻擊者將攻擊DNS 服務(wù)器.其主要目的為造成服務(wù)器過載,使其無法繼續(xù)為正常的DNS 請求提供服務(wù)[7,8].
(3)Distributed reflection denial of service,分布反射式拒絕服務(wù)(DRDos).DDoS 中的一種,此類攻擊最終目的就是使用大量數(shù)據(jù)包或者大量占用帶寬的請求使設(shè)備或者網(wǎng)絡(luò)過載,實現(xiàn)拒絕服務(wù)的目的.DRDos相較于DDoS的攻擊更為致命,該類攻擊將請求發(fā)送至正常的DNS 服務(wù)器,但是源地址為被攻擊者的,如此,被攻擊者將收到大量的無效響應(yīng)報文,從而資源被耗盡[9,10].
(4)Cache poisoning,緩存投毒攻擊,最常見的DNS攻擊之一,一般利用系統(tǒng)漏洞,攻擊者嘗試向DNS 服務(wù)器的緩存中注入惡意數(shù)據(jù),以達(dá)到其將用戶重定向到另一個遠(yuǎn)程服務(wù)器的目的[11,12].
(5)DNS tunneling,DNS 隧道攻擊,這是一種網(wǎng)絡(luò)攻擊,通過在DNS 響應(yīng)和請求中包含惡意的應(yīng)用數(shù)據(jù),當(dāng)與DNS 服務(wù)器建立鏈接以后,攻擊者向服務(wù)器傳遞惡意數(shù)據(jù),以獲得控制權(quán)限[13,14].
針對DNS的攻擊,不少相關(guān)文獻(xiàn)進(jìn)行了研究,如王文通等提到的從協(xié)議增強(qiáng)、系統(tǒng)增強(qiáng)、檢測監(jiān)控和去中心化的域名系統(tǒng)4 個方面來應(yīng)對[15].郝帥等針對反射放大型DDoS 攻擊,同時對DNS、SNMP、SSDP、NTP、Memcache和CLDAP 這6 種協(xié)議存在的安全漏洞進(jìn)行分析,從受害者和服務(wù)器兩個角度給出防范策略[16].Cooney 推薦使用CISA (cybersecurity and infrastructure security agency) 安全措施以緩解受到攻擊的威脅[17]等.
2017年5月,WannaCry 蠕蟲通過MS17-010 漏洞在全球范圍內(nèi)感染了大量設(shè)備,該蠕蟲感染計算機(jī)后會向設(shè)備中植入勒索病毒,導(dǎo)致設(shè)備中大量文件被加密.受害者設(shè)備被黑客鎖定后,需要支付的一定價值的比特幣才可解鎖[18].而這一病毒有個關(guān)于域名的隱藏開關(guān),通過RPZ 技術(shù)對特定域名的訪問進(jìn)行干預(yù),即可遏制病毒的進(jìn)一步大規(guī)模傳播.
現(xiàn)今,無法通過某一種技術(shù)手段解決所有攻擊類型,結(jié)合RPZ 技術(shù)設(shè)計的防護(hù)系統(tǒng)在一定程度上可以防范和化解域名劫持、以及不法分子試圖通過DNS系統(tǒng),將用戶引至惡意站點(diǎn).除此之外,系統(tǒng)還可以輔助ISP 控制未備案等不合法的站點(diǎn)被訪問.
目前,多數(shù)ISP 或者銀行、電力等大型企業(yè)組織并沒有部署通過干預(yù)域名解析來提升DNS 安全的系統(tǒng),少數(shù)可能部署了域名黑名單解析功能.但是基本上都沒有部署自動化的解析干預(yù)系統(tǒng),結(jié)合運(yùn)營商或者大型組織的實際情況,整個安全防護(hù)系統(tǒng)需要滿足以下必要功能.
(1)DNS 遞歸解析功能,最核心的功能,需要滿足ISP 用戶或者大型組織內(nèi)部遞歸解析請求,該功能一般需要從13 個DNS 根服務(wù)器開始,遞歸訪問至授權(quán)服務(wù)器,獲取DNS 響應(yīng)結(jié)果,并進(jìn)行短時間的緩存.
(2)DNS 緩存功能,業(yè)內(nèi)常見做法是將緩存與遞歸分開,該模塊直接接受用戶請求,優(yōu)先查找本模塊內(nèi)部緩存,以響應(yīng)用戶.無緩存的情況下,會將請求轉(zhuǎn)發(fā)給DNS 遞歸服務(wù)器.一般情況下,多臺緩存設(shè)備會轉(zhuǎn)發(fā)至一臺遞歸設(shè)備.
(3)DNS 安全防護(hù)功能,當(dāng)系統(tǒng)檢測到有惡意的域名請求時,或者DNS 響應(yīng)報文中含有惡意的IP 地址時.需要能夠根據(jù)用戶的設(shè)定返回特定結(jié)果,如返回NXDOMAIN,或者返回特定的IP 地址,將用戶重定向至警告頁面.
(4)綜合管理平臺,常規(guī)功能包含設(shè)備性能監(jiān)控、告警監(jiān)控等.核心功能要求協(xié)調(diào)所有設(shè)備之間的信息交互,進(jìn)行統(tǒng)一管理,如數(shù)據(jù)收集、控制指令下發(fā)、控制指令反饋等.
與傳統(tǒng)的提供DNS 解析功能的系統(tǒng)相比,構(gòu)建RPZ 安全防護(hù)系統(tǒng),極大提高整個系統(tǒng)攔截惡意域名或者IP 地址的效率.
RPZ 由Paul Vixie 主導(dǎo)的ISC (internet systems consortium)機(jī)構(gòu)于2010年提出,目前是IETF (Internet engineering task force)的互聯(lián)網(wǎng)草案[19].是一種針對DNS的網(wǎng)絡(luò)安全解決方案,可以防止互聯(lián)網(wǎng)用戶和系統(tǒng)訪問到已知的惡意域名或者IP,可以有效地預(yù)防威脅發(fā)生,通過阻止訪問受感染或者惡意的站點(diǎn),進(jìn)而阻斷進(jìn)一步的安全威脅.能夠主動檢測到已被感染的用戶,并且防止病毒進(jìn)一步擴(kuò)散.圖1為用戶通過常用的通訊軟件收到包含惡意信息的鏈接場景下,RPZ 參與的工作過程.
圖1 DNS RPZ 工作原理圖
(1)不法分子通過電子郵件或即時通訊軟件,將包含惡意軟件或者域名的鏈接發(fā)送給用戶.
(2)用戶點(diǎn)擊收到的鏈接,終端設(shè)備首先要做的就是進(jìn)行DNS 解析.將DNS 請求發(fā)送至DNS 解析服務(wù)器.
(3)具有RPZ 功能的DNS 解析服務(wù)器,向其他系統(tǒng)同步RPZ 規(guī)則,判斷當(dāng)前請求解析的域名是否為惡意域名,或者解析到的IP是否為惡意IP,若是,則會進(jìn)行干預(yù),干預(yù)的結(jié)果則是由用戶下發(fā)的規(guī)則決定的.
(4)在RPZ的防護(hù)下,DNS 請求無法獲得正常結(jié)果,或者獲得由ISP 提供的警告頁面結(jié)果,從而成功阻止了用戶訪問惡意站點(diǎn).
圖1中RPZ 規(guī)則下發(fā)階段的數(shù)據(jù),一般由ISP 通過多種方式進(jìn)行收集,包括但不限于惡意域名檢測系統(tǒng)、被舉報的賭博網(wǎng)站、色情網(wǎng)站、釣魚網(wǎng)站以及其他被監(jiān)管機(jī)構(gòu)禁止的站點(diǎn).
整個系統(tǒng)涉及多種類型設(shè)備,核心DNS 解析功能需要滿足負(fù)載均衡設(shè)計.系統(tǒng)總體結(jié)構(gòu)如圖2所示,系統(tǒng)最基本組成部分共包含6 個子系統(tǒng),以及各子系統(tǒng)所需最小組成模塊.根據(jù)實際情況,可添加其他輔助系統(tǒng),如防火墻、入侵檢測系統(tǒng)等.子系統(tǒng)之間數(shù)據(jù)傳遞、控制指令下發(fā)都是通過局域網(wǎng)完成,只有緩存系統(tǒng)和遞歸系統(tǒng)需要接入互聯(lián)網(wǎng).
圖2 系統(tǒng)總體架構(gòu)圖
負(fù)責(zé)解析用戶的DNS 請求并完成響應(yīng),當(dāng)接受到請求后,會首先查找本地系統(tǒng)是否已緩存過相應(yīng)記錄且TTL 尚未過期,對于無法利用已有緩存完成響應(yīng)的情況下,將請求轉(zhuǎn)發(fā)至遞歸服務(wù)器.
一般只接受特定緩存服務(wù)器的請求,不直接對終端用戶開放,可以具備一定的緩存能力,但是緩存時間不宜過長.正常情況下,會從根服務(wù)器開始進(jìn)行遞歸處理,直至到達(dá)授權(quán)服務(wù)器,獲取到用戶所需數(shù)據(jù).RPZ 模塊就是工作在該系統(tǒng)中.
負(fù)責(zé)接收來自遞歸系統(tǒng)的DNS 請求響應(yīng)日志,進(jìn)行歸檔以便后續(xù)審計,同時負(fù)責(zé)將日志發(fā)送至其他系統(tǒng).
該系統(tǒng)接受到DNS日志后,需要進(jìn)行分析,當(dāng)前針對惡意域名的檢測有不少相關(guān)論文,也有部分公司有償提供檢測到的惡意域名或者設(shè)備的地址,如DissectCyber 提供的RPZone.us 服務(wù).
負(fù)責(zé)存儲所有規(guī)則,提供接口供其他系統(tǒng)動態(tài)更新規(guī)則,更新后,系統(tǒng)會通知遞歸系統(tǒng)獲取最新的規(guī)則數(shù)據(jù).遞歸系統(tǒng)本身也會定期查詢是否有規(guī)則數(shù)據(jù)變更.
負(fù)責(zé)所有系統(tǒng)的運(yùn)行配置、監(jiān)控、規(guī)則下發(fā),向其他外部系統(tǒng)提供接口等.典型的應(yīng)用就包括,惡意站點(diǎn)檢測系統(tǒng)一旦檢測到惡意域名或者IP,會向該系統(tǒng)提供的接口上報,由管理系統(tǒng)向RPZ 系統(tǒng)下發(fā)規(guī)則.
RPZ的規(guī)則可以在請求到來之前進(jìn)行預(yù)置,也可以通過前序的日志進(jìn)行分析檢測得出.針對第一種預(yù)置的情況,當(dāng)請求到達(dá)時,在遞歸系統(tǒng)就會被成功攔截.第二種場景下,前序請求會拿到惡意域名結(jié)果,但是后續(xù)請求會被攔截.
圖3為系統(tǒng)工作時,某特定場景下信息交互的時序圖示例.實際工作時,因系統(tǒng)分布式部署,可能存在的網(wǎng)絡(luò)數(shù)據(jù)丟失,導(dǎo)致接口調(diào)用超時,接口需要提供重試、異常處理的能力.
圖3 工作時序圖
實驗所使用的系統(tǒng)為Linux 系統(tǒng)(CentOS Linux release 7.8.2003),使用NSD 4.3.6 作為RPZ 系統(tǒng)的核心軟件,使用Unbound 1.13.1 作為緩存系統(tǒng)和遞歸系統(tǒng)的核心軟件.所使用的網(wǎng)絡(luò)拓?fù)鋱D,如圖4.
圖4 實驗網(wǎng)絡(luò)拓?fù)鋱D
遞歸服務(wù)器內(nèi)網(wǎng)地址配置為172.171.1.16/24.RPZ 服務(wù)器內(nèi)網(wǎng)地址配置172.171.1.16/24.硬件CPU為Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20 GHz.內(nèi)存為16 GB.
6.1.1 遞歸服務(wù)器的配置
Unbound 配置位于/etc/unbound/unbound.conf 中,部分核心內(nèi)容如下:
01 server:02 interface:0.0.0.0@53 03 access-control:0.0.0.0/0 allow 04 logfile:"/etc/unbound/unbound.log"05 module-confi g:"respip validator iterator"06 rpz:07 name:rpz.test 08 master:172.171.1.15 09 allow-notify:172.171.1.15 10 zonefile:/etc/unbound/rpz.test.zone
第2 行表示在所有地址上監(jiān)聽端口53.第3 行表示不對源地址訪問控制.第4 行指示日志存儲位置.第5 行中的配置了rpz 所需要的respip 模塊.第6 行為rpz 模塊配置起始位置.第7 行表示rpz的zone 名稱為rpz.test.第8 行指示RPZ 系統(tǒng)的地址.第9 行表示允許RPZ 系統(tǒng)主動通知規(guī)則變更.第10 行表示同步到的規(guī)則文件會存儲在rpz.test.zone 文件中.
6.1.2 RPZ 服務(wù)器的配置
NSD 配置位于/etc/nsd/nsd.conf 中,部分核心內(nèi)容如下:
?
第2 行表示日志文件位置,第3 行表示進(jìn)程號文件存放位置.第4 行指示規(guī)則同步過程中,狀態(tài)文件的位置,該文件由軟件自動生成和維護(hù).第6 行表示RPZ的zone 名稱為rpz.test,該名稱需要與遞歸系統(tǒng)中一致.第7 行指示規(guī)則文件存放位置.第8 行表示若規(guī)則變更時,會通知notify 配置的IP,可配置多行.第9 行用于進(jìn)行同步控制,只有允許的遞歸服務(wù)器才能夠進(jìn)行RPZ 規(guī)則同步.
假設(shè)example.com 域名的子域名都為惡意域名.針對該域名進(jìn)行多種常見場景的測試驗證.
6.2.1 RPZ 規(guī)則配置
/etc/nsd/rpz.test.zone 規(guī)則文件的配置如下,其中第11-13 行通過分號被注釋,修改此文件后,第4 行的序列號也需要修改,否則不會同步至遞歸系統(tǒng).
01 $ORIGIN rpz.test.02 $TTL 3600 03 @ IN SOA ns admin (04 2021042102;serial 05 3600;refresh (1 hours)06 600;retry (10 minutes)07 604800;expire (1 week)08 600;minimum (1 day)09)10 *.example.com CNAME.11;*.example.com CNAME *.12;*.example.com A 127.0.0.1 13;32.34.216.184.93.rpz-ip A 127.0.0.2
6.2.2 攔截域名,返回NXDOMAIN
啟用第6.2.1 節(jié)配置文件中的第10 行,注釋11-13 行.使用dig www.example.com @172.171.1.16 命令測試結(jié)果如圖5.
圖5 攔截域名,返回NXDOMAIN的測試結(jié)果
根據(jù)dig 顯示的結(jié)果表明驗證通過,終端得到的響應(yīng)為NXDOMAIN.
6.2.3 攔截域名,返回NODATA
啟用第6.2.1 節(jié)配置文件中的第11 行,注釋10和12-13 行.使用dig 命令測試結(jié)果如圖6.
圖6 攔截域名,返回NODATA的測試結(jié)果
根據(jù)dig 顯示的結(jié)果表明驗證通過,終端得到的響應(yīng)為NODATA.
6.2.4 重定向域名至特定IP
啟用第6.2.1 節(jié)配置文件中的第12 行,注釋10-11和13 行.使用dig 命令測試結(jié)果如圖7.
圖7 重定向域名至特定IP的測試結(jié)果
根據(jù)dig 顯示的結(jié)果表明驗證通過,終端得到的響應(yīng)為127.0.0.1.
6.2.5 重定向惡意IP 至特定IP
啟用第6.2.1 節(jié)配置文件中的第13 行,注釋10-12 行.配置文件的中32.34.216.184.93.rpz-ip,其中,第1 個數(shù)字32 表示掩碼,34.216.184.93是www.example.com 真實解析IP 地址反序,其真實地址為93.184.216.34.rpz-ip為固定字段.第14 行的含義就是當(dāng)遞歸響應(yīng)結(jié)果中的地址為93.184.216.34/32 時,就被替換成127.0.0.2.使用dig 命令測試結(jié)果如圖8.
圖8 重定向惡意IP 至特定IP的測試結(jié)果
實驗結(jié)果符合預(yù)期,另外針對IP的NXDOMAIN和NODATA的實驗與第6.2.2 節(jié)和第6.2.3 節(jié)相似.
本文構(gòu)建的DNS的RPZ 安全防護(hù)系統(tǒng),采用NSD和Unbound 等相關(guān)核心軟件,進(jìn)行配置與實踐.驗證結(jié)果表明,系統(tǒng)對于防護(hù)用戶訪問到惡意域名或IP 效果較為明顯.具有良好的實際應(yīng)用意義與技術(shù)參考價值.
系統(tǒng)所采用的檢測子系統(tǒng)是基于較常用的關(guān)鍵字識別.一個良好的規(guī)則庫,對于整個防護(hù)系統(tǒng)具有重要意義.現(xiàn)有不少組織已經(jīng)開始有償提供規(guī)則庫,如何快速、有效地通過各種手段構(gòu)建規(guī)則庫將是下一步的研究重點(diǎn).