网络空间测绘技术对安全研究人员而言,最大的价值在于跳过繁琐的数据采集细节,把精力能够聚焦到技术本身。举个例子,zmap有一个参数非常好用,-N参数表明我这会只想要几个开放了特定端口的IP,在哪不重要,什么系统也不重要,是谁更加不重要,这个参数基本就是为了一个研究人员准备的。而网络空间测绘技术让技术人员更聚焦目标,比如cisco出了一个漏洞,我当然更关心漏洞原理,而不关心设备,但是如果没有设备,你就无法验证漏洞原理,你买来不及(也买不起),这时候,你想打个响指,心里默念“请赐予我几个cisco的设备吧”,然后几个IP丢你眼前。讲白了,这才是网络空间测绘技术最初的黑魔法。研究人员不用去买,不用去借,也不用去模拟设备,不用去搭建环境,打个响指就行。

第一篇也提到了,不同的平台的侧重点不同。比如shodan在IP设备层面越做越深,fofa则是要做全球“设备和应用规则集”(后续统称规则集)最全的平台。事实上,一般的安全研究人员可不管你说了什么要做什么,他们只关注“老子想怎么用”。所以攻击面的梳理和特定设备的全网分布采集,变成了安全技术研究人员用得最多的场景。这么说还可能比较拗口,我们不妨再傻瓜一点,客户希望:

1、输入一个产品(硬件设备或者软件业务系统)你告诉我全球的分布范围;

2、输入一个IP,你告诉我它是什么?比如网络属性(ASDL,IDC机房,企业网络,云服务商等),比如硬件属性(物联网,服务器,台式机,工业互联网等),还有业务属性(数据库,网站,OA,邮件系统,VPN系统等)。同时输出开放的所有端口和协议等基础网络信息。

3、输入一个企业,你告诉他的所有IP列表;

这三点非常非常基础,大家也非常容易对应上需求,但是这里其实并不包含安全属性,安全是目的,网络空间测绘是过程。但是,说起来越简单的需求,每一项实现起来都非常有挑战性,以至于用户基本上几家平台都同时使用。大家的想法也无可厚非,“有些数据这家有,有些数据那家有”,“他家这个功能特别好用,那一家有个功能是独有的”。导致这种差异的原因有很多,可以总结为如下几种能力的对比:

一)元数据的网络采集能力

二)元数据分析能力

三)数据应用场景落地能力

四)情报采集能力

接下来,我将就这四个部分进行详细的说明。稍微补充一句,基于上次zoomeye朋友的过激反应,我们本次分析的平台主要针对shodan,censys,fofa三家,zoomeye的数据我就不列出来了,避免不必要的误会。另外,很多专业人士可能会知道,除去这几家,其实还有比如sonar,binaryedge,shadowserver,expanse,傻蛋,这些要么在特定的细分领域,要么只是部分公开,要么是还不足以支撑大量的用户群体,所以本篇我们不做全对比。这里的对比也只针对全互联网范围的测绘平台,不包含内网测绘技术。

一)元数据的网络采集能力

基础数据的网络采集能力,主要取决于几个显性的指标:可用的扫描带宽,被扫描的网络范围,扫描的端口数量和协议数量等因素。实际上你要完全按照这个来估算的话,你就发现问题太大了,你按照数据模型准备好的机器带宽,跑一段时间就会发现数据更新太慢了。比如一个大带宽的服务器会比多个小带宽的服务器丢包率要高,所以网络节点数,以及网络质量是几个隐性的指标;再比如单节点大带宽的扫描会导致来自被扫描网络的投诉,网络提供方会不会处理是一个很拍脑袋的行为,很多运营商会及时处理立刻断网,这也是一个更隐形的指标,如果这些问题解决不了,数据是不会很好的采集过来的。我们用一个简单的对比表格来说明一下:

引擎

总带宽

扫描节点数量

端口数

协议数

周期

备注

shodan

20G

30+

333

187

一个月

单节点大带宽

censys

10G

300+

34

