呼吁相關部門出臺關于網絡空間測繪的技術標準
一、概述
網絡空間測繪的概念由白帽匯率先提出。在很長一段時間內,國內對于這個行業都不太關注。最近2年,尤其是去年,該行業得到了快速發展,各大網絡安全公司都開始布局。
雖然行業已經發展了幾年,但在行業標準、資質品類等方面,一直處于不成熟的階段。例如:至今廠商的相關產品在申請銷售許可證時都是向漏洞掃描器去掛靠的;由于是新興行業,一些非?;A的概念大家仍未能達成共識,在理解上產生了一些非常明顯的“偏差”。所以如果能得到更多關注,行業也一定能得到更加規范的發展。當然,我們也一直希望能為行業進步,貢獻一份綿薄之力。
近期,中國網絡安全年會中發布了一份關于“網絡空間搜索引擎技術調研”(https://link.springer.com/chapter/10.1007/978-981-33-4922-3_15#Tab1)的報告。報告中對比、分析了幾個知名的網絡空間測繪平臺,可見網絡空間測繪這個網絡安全細分領域的技術,已經贏得了來自有關權威部門的關注和認可,這對我們這些一直堅持在技術一線的團隊和公司來說,絕對是一件非常值得開心的事情。對于其中的一些說法和數據,我們認為存在一些問題,也有一些小小的建議和想法。在此,我們就“拋磚引玉”,和大家一起探討一下。
二、詳細描述
1、參考鏈接非權威來源,且缺少價值信息
圖1
上圖中,根據文章鏈接內容3(https://www.zoomeye.org/doc?Thechannel=user#d-service),作者嘗試說明ZoomEye的用戶手冊中提到了協議來源于NMAP-Services的描述。點進頁面后卻發現并沒有任何內容提到這一點,且連Nmap字樣都看不到。我們姑且認為是網站進行了改版,無法看到之前的信息,那么我們思考一個問題,我們可以宣稱參考了某個規范,它可以解讀為:a)我們實現了里面的部分協議;b)我們實現了里面的所有協議;官方未必有這個意思,而文章中顯然采信了第二種假設。于是我們做了一個很小的隨機抽樣測試,隨機選擇了NMAP-Services中的50個協議進行確認,ZoomEye只實現了其中的11種,這個證偽的過程是比較簡單的(具體測試方法,如果相關單位有興趣,可以聯系我們)。從另一個角度,如果以后各網絡空間測繪引擎在各自官網都寫上:我們的“協議參考了Nmap以及Wireshark”,這個領域對比是不是就簡單了?
文章參考鏈接的4(https://www.freebuf.com/articles/ics-articles/196647.html),是名稱為《2018年工業控制網絡安全態勢白皮書》的文章。調研報告中說Fofa的協議列表來源于此,但事實上引用的來源文章里面非但沒有提及Fofa。而且來源明確說了信息是“東北大學諦聽網絡安全團隊根據‘諦聽’網絡空間工控設備搜索引擎收集的各類安全數據”。此類情況出現在一篇嚴謹的學術論文里面,可能不太合適。退一萬步說,2018年的分析肯定不能與現在的另外幾家去比較。很簡單的邏輯:僅工業控制協議,Fofa從2018年起都增加了十個以上。
基于上述分析,我們認為數據的參考是不可取的。如果由各平臺自行報送,并由權威部門進行匯總整理,以及做驗證確認,數據價值才會更高,并且不會有失偏頗和公平。因為參考了不一定實現了,實現了不一定準確了,準確了不一定全網數據采集全面了。對比就是為了區分不同平臺的優劣勢,大家選擇發力方向不同,結果自然不同。
2、對比的核心維度概念模糊,存在不一致性
圖2
其中這一張圖比較有代表性。首先介紹一下在網絡空間測繪領域比較重要的幾個基本數據的統計維度:
1)網絡資產數:
通俗一點就是數據記錄條數,技術上說就是用什么作為存儲的key值。不同的平臺實現的機制并不一致,例如:Shodan是按照ip:port存儲,Fofa和ZoomEye是按照host:port存儲,360的Quake平臺是根據ip:port:date存儲。因為Shodan選擇的是只針對IP層面進行分析,所以他們直接放棄了主機域名的分析。一個IP可以對應任意多個域名,所以說Shodan做針對某個企業的互聯網暴露面梳理效果比較差。其他平臺都采用了網站域名的方式,數據量差別比較大,目前Fofa的主機域名數暫時來說還是有一些優勢的?;趆ost:port的方式會存儲兩個數據存儲:一個叫熱數據,比如昨天發現了1.1.1.1:80,今天又發現了,在你熱數據中會發生覆蓋,只會有一條最新的;另一個叫冷數據或者叫歷史數據,大家按名字理解就好。Quake平臺稍微特殊,由于加入了date作為key,會導致一個IP的同一個端口,可以查詢出來多條數據。
2)獨立IP數:
基于上面的說法,大家就知道,記錄數不代表IP數,一個IP開了多個端口,就對應多條記錄。大家通常對IP比較容易理解,所以Fofa在搜索的時候會明確告知聚合后的IP總數有多少。在Shodan直接查詢一個端口,例如:port:80,以此搜索出來的統計數據就是準確的IP個數,其他平臺大家可以自行分析方法。在硬件(物聯網或者服務器)領域,IP和硬件是一一對應的,但在軟件應用領域,一個IP可以承載任意多個應用,這也就是我們俗稱的攻擊點。
3)指紋規則數:
一條指紋規則簡單來說就是能夠用于識別某一類設備或者軟件的查詢語句。這是Fofa最先提出的,早期各平臺都內嵌了一些簡單的設備識別庫,并未提供html等大文本的關鍵字檢索,所以用戶無法自定義規則和保存。Fofa一開始的設計理念就是用戶更懂場景,所以放開了這種方法,讓用戶來自定義識別的語法,然后可以保存下來方便后續使用。最初我們叫應用規則庫,后來慢慢叫法各異,有叫指紋庫的、有叫規則集的,還有叫軟硬件識別庫的。一條指紋可以對應任意多條設備。目前論指紋規則庫,Fofa在數量上還是有一點點優勢的。
4)特定規則集匹配的網絡資產數:
如上所述,一個規則查詢的結果其實就是匹配的網絡資產數,所有指紋規則庫匹配的網絡資產數基本就是全庫了。
圖3
如果上面說的還是難以理解,現在通過上圖這個簡單的示例來說明:我們嘗試搜索互聯網中開放的Apache網站服務器數量,我們可以在Fofa中檢索app="APACHE-Web-Server",這時返回的11682萬代表了互聯網中存在的所有使用了這個服務器的資產數,其中網站和協議是可以有重合的,分別對應7446萬和4235萬,因為一個80端口在協議中是存在的,但是它可能會綁定多個域名。獨立IP只有2918萬,是因為一個IP的apache服務器可以綁定到多個端口。
回到圖2來看,就是一個非常有意思的結果了:Shodan對應4億,ZoomEye對應11億,Fofa對應27萬。我們相信每一條數據作者都是經過思考和挑選的,只是沒能梳理清楚,到底是全網的網絡資產數、獨立IP數、指紋規則庫的數量、抑或特定規則集匹配的網絡資產數,甚至是可能沒有分清是熱數據還是包含了歷史數據?如果不在一個維度來對比,也就沒有太大的參考價值了。
另外,值得強調的是,哪怕是在一個維度進行對比,單純的對比數據也存在很大的誤導性,比如Shodan只拿出一個月的數據作為熱數據,老的數據并未展示(沒覆蓋的也不顯示),而ZoomEye則是把歷史數據都展示出來,所以實際上很難統計出一個公允的結果。在對比時,我們要考慮一定時間內數據的獲取能力(注意必須要考慮一定時間內),要考慮數據的深入性和準確性(比如協議或者規則)。如果沒有這些,就必然出現各大平臺玩起了刷數據的游戲,樂此不疲。如果Shodan隱藏實力,我們向它學習還是有意義的。
3、數據抽樣測試參考標準存在差異,直接影響了結果
這里必須幫ZoomEye說一句話:如果作為互聯網使用量最大的HTTP協議一輪掃描需要超過一年時間,基本上這個平臺就廢了,ZoomEye不至于這么不濟。Shodan的周期稍微有些偏差,ZoomEye和Fofa的時間則是存在很大的問題。這幾個協議是互聯網使用最多的,數量大變化快,能夠很好的用于實戰體系中,所以各家都比較重視,不會存在不抓取的情況。
在圖中出現了“-”說明沒有掃描數據,而Shodan和Censys有,我們大膽地推測拿出來的對比測試的IP是以Shodan或者Censys為主的(這⼀點只是推測)。由于網絡變化太快,一個IP端口上線后快速下線,所以哪怕在一天一次這種極速輪詢過程中,一定會出現一些IP剛好只被一個平臺抓到,在其他平臺都沒有抓取到。舉個反例,比如24.232.7.242這個IP,大家到各平臺搜索一下,你會發現這個IP對應的23端口只存在于Fofa平臺,這僅僅能證明那一天剛好被Fofa抓到了,其他平臺到它那去的時候23端口已經關閉,但由此一定證明不了Shodan或者Censys的掃描頻率是“-”。
實際運營過程中,大家會把不同的端口進行分組,一個端口可以存在不同的掃描集群中,比如一個大端口(覆蓋大量IP的端口)可能同時并行的存在不同的端口組策略中,并行地進行掃描。又由于大網的端口掃描一定是隨機IP的,也一定存在網絡抖動的,所以依靠一次完成95%的數據相似度根本就不可能。大家會進行不斷的輪詢掃描,盡可能覆蓋最新上線的資產。那種嘗試用Nmap實現端口掃描和協議識別的網絡空間測繪技術, 暫時打一個問號,宣稱即快又全又準的,內網可以,全網掃描很難。
4、其他一些細節點
1)協議分類和設備分類是否為同一個概念?
2)Domain database這一項提到了只分析了top 100萬Alexa排名域名的Censys,沒有提域名存量最多的Fofa?
3) 探針分布的分析維度?
這些細枝末節倒也無關痛癢,只是大家對權威論文的理解是:分析方法應該經得起公示、經得起挑戰,如果存在諸多不明確,很容易產生分歧、引起誤會。
三、總結
Shodan是第一個開拓者,大家或多或少會受其影響,站在老師傅的肩膀上前行。今天老師傅還是老師傅,無論是從基礎的投入、數據的嚴謹性,還是歷史存量數據的積累和功能的豐富程度等等,國內的平臺暫時都還難以與其并行。不過,我們當然也存在彎道超車的可能,我們也看到了很多機會,只是在當下,任何一家公司單方面宣布是世界第一,還是欠妥。一個讓我們值得深思的問題:論實戰化的能力,如果真的需要對攻對防,我們這些儲備真的夠嗎?
我們要關注各種數據的對比,根據我們這些年對網絡空間測繪的理解,網絡空間測繪的技術對比維度,應該聚焦于實戰,應當包含如下一些點:
1. 資產總量(歷史存續數據、域名數據等)
2. 支持的端口和協議
3. 搜索和展示字段數
4. 數據更新速度(每周、每月)
5. 數據準確度(協議、規則等)
6. 協議解析深入度
7. 產品規則數
8. 活躍用戶規模
為了滿足實戰化,以及持續性的常態實戰化。我們呼吁相關部門能夠針對網絡空間測繪這一個細分領域給予指導,出臺相關的技術標準和規范。標準化一些概念和名稱,規范化搜索關鍵字和語法,統一化數據的存儲格式,歸一化資產的分類和分層。進而制定出對應的技術評判標準,最終引導行業步入健康有序的發展,為國家創造更多更好的技術輸出。


























