工作来源

SIGCOMM 2025

工作背景

最初 Censys 只是一个提供网络空间扫描数据的学术项目,逐渐对外提供商业服务后,数据的准确性和时效性要比数据的广度更重要。

现实中,大量服务运行在非标准端口,服务生命周期极短(尤其在云环境中)。并且,由于扫描位置的视野局限,扫描数据不可避免地会存在盲区。

工作评估

Censys 不再对用户直接暴露原始的扫描数据,而是以主机(Host)、网络资产与证书三类实体进行数据组织。

首先进行的 L4 服务探测分为四部分:① 常规扫描,针对 100 个常见端口和 100 个 IANA 分配的重要端口;② 高频扫描,针对云服务商的 300 个常用端口;③ 全端口扫描,大约九个月会扫描(8Gbps 速度)一遍 IPv4 空间的全部 65535 个端口;④ 预测式扫描,机器学习模型预测非标准端口。后续进行的 L7 服务探测主要是对应用层协议进行识别,支持约 200 种协议。

整体采用命令查询责任分离(CQRS)架构,写入侧可以高吞吐地接收和处理海量的扫描数据,数据存储在谷歌云的 Bigtable 中(delta encoding 存储变化),读取侧富化上下文(地理位置、软件指纹等)。

Censys 现在在北美(芝加哥)、欧洲(法兰克福)、亚洲(香港)部署了多个扫描点,对扫描路径进行持续优化和调整。

Censys 现在使用 Go 语言编写的新引擎替换 Zmap,每秒发送 2650 万次探测请求,平均每秒识别 1.1 万个服务(每天 9.5 亿)。Greynoise 披露,其蜜罐平均每分钟收到 20 次扫描探测。

IP 服务至少每日刷新一次,Web 资产至少每月刷新一次。如果一个服务在一次扫描中无响应,会在 24 小时内从其他扫描点进行探测尝试,同时被标记为待移除,72 小时后仍然无法访问就会被正式移除。Censys 的设计是准确性要优先于覆盖率,尽量保证查到的数据都鲜活准确。

其他网空引擎宣布的服务数量远远超过 Censys,但其中含有大量过时数据。ZoomEye 返回的服务中只有 10% 是实际在线的,但 Censys 这一数值为 92%。

过滤掉过时数据与重复数据,Censys 的活跃服务覆盖率遥遥领先。据估算,Censys 覆盖了 TOP10 端口上 98% 的服务、TOP100 端口上 97% 的服务、全部端口上 62% 的服务。

部署蜜罐,Censys 发现新服务的平均时间为 12.3 小时,而 Shodan 需要 76.5 小时。ZMap 是以损失 3% 响应服务为代价,换取极致的扫描性能的。

对 IPv6 的扫描依赖于从 DNS、证书等渠道获取已知的地址,全部 IPv6 空间全面扫描是个巨大挑战。最近也开始采用类似 6sense 的方式进行 IPv6 空间扫描,后续会进行扩展。

工作思考

Censys 早已不是十年前那个 Censys 了,ZMap 和 ZGrab 也都用 Go 重写了。

现在 Censys 每年新增 500TB 的数据,也在努力开放给社区使用。从 2018 年到 2024 年一共处理了 959 次数据使用申请,为 1221 名研究人员提供了访问权限。截至 2024 年 11 月,仍然有 239 个组织的 433 名研究人员保有访问权限。

Censys 也在大力推进公私合作,例如 2024 年 10 月,Censys 发现美国 268 个城镇的供水系统可以被未经身份验证的控制。Censys 通过与美国环境保护署合作,删除了 97% 的威胁。

声明:本文来自威胁棱镜,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。