林永明 段 斌
(威凱檢測技術(shù)有限公司 廣州 510663)
智能門鎖所采用的技術(shù)越來越先進(jìn),用戶體驗(yàn)也越來越豐富,但人們在享受科技感的同時(shí),也要注意技術(shù)的雙刃劍性,而使用不當(dāng)會埋下財(cái)產(chǎn)安全、信息安全隱患。支持遠(yuǎn)程數(shù)字認(rèn)證的網(wǎng)絡(luò)型智能門鎖解鎖技術(shù)基于手機(jī)軟件客戶端分發(fā)密碼和密鑰,實(shí)現(xiàn)遠(yuǎn)程云端認(rèn)證開鎖。
當(dāng)用戶使用手機(jī)軟件客戶端進(jìn)行遠(yuǎn)程云端認(rèn)證開鎖時(shí),用戶端會更容易受到來自黑客的攻擊,例如中間人攻擊、認(rèn)證篡改攻擊等。因此,滲透測試在網(wǎng)絡(luò)型智能門鎖開發(fā)與使用周期中起著相當(dāng)重要的作用,將滲透測試納入門鎖生命周期的一部分有助于廠商構(gòu)建可避免黑客攻擊或者在用戶端與服務(wù)端出現(xiàn)數(shù)據(jù)泄漏的門鎖安防系統(tǒng)。
顧名思義,內(nèi)部滲透測試是通過局域網(wǎng)在資產(chǎn)系統(tǒng)內(nèi)部實(shí)施的滲透測試,針對的對象是在內(nèi)網(wǎng)中托管的Web應(yīng)用程序。這可以幫助開發(fā)人員與維護(hù)人員發(fā)現(xiàn)防火墻內(nèi)系統(tǒng)可能存在的安全問題。因?yàn)椋藗儠霈F(xiàn)一種誤解,認(rèn)為信息安全問題與漏洞只會發(fā)生在系統(tǒng)的外部,因此開發(fā)人員與維護(hù)人員通常不重視系統(tǒng)內(nèi)部可能存在的安全問題[1]。
滲透測試就是為了通過沒有有效認(rèn)證憑據(jù)的情況進(jìn)行訪問,查看內(nèi)部系統(tǒng)是否存在安全問題。
外部滲透測試是指滲透測試人員沒有有關(guān)系統(tǒng)內(nèi)部實(shí)現(xiàn)安全性的先驗(yàn)信息。僅僅依靠目標(biāo)系統(tǒng)的IP地址即可模擬外部滲透攻擊。由于沒有其他先驗(yàn)信息,因此測試人員需要在其他網(wǎng)絡(luò)環(huán)境中搜尋有關(guān)目標(biāo)系統(tǒng)所處的主機(jī)與子網(wǎng)服務(wù)器的信息,例如端口信息等敏感信息。然后對目標(biāo)系統(tǒng)所處主機(jī)進(jìn)行滲透攻擊和破壞。外部滲透測試的目標(biāo)包括測試目標(biāo)系統(tǒng)部署所需的服務(wù)器和防火墻,以及內(nèi)網(wǎng)環(huán)境所使用的DNS服務(wù)器。
與內(nèi)部滲透測試不同,外部滲透測試主要是從系統(tǒng)所處局域網(wǎng)的網(wǎng)絡(luò)邊界外(通常為防火墻)發(fā)起攻擊,測試在因特網(wǎng)上托管的Web應(yīng)用程序的主機(jī)是否存在安全問題。在這個(gè)環(huán)節(jié)中外部滲透測試第一個(gè)要面對的“關(guān)卡”就是保護(hù)內(nèi)部系統(tǒng)的防火墻,如何從防火墻上獲取內(nèi)部的敏感信息是外部滲透測試做前期信息偵察需要面對的問題。
防火墻就是在兩個(gè)信任程度不同的網(wǎng)絡(luò)之間設(shè)置的、用于加強(qiáng)訪問控制的軟硬件保護(hù)措施。防火墻能夠強(qiáng)化安全策略,同時(shí)能夠記錄因特網(wǎng)上對防火墻邊界后的主機(jī)的訪問記錄,在限制暴露用戶點(diǎn)的同時(shí)對頻繁訪問的對象加以限制,屬于安全策略檢查站的一種。
除去上面的優(yōu)點(diǎn)防火墻也具有一定的局限性。防火墻防外而不防內(nèi);管理和配置復(fù)雜度較高,如果配置不當(dāng)容易導(dǎo)致安全漏洞;并且很難為用戶在防火墻內(nèi)外提供相同的安全策略;是一種粗粒度的訪問控制。
防火墻普遍采用的包過濾技術(shù),包過濾技術(shù)檢查數(shù)據(jù)包的報(bào)頭信息,依照過濾規(guī)則進(jìn)行過濾,其檢查的典型報(bào)頭信息內(nèi)容如下:
1)IP 數(shù)據(jù)報(bào)的源 IP 地址、目的 IP 地址、協(xié)議類型,選項(xiàng)字段等。
2)TCP 數(shù)據(jù)包的源端口、目標(biāo)端口、標(biāo)志段等。
3)UDP 數(shù)據(jù)包的源端口、目標(biāo)端口。
4)ICMP 類型。
包過濾技術(shù)不需要內(nèi)部網(wǎng)絡(luò)用戶做任何配置,對用戶來說是完全透明的,過濾速度快,效率高。但不能進(jìn)行數(shù)據(jù)內(nèi)容級別的訪問控制,一些應(yīng)用協(xié)議也并不適合用數(shù)據(jù)報(bào)過濾,并且過濾規(guī)則的配置比較復(fù)雜,容易產(chǎn)生沖突和漏洞。
本文首先使用Wireshark軟件在智能門鎖手機(jī)軟件客戶端遠(yuǎn)程開鎖時(shí)抓取數(shù)據(jù)包,從數(shù)據(jù)包中獲取云端服務(wù)器IP,通過使用基于Kali平臺的Nmap(7.8)對其IP進(jìn)行主動(dòng)信息搜尋,獲取該網(wǎng)站服務(wù)器的端口信息以及服務(wù)器系統(tǒng)類型以及版本,實(shí)驗(yàn)拓?fù)鋱D如圖1。
圖1 實(shí)驗(yàn)拓?fù)鋱D
Nmap對服務(wù)器掃描過程會執(zhí)行五種不同的測試,每種測試由一個(gè)或者多個(gè)數(shù)據(jù)包組成,目標(biāo)系統(tǒng)對每個(gè)數(shù)據(jù)包作出的響應(yīng)有助于確定操作系統(tǒng)的類型。五種不同的測試是:
1)序列生成(Sequence Generation)序列生成測試由六個(gè)數(shù)據(jù)包組成,這六個(gè)包是每隔 100 ms分開發(fā)送的,且都是 TCP SYN 包。每個(gè) TCP SYN 包的結(jié)果將有助于 NMAP 確定操作系統(tǒng)的類型。
2)ICMP 回顯,兩個(gè)有著不同設(shè)置的 ICMP 請求包被送到目標(biāo)系統(tǒng),由此產(chǎn)生的反應(yīng)將有助于實(shí)現(xiàn)驗(yàn)證操作系統(tǒng)類型。
3)TCP 顯式擁塞通知(Explicit Congestion Notification),當(dāng)生成許多包通過路由器時(shí)會導(dǎo)致其負(fù)載變大,這稱之為擁塞。其結(jié)果就是系統(tǒng)會變慢以降低擁堵,以便路由器不會發(fā)生丟包。這個(gè)包僅為了得到目標(biāo)系統(tǒng)的響應(yīng)而發(fā)送。因?yàn)椴煌牟僮飨到y(tǒng)以不同的方式處理這個(gè)包,所以返回的特定值可以用來判斷操作系統(tǒng)。
4)TCP,在這個(gè)測試中會發(fā)送六個(gè)數(shù)據(jù)包。一些帶有特定的包設(shè)置的包被發(fā)送用來到打開的或關(guān)閉的端口。結(jié)果也將會因?yàn)椴僮飨到y(tǒng)的不同而不同。所有 TCP 包都是以如下不同的標(biāo)志被發(fā)送:
①無標(biāo)志
②SYN、FIN、URG 和 PSH
③ACK
④SYN
⑤ACK
⑥FIN、PSH 和 URG
5)UDP,這個(gè)測試由一個(gè)被發(fā)送給一個(gè)關(guān)閉的端口的數(shù)據(jù)包組成。如果目標(biāo)系統(tǒng)上的這個(gè)端口是關(guān)閉的,而且返回一條 ICMP 端口不可達(dá)的信息,那么就說明沒有防火墻。
首先使用Nmap對云端服務(wù)器IP進(jìn)行常規(guī)掃描,見圖2。
圖2 常規(guī)掃描
通過返回信息可知,該掃描被防火墻阻礙,且大概率是因?yàn)镮CMP請求包被防火墻識別并攔截后續(xù)的包,因此將該次掃描改為不發(fā)送ICMP包,而是執(zhí)行 TCP SYN 掃描,得到圖3結(jié)果。
圖3 服務(wù)器系統(tǒng)版本與端口
可以看到顯示了該云端服務(wù)器IP為Windows系統(tǒng)以及20個(gè)開放端口,并且得到了這些端口的用途。本次掃描成功繞過了防火墻,獲得了系統(tǒng)的端口信息
面對以上安全風(fēng)險(xiǎn),我們可以利用一些技術(shù)或者管理的方法改善和避免這些安全風(fēng)險(xiǎn),從而增加安全性。
將開放端口號設(shè)置為其他端口號,例如將ssh端口號(22)更改為其他端口,并將端口與端口號的信息記錄在管理文檔中。
使用狀態(tài)檢測技術(shù)的防火墻,狀態(tài)檢測技術(shù)是指從收到的數(shù)據(jù)包中提取狀態(tài)信息,并根據(jù)狀態(tài)表進(jìn)行判斷,如果該包屬于已建立的連接狀態(tài),則跳過包過濾的規(guī)則檢測直接交由內(nèi)網(wǎng)主機(jī),如果不是已建立的連接狀態(tài)則對其進(jìn)行包過濾,依照規(guī)則進(jìn)行操作。
使用代理服務(wù)技術(shù)的防火墻,代理服務(wù)技術(shù)是指代理端當(dāng)接收到來自客戶端的連接請求后,從數(shù)據(jù)包中源和目的IP地址,同時(shí)使用維護(hù)人員制定的過濾規(guī)則判斷是否允許接受該連接請求。如果該連接請求被接受,則進(jìn)行用戶身份識別。否則,則阻斷該連接請求。通過身份識別后,應(yīng)用代理應(yīng)該通過數(shù)據(jù)包中源和目的IP地址建立對應(yīng)協(xié)議的連接,并且通過過濾規(guī)則傳輸和過濾該連接之間的數(shù)據(jù)包。當(dāng)連接關(guān)閉后,應(yīng)用代理關(guān)閉另一方連接,并且在代理服務(wù)器日志內(nèi)記錄本次連接[2]。
本文從內(nèi)部滲透測試與外部滲透測試的區(qū)別出發(fā),對智能門鎖云端系統(tǒng)防火墻繞過進(jìn)行了探究,針對包過濾技術(shù)的防火墻進(jìn)行繞過處理,獲取了該防火墻保護(hù)的服務(wù)器的端口信息以及該服務(wù)器的系統(tǒng)版本,達(dá)到了繞過該防火墻的目的,并且提出了該安全風(fēng)險(xiǎn)的改善方案。