打开网易新闻 查看更多图片

近期,谷歌开源了一款名为海啸(Tsunami)的漏洞扫描软件,针对数千甚至上百万互联系统组成的大型企业网络。目前该系统已在谷歌内部使用,并已于上月在GitHub上提供。因此,Tsunami不会是谷歌官方品牌的产品,而是由开源社区维护,类似于谷歌首次向大众提供Kubernetes(另一个谷歌内部工具)。
Tsunami工作原理
市场上已经有数百个其他商业或开源的漏洞扫描软件,但Tsunami的不同之处在于,可以适用于谷歌自身这样的巨型公司。它能够管理数十万台服务器、工作站、网络设备和连接到互联网的物联网设备。谷歌表示,设计Tsunami的目的是为了适应极其多元化和极其庞大的网络,而不需要为每种设备类型运行不同的扫描软件。
它先将Tsunami分成两大部分,然后在顶层添加一个可扩展的插件机制。
第一个Tsunami组件是扫描软件本身——或者说侦察模块。这个组件会扫描公司的网络,寻找开放的端口。然后,对每个端口进行测试,识别每个端口上运行的确切协议和服务,以防止误标端口和测试设备的错误漏洞。端口指纹模块基于业界测试过的nmap网络映射引擎,也使用了一些定制代码。
第二个组件比较复杂,基于第一个组件运行的结果而运行。它将每个设备及其暴露的端口,选择一个漏洞列表进行测试,并运行良性漏洞来检查设备是否容易受到攻击。漏洞验证模块也是Tsunami可以通过插件进行扩展的方式——安全团队可以通过插件增加新的攻击载体和漏洞,在网络内部进行检查。
目前的Tsunami版本自带的插件可以检查:

1. 暴露的敏感用户接口。像Jenkins、Jupyter和Hadoop Yarn这样的应用,都带有允许用户调度工作负载或执行系统命令的用户界面。如果这些系统在没有认证的情况下暴露在互联网上,攻击者就可以利用应用程序的功能执行恶意命令。

2. 弱验证。Tsunami使用其他开源工具,如ncrack检测SSH、FTP、RDP和MySQL等协议和工具使用的弱密码。

谷歌计划在未来几个月内通过新的插件来增强Tsunami,以检测更多种类的漏洞。所有插件将通过第二个专用GitHub仓库发布。
项目将专注于避免误报
未来Tsunami将专注于满足像自己这样的高端企业客户的目标,以及这些类型的大型和多设备网络中触发报警的条件。扫描精度将是首要目标,该项目专注于尽可能避免误报。这一点非常重要,因为扫描软件将在巨大的网络中运行,即使是最轻微的误报也会导致向数百或数千台设备发送错误的补丁,可能会导致设备崩溃、网络崩溃,浪费无数的工作时间,甚至对公司的业务造成损失。
此外,Tsunami还可以扩展为只对有可能被攻击高危漏洞才报警,而不是像现在大多数漏洞扫描软件那样,专注于扫描所有的漏洞。