林永明 段 斌
(威凱檢測技術有限公司 廣州 510663)
智能門鎖所采用的技術越來越先進,用戶體驗也越來越豐富,但人們在享受科技感的同時,也要注意技術的雙刃劍性,而使用不當會埋下財產安全、信息安全隱患。支持遠程數字認證的網絡型智能門鎖解鎖技術基于手機軟件客戶端分發密碼和密鑰,實現遠程云端認證開鎖。
當用戶使用手機軟件客戶端進行遠程云端認證開鎖時,用戶端會更容易受到來自黑客的攻擊,例如中間人攻擊、認證篡改攻擊等。因此,滲透測試在網絡型智能門鎖開發與使用周期中起著相當重要的作用,將滲透測試納入門鎖生命周期的一部分有助于廠商構建可避免黑客攻擊或者在用戶端與服務端出現數據泄漏的門鎖安防系統。
顧名思義,內部滲透測試是通過局域網在資產系統內部實施的滲透測試,針對的對象是在內網中托管的Web應用程序。這可以幫助開發人員與維護人員發現防火墻內系統可能存在的安全問題。因為,人們會出現一種誤解,認為信息安全問題與漏洞只會發生在系統的外部,因此開發人員與維護人員通常不重視系統內部可能存在的安全問題[1]。
滲透測試就是為了通過沒有有效認證憑據的情況進行訪問,查看內部系統是否存在安全問題。
外部滲透測試是指滲透測試人員沒有有關系統內部實現安全性的先驗信息。僅僅依靠目標系統的IP地址即可模擬外部滲透攻擊。由于沒有其他先驗信息,因此測試人員需要在其他網絡環境中搜尋有關目標系統所處的主機與子網服務器的信息,例如端口信息等敏感信息。然后對目標系統所處主機進行滲透攻擊和破壞。外部滲透測試的目標包括測試目標系統部署所需的服務器和防火墻,以及內網環境所使用的DNS服務器。
與內部滲透測試不同,外部滲透測試主要是從系統所處局域網的網絡邊界外(通常為防火墻)發起攻擊,測試在因特網上托管的Web應用程序的主機是否存在安全問題。在這個環節中外部滲透測試第一個要面對的“關卡”就是保護內部系統的防火墻,如何從防火墻上獲取內部的敏感信息是外部滲透測試做前期信息偵察需要面對的問題。
防火墻就是在兩個信任程度不同的網絡之間設置的、用于加強訪問控制的軟硬件保護措施。防火墻能夠強化安全策略,同時能夠記錄因特網上對防火墻邊界后的主機的訪問記錄,在限制暴露用戶點的同時對頻繁訪問的對象加以限制,屬于安全策略檢查站的一種。
除去上面的優點防火墻也具有一定的局限性。防火墻防外而不防內;管理和配置復雜度較高,如果配置不當容易導致安全漏洞;并且很難為用戶在防火墻內外提供相同的安全策略;是一種粗粒度的訪問控制。
防火墻普遍采用的包過濾技術,包過濾技術檢查數據包的報頭信息,依照過濾規則進行過濾,其檢查的典型報頭信息內容如下:
1)IP 數據報的源 IP 地址、目的 IP 地址、協議類型,選項字段等。
2)TCP 數據包的源端口、目標端口、標志段等。
3)UDP 數據包的源端口、目標端口。
4)ICMP 類型。
包過濾技術不需要內部網絡用戶做任何配置,對用戶來說是完全透明的,過濾速度快,效率高。但不能進行數據內容級別的訪問控制,一些應用協議也并不適合用數據報過濾,并且過濾規則的配置比較復雜,容易產生沖突和漏洞。
本文首先使用Wireshark軟件在智能門鎖手機軟件客戶端遠程開鎖時抓取數據包,從數據包中獲取云端服務器IP,通過使用基于Kali平臺的Nmap(7.8)對其IP進行主動信息搜尋,獲取該網站服務器的端口信息以及服務器系統類型以及版本,實驗拓撲圖如圖1。

圖1 實驗拓撲圖
Nmap對服務器掃描過程會執行五種不同的測試,每種測試由一個或者多個數據包組成,目標系統對每個數據包作出的響應有助于確定操作系統的類型。五種不同的測試是:
1)序列生成(Sequence Generation)序列生成測試由六個數據包組成,這六個包是每隔 100 ms分開發送的,且都是 TCP SYN 包。每個 TCP SYN 包的結果將有助于 NMAP 確定操作系統的類型。
2)ICMP 回顯,兩個有著不同設置的 ICMP 請求包被送到目標系統,由此產生的反應將有助于實現驗證操作系統類型。
3)TCP 顯式擁塞通知(Explicit Congestion Notification),當生成許多包通過路由器時會導致其負載變大,這稱之為擁塞。其結果就是系統會變慢以降低擁堵,以便路由器不會發生丟包。這個包僅為了得到目標系統的響應而發送。因為不同的操作系統以不同的方式處理這個包,所以返回的特定值可以用來判斷操作系統。
4)TCP,在這個測試中會發送六個數據包。一些帶有特定的包設置的包被發送用來到打開的或關閉的端口。結果也將會因為操作系統的不同而不同。所有 TCP 包都是以如下不同的標志被發送:
①無標志
②SYN、FIN、URG 和 PSH
③ACK
④SYN
⑤ACK
⑥FIN、PSH 和 URG
5)UDP,這個測試由一個被發送給一個關閉的端口的數據包組成。如果目標系統上的這個端口是關閉的,而且返回一條 ICMP 端口不可達的信息,那么就說明沒有防火墻。
首先使用Nmap對云端服務器IP進行常規掃描,見圖2。

圖2 常規掃描
通過返回信息可知,該掃描被防火墻阻礙,且大概率是因為ICMP請求包被防火墻識別并攔截后續的包,因此將該次掃描改為不發送ICMP包,而是執行 TCP SYN 掃描,得到圖3結果。

圖3 服務器系統版本與端口
可以看到顯示了該云端服務器IP為Windows系統以及20個開放端口,并且得到了這些端口的用途。本次掃描成功繞過了防火墻,獲得了系統的端口信息
面對以上安全風險,我們可以利用一些技術或者管理的方法改善和避免這些安全風險,從而增加安全性。
將開放端口號設置為其他端口號,例如將ssh端口號(22)更改為其他端口,并將端口與端口號的信息記錄在管理文檔中。
使用狀態檢測技術的防火墻,狀態檢測技術是指從收到的數據包中提取狀態信息,并根據狀態表進行判斷,如果該包屬于已建立的連接狀態,則跳過包過濾的規則檢測直接交由內網主機,如果不是已建立的連接狀態則對其進行包過濾,依照規則進行操作。
使用代理服務技術的防火墻,代理服務技術是指代理端當接收到來自客戶端的連接請求后,從數據包中源和目的IP地址,同時使用維護人員制定的過濾規則判斷是否允許接受該連接請求。如果該連接請求被接受,則進行用戶身份識別。否則,則阻斷該連接請求。通過身份識別后,應用代理應該通過數據包中源和目的IP地址建立對應協議的連接,并且通過過濾規則傳輸和過濾該連接之間的數據包。當連接關閉后,應用代理關閉另一方連接,并且在代理服務器日志內記錄本次連接[2]。
本文從內部滲透測試與外部滲透測試的區別出發,對智能門鎖云端系統防火墻繞過進行了探究,針對包過濾技術的防火墻進行繞過處理,獲取了該防火墻保護的服務器的端口信息以及該服務器的系統版本,達到了繞過該防火墻的目的,并且提出了該安全風險的改善方案。