28

每周

IP最多,端口最少,所以更新速度最快

fofa

5G

100+

349

237

三个月

支持的协议最多

关于周期部分,是比较清晰可算的,显性的公示为:全网采集周期=总带宽/(端口数 * 扫描IP范围)。实际情况如我上面所说,受到的干扰其实比较大,有些甚至是毁灭性的,没做过平台实际运营的,没有接受广大技术人员使用和挑战的,都是一种想当然,这种想当然只能输出一个看似完整的demo,并不能形成聚合效应。

全端口有65535个,协议就是完全看你关注的点去录入,同时,同一个端口号可能对应不同的协议,一个标准的http端口比如80可能是ftp协议,所以,这里一定要解释一下:截至目前,没有任何的平台会针对全网扫描全端口,也没有任何一个平台会对单端口进行全协议遍历。我之所以这么说是因为,很多“领导”都会瞎指挥,你说做网络空间测绘,他说好,这方向是对的,咱们要把他做到最好,端口全,协议全,最好每天一个周期。我们按照“领导”的意思把天文数字的预算做了出来,“领导”说,这个问题我们可以先放一放,有更重要的问题要解决。IPv4是接近43亿的空间,除去保留的IP段,大约还有十几亿实际使用的,乘以65535个端口,再乘以1000个协议,这已经是个很庞大的数字,如果再考虑IPv6的话,这个任务无法实现。所以,我们要选择在具体的场景下做侧重或者取舍,这也就是为什么不同平台都有自己的独特生存之道。

还有一个问题很多朋友都比较关注,对于网络测绘的行为(就是端口扫描)合法性问题。当然大家的态度并不一样,法律没有明文说不可行(未授权的漏洞扫描一定违法,但是端口扫描属于开放性测试,跟网络调试类似,所以在判定上有一定的浮动性),但是也没有明确说可行。这个内容我会在下一篇也是最后一篇做阐述。

二)元数据分析能力

基础的元数据采集只是万里长征的第一步,对于一个本身都对外开发的端口,根据协议返回对应的banner信息,这实在是没有什么值得说的,无论是zmap还是nmap来说都能非常好的完成这个基础功能,一个稍微会做一点网络编程的都能做出来。数据是死的,它并不会主动告诉你世界上发生了什么,需要你对他进行分析和解读。而网络空间测绘技术要做的是基于这些元数据之上的更高阶的决策依据。

我们就举两个例子来进行说明:

