林心陽,胡曦明,2,馬苗,2 ,李鵬,2
(1.陜西師范大學計算機科學學院,西安 710119;2.現(xiàn)代教學技術教育部重點實驗室,西安 710119)
分布式拒絕服務攻擊(DDoS:Distributed Denial of Service)指將多個計算機聯(lián)合起來作為攻擊平臺,對一個或多個目標發(fā)動DDoS攻擊,耗盡被攻擊網(wǎng)絡的系統(tǒng)資源,從而使被攻擊網(wǎng)絡無法處理合法用戶的請求[1]。反射型DDoS則是一種新的變種,其利用了DNS、NTP、SMTP等網(wǎng)絡協(xié)議工作原理中普遍存在的點對多點型請求與響應過程。攻擊方通過向網(wǎng)絡中發(fā)送偽造的請求報文,引起網(wǎng)絡中的大量設備作為應答方,向目標設備發(fā)送大量無端的響應報文,由此利用點對多點型請求與響應過程制造出對DDoS攻擊的反射放大效果,給網(wǎng)絡安全帶來極大威脅。
在物聯(lián)網(wǎng)環(huán)境中,網(wǎng)絡攝像頭、打印機、智能家電等物聯(lián)網(wǎng)設備普遍采用UPnP(即插即用)協(xié)議作為網(wǎng)絡通訊協(xié)議,而UPnP設備的發(fā)現(xiàn)主要是通過簡單服務發(fā)現(xiàn)協(xié)議(SSDP:Simple Service Discovery Protocol)進行相互感知的。由于UPnP設備的數(shù)量龐大,基于SSDP的物聯(lián)網(wǎng)DDoS反射放大攻擊,其攻擊帶寬放大倍數(shù)統(tǒng)計平均可達30倍以上[2]。近年來,在DDoS反射放大攻擊流量中,SSDP漸漸取代DNS、NTP等成為被利用的主要協(xié)議[3],因此基于SSDP的物聯(lián)網(wǎng)DDoS反射放大攻擊及防御技術成為物聯(lián)網(wǎng)安全領域的熱點和難點。
簡單服務發(fā)現(xiàn)協(xié)議是封裝在UDP上的一種應用層協(xié)議,端口號為1900。按照協(xié)議的規(guī)定,當一個控制點(客戶端)接入網(wǎng)絡的時候,它可以向一個特定的多播地址的SSDP端口用M-SEARCH方法發(fā)送“ssdp:discover”消息[4]。當設備監(jiān)聽到這個保留的多播地址上由控制點發(fā)送消息時,設備會分析控制點的請求服務,如果自身提供了控制點的請求服務,設備將通過單播的方式直接響應控制點的請求。
當一個設備計劃從網(wǎng)絡上卸載時,它也應當向一個特定多播地址的SSDP協(xié)議端口使用NOTIFY方法發(fā)送“ssdp:byebye”消息?;赟SDP的物聯(lián)網(wǎng)DDoS反射放大攻擊原理如圖1所示。
在反射放大攻擊中,所謂“反射”,是指攻擊者并不直接攻擊目標服務IP,而是通向組播地址發(fā)送構造的請求報文,將被攻擊方的IP地址偽造成報文的源IP地址。所有支持該協(xié)議的設備都會收到搜索報文如圖1虛線所示。所謂“放大”,是指這些設備會將數(shù)倍于請求報文的回復數(shù)據(jù)發(fā)送到被攻擊方,從而對其間接形成DDoS攻擊,如圖1中實線所示。這個過程利用SS?DP協(xié)議“組播請求、單播響應”的特點,實現(xiàn)了攻擊的反射放大。
圖1 反射放大攻擊原理
物聯(lián)網(wǎng)環(huán)境的概念非常寬泛,包括傳感器等工業(yè)用物聯(lián)網(wǎng),服務器、打印設備等商用物聯(lián)網(wǎng),天氣環(huán)境監(jiān)測網(wǎng)絡系統(tǒng)等公共服務用物聯(lián)網(wǎng)。這些日趨廣泛的物聯(lián)網(wǎng)環(huán)境都極易受到DDoS的威脅[5]。其中,由智能冰箱、恒溫控制器、家用路由器和監(jiān)控攝像頭等設備組成的智能家居物聯(lián)網(wǎng)環(huán)境由于其設備購置成本低,組網(wǎng)靈活,攻擊與防御范圍可控等優(yōu)點適合于作為在教學中開展攻擊和防御實驗的網(wǎng)絡環(huán)境。
在基于智能家居的物聯(lián)網(wǎng)環(huán)境中,如何找到可被SSDP攻擊利用的智能設備成為攻擊實現(xiàn)的前提和關鍵。為此,本文提出一種基于Python進行Socket編程對物聯(lián)網(wǎng)內(nèi)的UPnP設備進行探測的解決方案,采用該方案可以有效地探測物聯(lián)網(wǎng)內(nèi)可被攻擊利用進行反射的設備。
首先,通過向協(xié)議的固定組播地址239.255.255.250發(fā)送一個搜索報文(ssdp:discover);然后,捕獲響應報文進行報文內(nèi)容的提取,從而可以全面而準確地發(fā)現(xiàn)物聯(lián)網(wǎng)內(nèi)可被攻擊利用進行反射的設備;最后,通過計算得出此實驗物聯(lián)網(wǎng)環(huán)境下SSDP協(xié)議的帶寬放大因子(BAF,Bandwidth Amplification Factor),即回復報文的總字節(jié)數(shù)與請求報文字節(jié)數(shù)的比值。關鍵步驟實現(xiàn)如表1所示。
表1 實驗環(huán)境嗅探關鍵步驟
通過對程序運行結果進行整理和統(tǒng)計,列出在探測報文發(fā)出后應答報文(HTTP/1.1 200 OK)的源IP、響應報文個數(shù)及平均長度如表2。這些響應報文即為DDoS攻擊進行流量反射的媒介。
表2 UPnP設備探測報文應答統(tǒng)計表
設B為發(fā)出的搜索報文字節(jié)數(shù),bi為第i個應答報文的字節(jié)數(shù),從而依式(1)求出實驗BAF值[6]:
其中,由Wireshark抓取所發(fā)出的數(shù)據(jù)包得B=133bytes。可見,實驗BAF高于近年SSDP攻擊中測得BAF的平均值30.08,保證了實驗的參考價值[7]。
在工作和生活中常見的電子設備都可能隨時遭受基于SSDP協(xié)議的DDoS威脅,而在互聯(lián)網(wǎng)內(nèi)最易受到攻擊的則是服務器[8]。在物聯(lián)網(wǎng)實驗環(huán)境的探測后,針對實驗環(huán)境及常見攻擊特點設計模擬攻擊實驗方案如圖2所示。
圖2 實驗方案設計流程圖
在網(wǎng)段內(nèi)對智能家居物聯(lián)網(wǎng)中的個人電腦、An?droid手機、路由器、網(wǎng)絡機頂盒進行攻擊實驗,并根據(jù)設備特性用不同的方式觀察其實驗效果??缇W(wǎng)段對互聯(lián)網(wǎng)中服務器進行攻擊,并由服務器資源狀態(tài)走勢圖觀察實驗效果,本文實驗中使用阿里云服務器作為被攻擊對象。
(1)攻擊的實現(xiàn)
用Python的scapy模塊編寫腳本實現(xiàn)包含IP欺騙的SSDP搜索請求報文發(fā)送,通過控制發(fā)包數(shù)量及速率,指定目標設備的IP地址為發(fā)出報文的源IP地址,使局域網(wǎng)內(nèi)所有設備響應均發(fā)送至該設備,從而實現(xiàn)對局域網(wǎng)內(nèi)智能終端進行攻擊,關鍵步驟如表3。
表3 攻擊實現(xiàn)關鍵步驟
由于Windows系統(tǒng)默認會對所發(fā)出報文進行IP查驗,因此無法進行IP欺騙,即不能發(fā)出SSDP攻擊報文,故選擇在Linux(Ubuntu16.1.4)系統(tǒng)上配置Python環(huán)境,運行攻擊腳本。
(2)網(wǎng)段內(nèi)攻擊實驗
①主機攻擊實驗
對IP為192.168.1.108的主機進行攻擊,在攻擊持續(xù)的時間內(nèi),打開Windows資源監(jiān)視器發(fā)現(xiàn)網(wǎng)絡帶寬資源由于攻擊而被大量占用,如圖3所示。
圖3 受到攻擊時網(wǎng)絡資源狀況
在被攻擊主機上打開Wireshark抓包得到由攻擊主機偽造源IP發(fā)出大量搜索報文以及收到大量的來自局域網(wǎng)內(nèi)設備的SSDP響應報文如圖4、5所示。
圖4 偽造IP搜索報文
圖5 SSDP響應攻擊報文
在攻擊結束后,查看資源監(jiān)視器,網(wǎng)絡逐漸恢復正常狀態(tài),網(wǎng)絡資源情況如圖6。
圖6 攻擊結束后網(wǎng)絡資源狀況
根據(jù)網(wǎng)絡資源狀況的對比可知攻擊產(chǎn)生了較為明顯的效果。在模擬攻擊過程中由于Python多線程運行的特點及發(fā)包速率受到Python scapy模塊發(fā)包性能的限制,攻擊流量較小。但從攻擊主機和被攻擊的主機兩者的帶寬占用比值來看,攻擊放大倍數(shù)約為10倍,達到較好的放大效果,能夠很好地模擬SSDP反射放大攻擊過程。同時若使用多臺主機形成DDoS攻擊,或局域網(wǎng)內(nèi)可用支持UPnP的設備數(shù)量更多,則攻擊流量大小必將成倍增加。
②其他終端攻擊實驗
以下對智能手機、家用路由器以及網(wǎng)絡電視機頂盒進行DDoS攻擊模擬。
首先,對局域網(wǎng)內(nèi)一臺Android手機(IP=192.168.1.102)進行SSDP攻擊,通過軟件PingTools可觀察到在遭受攻擊的時間里手機的網(wǎng)絡使用率激增,在攻擊結束后恢復正常如圖7。
圖7 被攻擊手機網(wǎng)絡使用率走勢圖
編寫腳本攻擊家庭路由器(IP=192.168.1.1),在攻擊持續(xù)時間內(nèi)局域網(wǎng)內(nèi)的設備均受到一定程度的影響,正在播放視頻的電視及手機均出現(xiàn)嚴重的卡頓現(xiàn)象。在局域網(wǎng)內(nèi)手機上通過PingTools查看路由器信號強度走勢如圖8,路由器信號強度由100%下降并穩(wěn)定在76%。
圖8 路由器信號強度走勢圖
最后,對局域網(wǎng)中家庭電視的網(wǎng)絡機頂盒(IP=192.168.1.105)進行SSDP攻擊,在攻擊持續(xù)的時間內(nèi),手動調(diào)節(jié)視頻進度以排除提前緩存因素影響,電視視頻播放畫質(zhì)明顯下降并且出現(xiàn)持續(xù)的閃屏現(xiàn)象。
(3)跨網(wǎng)段攻擊實驗
由于SSDP協(xié)議并沒有檢查搜索請求報文是否來自于設備所在的局域網(wǎng)絡的機制,即便M-SEARCH報文來自于互聯(lián)網(wǎng),設備也會積極應答這個報文[9]。如果設備將1900這個UDP端口暴露在互聯(lián)網(wǎng)中,那么這個端口就有可能成為UDP放大攻擊的絕佳目標。為探究攻擊報文是否可以穿越互聯(lián)網(wǎng),進行如下實驗進行驗證。
將發(fā)出的攻擊報文源地址改為互聯(lián)網(wǎng)上的云服務器地址,在Linux系統(tǒng)上運行腳本,對該服務器發(fā)起SSDP攻擊。由于攻擊方處于表1所示的家居物聯(lián)網(wǎng)環(huán)境中,所以局域網(wǎng)中的終端在本實驗中起到反射和放大作用。發(fā)起兩次攻擊分別持續(xù)10min(12:25至12:35)、70min(12:40至 13:50),在此過程中查看服務器資源狀態(tài)如圖9。
圖9 服務器出/入報文速率走勢圖
其中,由圖中可見在[12:49:30]時刻入報文速率為586個/秒,明顯高于攻擊發(fā)生前,可見攻擊者可以跨網(wǎng)段攻擊互聯(lián)網(wǎng)中任意一臺具有公網(wǎng)IP的服務器。
SSDP協(xié)議成為黑客發(fā)起DDoS攻擊的幫兇,在一定程度上是由于該協(xié)議存在漏洞造成的[10]。對本文的實驗過程進行分析得出結論:在SSDP實現(xiàn)發(fā)現(xiàn)設備的過程中可加入IP地址校驗機制,即當一臺智能設備收到搜索請求報文后能夠自動進行IP地址檢查,若IP為非局域網(wǎng)內(nèi)IP則不進行響應。由此將SSDP報文限制在局域網(wǎng)內(nèi),可以避免互聯(lián)網(wǎng)內(nèi)大規(guī)模的SSDP反射放大攻擊。
客觀上我們無法阻止黑客對我們的服務器發(fā)動DDoS攻擊,除非主動斷開互聯(lián)網(wǎng)連接。但我們可以在理解攻擊的原理及過程后,采取如下兩種有效措施將這種攻擊的危害大大降低。
(1)對于不需要啟用UPnP服務的設備,手動停止該服務或關閉1900端口(配置防火墻)。
在Windows系統(tǒng)中可以在“控制面板-管理工具-服務-屬性-啟動類型”中將SSDP Discovery Service服務停止,其進程名是svchost.exe。在Linux系統(tǒng)中可以在終端下通過命令進行服務關閉操作。
(2)引入流量清洗技術,對業(yè)務流量進行實時監(jiān)控分析。
如果檢測短時間內(nèi)可能遭受DDoS攻擊,則進行流量清洗,將收到的UDP攻擊包丟棄,對特定端口進行限速等。根據(jù)不同的防護等級需求,可選取采用三個層次的流量清洗:本地清洗、運營商清洗、云清洗。
若教師期望在課堂上進行防御下的攻擊驗證實驗,學生可按上述方法將計算機的SSDP服務停止,其1900端口將不會被利用從而受到攻擊,攻擊者得到的反射報文數(shù)量也會明顯減少,即可證明攻擊可被有效地防御。
本文針對反射放大型DDoS所帶來的網(wǎng)絡安全問題,利用家居物聯(lián)網(wǎng)環(huán)境中的智能終端進行攻擊實驗。首先對物聯(lián)網(wǎng)環(huán)境中可開展攻擊與防御的設備進行嗅探,然后利用Python開發(fā)了基于SSDP的物聯(lián)網(wǎng)DDoS反射放大攻擊實驗軟件,通過實驗驗證了該軟件可以應用于家居物聯(lián)網(wǎng)及互聯(lián)網(wǎng)環(huán)境下的DDoS反射放大攻擊實驗。在此基礎上,針對物聯(lián)網(wǎng)環(huán)境中的放射放大型DDoS的防御,進一步分析了SSDP協(xié)議存在的安全漏洞并提出改進方案及防御策略。
本文的實驗過程方案可在物聯(lián)網(wǎng)環(huán)境下實現(xiàn)多場景再現(xiàn),不局限于某一種局域網(wǎng)環(huán)境或設備。因此,教師可根據(jù)教學目標開展當堂實驗,使教室內(nèi)的多媒體設備、移動終端及個人電腦成為課堂實驗工具,形成理論與實踐的結合的授課模式。