Shodan 與 Censys 掃描一瞥
工作來源
MADWEB 2021
工作背景
Shodan 在 2009 年提供商業服務,Censys 在 2015 年完成開發,二者都提供互聯網范圍的探測掃描數據。Censys 研發了一整套方案(包括 ZMap、ZGrab 等),先掃描整個網絡空間查看開放服務的端口,再收集端口的 Banner 信息。Shodan 的掃描方式目前沒有對外公開。
二者作為業界的佼佼者,數據是否新鮮?掃描是否消耗目標資源?二者有什么典型的區別?
工作準備
在全球五個位置部署 AWS EC2 機器:美國圣何塞、日本東京、加拿大蒙特利爾、法國巴黎與巴西圣保羅。每個機器上部署四個服務:FTP(vsftpd)、SSH(OpenSSH)、HTTP、HTTPS(Apache),用于收集端口掃描與 Banner 抓取信息。從 2020 年 3 月 10 日開始,一共收集 47 天數據。
工作設計
Censys 公布了掃描 IP 地址,而 Shodan 可以利用域名反查 IP 地址,利用該方法收集掃描源 IP 地址列表。
使用 pcap-splitter 庫提取、分組屬于同一會話的數據包。并進行標注:
- S:會話中單個 SYN 數據包
- SRE:會話中第一個數據包包含 SYN、第二個數據包包含 RST
- SR:會話中第一個數據包只有 SYN、第二個數據包包含 RST
- SAR:會話中第一個數據包只有 SYN、第二個數據包只有 SYN 與 ACK、最后一個數據包有 RST
- BG:達到建立連接狀態的 TCP 會話,包含至少一個 ACK,以 TCP 連接釋放或者 RST 為結束
- Dangling TCP 握手:不包含 ACK 且不包含 RST/FIN 的 TCP 會話
- Dangling TCP 會話:包含 ACK 且不包含 RST/FIN 的 TCP 會話
由此可以進行分類:
- 封閉端口掃描=SR+SRE
- 開放端口掃描=SAR+Dangling TCP 握手
- Banner 抓取=BG+Dangling TCP 會話
以 80 端口上的 HTTP 服務為例,跟蹤 Banner 抓取的更新頻率。每天為每個機器生成一個唯一的 64 位 Token 字符串,并且在美東時間晚十點更新到首頁上。

分析 PCAP 流量文件,可以發現很多 Token 從未被 Censys 與 Shodan 掃描到。事實上,47(天)×5(機器)=235 個 Token 中,Censys 掃描到了 25 個、Shodan 掃描到了 19 個。而總共 Censys 抓取了 46 次、Shodan 抓取了 102 次,即便這樣也沒有掃描到所有 Token。
二者的數據更新還是相對及時的,65% 的 Token 都能在掃描到 15 小時內通過界面搜索到,24 小時所有的 Token 都能搜索到。

工作評估
掃描次數
47 天內,每個機器接受 27614 次 SYN 掃描,具體來說 Shodan 每天 176 次、Censys 每天 411 次。根據服務掃描熱力圖可知,Shodan 掃描 HTTP 的頻率最高、Censys 掃描 HTTPS 的頻率最高。

Banner 抓取與之類似:

掃描時間
- 關閉的端口,掃描時間 < 1 毫秒
- 開放的端口,Censys 掃描 139 毫秒、Shodan 掃描超過 2 秒
- Banner 抓取時間 < 3 秒
最長的會話持續時間為 248 秒,Shodan 在抓取位于加拿大蒙特利爾主機上的 HTTPS Banner 時創下的記錄,抓取只花費了 42 毫秒,但 RST 數據包延時超過 248 秒。

掃描方式
Censys 與 Shodan 的大多數掃描都是通過 RST 終止而不是 FIN。
Shodan 最常掃描 80 端口,Censys 最常掃描 443 端口。

常見掃描端口對應的服務為:


掃描源的分布如下所示:

Shodan 40% 的掃描源觸達了所有機器,三分之一只掃描了一臺機器,而 Censys 大多數掃描源都掃描到了所有機器。由此推測,Sodan 會對掃描空間進行分割,每個掃描源處理一定范圍,而 Censys 則是全空間水平掃描。

計算了 Shodan 掃描源與主機位置的平均距離,似乎除了蒙特利爾的主機都并無較強關聯。

分析蒙特利爾的數據可知,由于 Shodan 的一些掃描源只掃描特定端口的集合。
Censys 的掃描源一般局限于 20 個以內的端口,但 Shodan 基本都會超過 200 個端口。而 Shodan 將 Banner 抓取只分配給了少數掃描源。

Shodan 使用了多種 User-Agent 訪問多個路徑,Censys 始終使用相同的 User-Agent 訪問根目錄:

根據掃描與 Banner 抓取時標準差來看,Shodan 比 Censys 稍微穩定一些。


工作思考
網絡空間搜索引擎從 2009 年 Shodan 發布已經走過了十余個年頭,網空測繪確實已經越來越融入安全分析流程當中。從業界的反映來看,國內入局網空測繪的玩家越來越多,這個門類也逐漸變成了各個廠商都躬身入場的地方。就像一年多前的那篇文章中所說的那樣:“拋掉那些浮華與熱鬧,深耕網絡空間搜索引擎的核心能力才是成事之基、動力之源”。
此前也介紹過,現在各個廠商已經不甘止步于識別與發現網聯設備,在數據基礎上衍生出了各種花樣,包括從這一視角下看俄烏沖突、HW 場景下的應用等。我們衷心地希望從事相關技術的研究人員能夠為業界帶來更準確及時的數據、更腦洞大開的玩法與更合作共贏的生態,帶領行業走向下一個十年。