1)针对安全事件的分析;安全人员每天做的一个最基础的工作是盯着全球的漏洞库,看看出了哪些漏洞,然后对漏洞的影响范围做一个预判,在必要的情况下进行漏洞扫描和验证甚至是利用。比如出了一个wordpress的漏洞,那么你如何从元数据里面提取使用wordpress建系统的全球或者全国的分布?你可能会说google中搜索wordpress就可以,实际上当然不行,你得到的大部分都是介绍wordpress的下载或者使用的教程,这跟我们的初衷相去甚远。熟悉fofa的朋友会很清楚,搜索app="WordPress"就能得到想要的答案(点击链接感受一下:https://fofa.so/result?qbase64=YXBwPSJXb3JkUHJlc3Mi)。当然,不仅仅是网站系统,我们也可以搜索物联网设备,比如app="TPLINK-摄像头"(https://fofa.so/result?qbase64=YXBwPSJUUExJTkst5pGE5YOP5aS0Ig%3D%3D)。这就是一个很有意思的问题了,从最初的元数据,如何对应上具体的软件系统和硬件设备呢?我们把他们叫做规则。整个流程我简单解释一下,我们先采集了开放的端口我们存到port字段,然后分析了协议存到protocol字段,对应的响应存到banner字段(实际上还有很多,比如证书cert,title,server等等),然后我们分析认为如果banner中存在某个字符串,或者证书cert中存在某个特定的名称,我们认为就是一种设备。通过不同字段定义了一种设备或者应用系统的查询方式,我们把它叫做规则,这就跟人的指纹一样,所以我们有时候也把规则叫做IT设备类型指纹。分析的这个过程叫做规则采集(数据分析)。还是拿wordpress举例,你可以简单的(当然实际上比这要复杂的多)认为是:header="X-Redirect-By: WordPress" && body="wp-content" 。这就是典型的元数据应用的一个方式。不同的平台有不同的“预置规则“,比如shodan很多规则来自于nmap的开源数据,它没预置的部分,你就得自己保存起来,要的时候再敲入完整的语句。而fofa的设计原则是,我们假设用户比我们更聪明,他们能产生更多的数据分析能力,于是我们把”预置“的权利交给了用户。我留一个课后题目:如何分析某个国家特有的业务系统?(我们知道像天融信之类的产品是国产的,那么加拿大有哪些?这考量我们如何直接通过元数据找到一个未知问题的答案。)

2)数据泄漏的跟踪;这个场景是实际攻防中非常重要的一个方向,2019年曝光了多起针对中国的数据泄露案例。类似于elasticsearch,hadoop,mongodb,solr在内的大数据引擎,默认不设认证,导致了大量的数据泄漏情况发生,这在之前也做了相关介绍。拿elastic举例,最初平台是可以比较简单的识别出来,比如你在body中搜索"You Know, for Search"这个魔术串就行,特征非常明显。然而这并不能帮助我们进行深入的数据分析,比如:这个实例中,有多少个索引?多大的数据存储量?多少个记录数?这些问题也非常好回答,你再发几个包,默认的api接口都能够返回。核心问题就在于这些是我告诉你的,如果我不说你可能就不知道要这么分析。如果这么做了,你就能回答几个更高层次的问题:全球有多少数据库发生泄漏?泄露了多少条数据?有没有敏感的数据,或者敏感单位的数据?哪些国家多?这些都不是元数据能告诉给你知道的,需要你去分析。所以很多平台已经把这些中间的分析结果作为展示件了,比如https://www.shodan.io/search?query=elastic 就能看到分析后的结果。我只是拿数据库的分析作为一个例子,实际上不只是数据库,还有工业控制系统的态势分析,物联网的分析等。

三)数据应用场景落地能力

这是最要命的产品化能力了。从数据,到项目,再到产品化,这是网络空间测绘技术无法绕过的几道坎。

网络空间测绘技术很有用,但是又特别抽象,好听的说法叫做可以适配所有基于网络的场景,不好听的说法是没有任何一个用户场景是你为他量身定做的。我一直把这个技术比喻成晶体管,谁都知道有用,在没有做出收音机和袖珍计算器之前,晶体管只是研究型的存在,一直到收音机和计算器问世,才有了后续的爆炸式发展,今天作为人类科技的一个最基础的组成部件随处可见。

如何能落地为某些客户群能够真正用起来的产品,变成了后续大家方向的不同。比如shodan在卖数据的路上越走越远,他们的数据积累与用户以及品牌的积累,允许他们靠卖API作为商务模式,提供了类似于威胁情报基础数据的场景。censys在企业端的路上也是走的很坚定,通过提供SaaS模式的平台(类似的还有expanse等),提供基础的数据采集和深入的分析展示能力。对于fofa而言,做企业端的集成资产攻击面梳理,加上漏洞应急的设备类产品,是在国内生存的必经之路。这些远远没有将网络空间测绘的能力发挥到最大,只是刚刚开始,但是随着技术的快速推进,尤其是安全需求的巨大增速,这个技术会得到应有的尊重。

目前大家在具体的一些能力方面也做了一定的尝试,每一个细分支都能做出一个独立的子系统:

引擎

域名

设备分层

规则库

用户自定义规则

远程桌面截图

历史数据

摄像头截图

识别蜜罐

历史变化情况

更新通知

icon查询支持

html检索

本地化部署

数据泄漏分析

shodan

-

-

-

-

-

-

censys

-

-

-

-

-

-

-

企业产品有

-

-

-

fofa

支持

-

部分

