工作来源
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 会话
二者的数据更新还是相对及时的,65% 的 Token 都能在扫描到 15 小时内通过界面搜索到,24 小时所有的 Token 都能搜索到。
工作评估
扫描次数
47 天内,每个机器接受 27614 次 SYN 扫描,具体来说 Shodan 每天 176 次、Censys 每天 411 次。根据服务扫描热力图可知,Shodan 扫描 HTTP 的频率最高、Censys 扫描 HTTPS 的频率最高。
扫描时间
-
关闭的端口,扫描时间 < 1 毫秒
-
开放的端口,Censys 扫描 139 毫秒、Shodan 扫描超过 2 秒
-
Banner 抓取时间 < 3 秒
扫描方式
Censys 与 Shodan 的大多数扫描都是通过 RST 终止而不是 FIN。
Shodan 最常扫描 80 端口,Censys 最常扫描 443 端口。
常见扫描端口对应的服务为:
Censys 的扫描源一般局限于 20 个以内的端口,但 Shodan 基本都会超过 200 个端口。而 Shodan 将 Banner 抓取只分配给了少数扫描源。
Shodan 使用了多种 User-Agent 访问多个路径,Censys 始终使用相同的 User-Agent 访问根目录:
工作思考
网络空间搜索引擎从 2009 年 Shodan 发布已经走过了十余个年头,网空测绘确实已经越来越融入安全分析流程当中。从业界的反映来看,国内入局网空测绘的玩家越来越多,这个门类也逐渐变成了各个厂商都躬身入场的地方。就像一年多前的那篇文章中所说的那样:“抛掉那些浮华与热闹,深耕网络空间搜索引擎的核心能力才是成事之基、动力之源”。
此前也介绍过,现在各个厂商已经不甘止步于识别与发现网联设备,在数据基础上衍生出了各种花样,包括从这一视角下看俄乌冲突、HW 场景下的应用等。我们衷心地希望从事相关技术的研究人员能够为业界带来更准确及时的数据、更脑洞大开的玩法与更合作共赢的生态,带领行业走向下一个十年。
原文始发于微信公众号(威胁棱镜):Shodan 与 Censys 扫描一瞥
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论