-

-

企业产品有

-

-

支持

具体的点这里我不展开了分析,很多大家可以拍脑袋想想,很多故事的。此处省略一万字……

目前的百花齐放是一种比较良性的竞争环境,大家都在做“安全届的谷歌”,我们认为一个开放式的检索平台,是有利于行业大发展的,同时聚集了广泛的社群资源,能够通过量变变成质变。

四)情报采集能力

这一部分大家很少放到台面上来说,你提供的是数据,采集的却是情报。很多朋友说为什么要做公开的平台,不做一个小范围的平台?通常都是大家并没有真正意识到核心的价值。谷歌做舆情非常拿手(排除社交app啊,请不要抬杠),不仅仅是它掌握了所有的数据来源,获取了公开数据,更多的是它掌握了哪些人会关注哪方面的内容,这种带有并联信息的情报才是更高阶的能力。

人民群众的力量是广泛的,是强大的,具备无法想象的潜力,“聚沙成塔”这个成语比较能代表这个意思。无论是metasploit,还是nmap都是积累了大量的群众力量。shodan是行业内最早的平台,聚集了大量的安全研究人员,大家获取数据生成报告用shodan,做数据分析用shodan,做数据泄漏抓去用shodan,做物联网安全用shodan。shodan的平台数据并没有太大的核心竞争力,因为数据是快速更新的,你只要投入足够的带宽服务器就能完成超越,但是这又有什么意义呢?上面也进行了说明,元数据的采集比拼的是技术,后续的分析,进一步的加工和给出决策依据,虽然说靠的也是技术,但是不是光投钱就能完成的(或者说不是投小钱能搞定的)。比如规则库,漏洞库,事件情报库,热点方向等(再敏感的不敢说),像hackerone就能输出全球安全人员的生存状况,虽然很多顶级黑客还是不跟他们玩,无关紧要,他们的报告已经最全面最能代表真实的情况,没有人比他们更好。同样的,shodan的用户数最多,产生的情报就是最多的,至于有没有做分析咱们再说。所以这是一个抢用户的年代,根本不是保留数据做收费的时代,想不清楚这一点的,尤其是闭门造车,认为自己比其他人聪明的,都会摔跟头。

安全数据的积累就跟中医一样,越往后越值钱。做平台是未来会引发技术变革的大方向,而不仅仅是单机类的工具。

网络空间测绘是一门基础技术,最初从大数据安全开始,后来衍生到了“互联网暴露面梳理”,大部分人还刚刚认识到要关互联网的门,距离理解内部的纵深防御还相去甚远。所以从攻防效果方面来考虑,大家还理解不了区区的“资产管理”这种做了几十年的老东西,还有什么值得做大量投入的。我想起一个领导说的话,他说以前我们总觉得自己是穷人,家里一穷二白没什么东西可偷的,夜不闭户也是路不拾遗,过了一段时间,突然发现我们变成了村里数一数二的大财主了,别人看来都是宝贝,都惦记着想偷点什么。网络安全就是这样,以前不觉得咱们家东西丢了有什么可惜的,现在发现不是这样,这些东西丢了被破坏了,这个家也就不存在了。我们也就是那个唐僧,自己还被绑着呢,看见电闪雷鸣喊一嗓子:“打雷咯,下雨收衣服呀”。怕就怕,帮我们守着财富的,都只是一个短工,听了也就听了,只要不耽误大家收工钱,什么都可以先放放。是时候清点清点了,也是时候管一管了。

参考:

- 1. [How to block Shodan scanners](https://wiki.ipfire.org/configuration/firewall/blockshodan)

- 2. [mapping the internet, who"s who part three](https://duo.com/decipher/mapping-the-internet-whos-who-part-three)

- 3. [What does Censys scan?](https://support.censys.io/en/articles/1287810-what-does-censys-scan)

- 4. [shodan API](https://developer.shodan.io/api)

- 5. [Brief History of Internet Wide Scanning](https://hackertarget.com/remote-access-granted/)

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