网络空间测绘的生与死(三)
前两篇讲到了一些网络空间测绘的整体思考,网络空间测绘技术就是为了画出网络地图,这些画出来的地图会用到很多不同的场景。比如一个漏洞出来后对全球的影响范围,比如分析全球公开可以调取视频流的摄像头,再比如刻画全球数据泄露(比如公民数据)的情况,也可以是特定地域内的工业控制系统型号排名。估计大家就比较容易打哈欠了,“什么玩意儿,这都不是正常人会干的事儿,一点价值没有”。我并不否认这一个结论,确实一点意义都没有,正常人都干不出这些事,关键“敌人”们可不都是些非正常人吗?这些事情不对人类产生任何价值,既不会推动人类科学的进步,也不会给大家多一快面包。可是,如果用来做破坏,那简直就是居家旅行必备之良药了。
网络生存法则跟黑暗森林法则类似,如果想安全的生存下去,你就需要隐藏自己,因为“一旦被发现,就必然遭到打击”。被攻击是必然的,不被攻击是极其偶然的特例。理论上没有攻击不下来的系统,被攻击只是一个时间问题,考虑的只有成本和收益。所以当我们跟踪发现某重要单位的机器被用于挖坑,某国的银行系统被几毛钱作为shell卖掉的时候,我们很惊奇地发现,攻击者根本没有意识到被控系统的重要性,属于“顺手”的行为。既然被攻击是必然的,有漏洞是必然的,那么企事业单位如何去衡量防护的有效性?在野蛮生长的早期基于合规性逻辑,最原始的判断方式就是有没有建立产品防护体系,比如购买了防火墙IDS扫描器之类的;随着技术的不断升级与完善,我们不再是像以前那样茹毛饮血,所以大家提出了更高更科学的评判方法:是否能够有效的对重要系统(关键信息基础设施)进行保护,包括数据存储的安全性,业务运营的稳定性。
网络防护不可能做到杜绝漏洞,如果把目标定成这样,那大家就陷入无穷无尽地痛苦中去了。在我们做了大量的基础数据分析和事件跟踪的前提下,我们总结出一个评估安全防护有效值的简单公式:
p = 1 / ( a * t )
其中p代表防护有效值,a代表攻击面,t代表漏洞响应的平均时间。可以看出:防护有效值与攻击面成反比,攻击面越多,防护的有效值越低,反之亦然;同时,防护有效值与漏洞响应的平均时间也成反比,响应时间越长,防护效果越差。这里可能有朋友会问,跟漏洞数没关系吗?没有一点关系是不对的,只是关系并不大,因为一来漏洞数对大家而言是均等的,二来在0day面前,最好的方式是减少攻击面。所以我们认为在评估公式里的权重忽略不计,即便目前没有任何已知漏洞,不代表你的防护效果就是100%,因为你的攻击面一直在那,新漏洞会每天都更新,所以防护方要做的是不断提升自己的响应速度。
这恰恰就是攻击方思路发生的很大变化。我们以前总是假设攻击你的人都是针对性的,他知道你是谁,他知道要获取你的敏感数据。没错,以前确实就是这样的,因为黑客成本最低收益最大的方式就是针对重要目标的定点攻击。然后黑客发现两个大的问题:一是对于某个特定时间点来说,我未必当下刚好有可用有效的漏洞直接把目标系统拿下来,所以我只能守着,时间成本一下拉长;二是我可能并没有针对目标相对比较完整的IP列表,因为最初的做法是一个漏洞奔着主站硬怼就行,后来主站硬怼不下来,针对不那么被关注的小系统也行,毕竟内网是互通的嘛。基于投入产出比的考虑,于是黑客一下又发生了分流,一部分人继续针对重要信息系统,虽然成本很高,但是由于难度大也直接导致了单个收益水涨船高;一部分人想到重要信息系统不好搞,我可以去捏软柿子嘛,“薄利多销”也是能发财的,于是他们想出了几种新模式:从最初控制肉鸡挂黑链导流,到控制大规模肉鸡打DDoS流量,再到加密数据的勒索软件(你的数据对我没用,但是对你有用吧),现在发展为控制肉鸡挖矿虚拟货币。
到后面这几种模式出来的时候,大家已经可以看了出来,目标是谁已经无关紧要了。批量全网范围的无特定目标打击,是一种成本非常低,收益也很可观的“致富”新路,每天都有新的漏洞思路,都有新的系统上线,人的惰性确保了低级的问题此起彼伏,简直就是在送钱。这里值得一提的事,期间出了一种非常小众的安全分支叫“数据泄露猎人”,他们的特征是:即是全网无差别的发现和获取泄露数据,又会针对数据的重要属性进行筛选,提取高价值目标信息。这种模式简直无本万利。
最初数据泄露猎人的诞生跟shodan强相关。技术简直不能再简单:针对大数据库(elasticsearch,solr,hadoop,mongodb等)默认不启用账号认证的情况进行数据获取。能产生巨大变化的前提是,有一个搜索引擎能够告诉你全网存在大量的这种数据库,并且能具体的告诉你IP地址。所以,当一堆的黑客跑到shodan进行数据库搜索并且明确“拿”数据的时候,估计shodan的作者都莫名其妙,他也没想到,原本初衷是为了分析联网的硬件设备,结果一堆人玩数据的不亦乐乎,相比这个而言,后来黑客恶作剧的收集全网能够“偷窥”的摄像头的行为(insecam),简直就太微不足道了。
这时,基本已经宣告一个时代的到来,对于曾经幻想“我有漏洞也不一定就会被攻击,我数据库存在泄露的风险也不一定就等于泄露了啊”的人,被狠狠的用各种安全事故打脸,这是一个全民数据隐私泄露的时代,公民信息,银行卡信息,保密单位的信息,这不是某个国家的事情,而是全球共同遇到的挑战,所以haveibeenpwned网站上线了。人人都是黑客,或者说人人都能是黑客。我们看到的只是极其微小的冰山一角,以至于安全人员都丧失了信心。有次某位领导说做了很多技术来解决隐私问题,我心灰意冷地说“还有意义吗?” 领导反对说“也不是,咱们不还有下一代嘛”,我很是被感动了一把。
讲完这些故事,我只是想告诉大家,在我们吃饭睡觉谈恋爱的时候,有一批黑客,他们每天盯着新出的漏洞和新上线的系统,日夜不休地针对但凡可被控制或者被利用的服务器进行攻击,进行敏感数据获取,进行系统破坏,甚至计算资源的利用。你只要有缝隙,他们就会进来,跟你是不是重要单位或者高价值系统没有关系。这是跟经济利益相关的,跟技术没多大关系。有朋友会说,偷就偷了吧,破坏就破坏了吧,跟我有啥关系。我们稍微想一想,黑客偷的数据有我们,有我们的银行卡号,身份证号,社保号,家庭住址,电话号码,我们的饮食习惯,我们的业务爱好。更有甚者,某一天停电了,地铁停运了,伤害的还是我们。修个路大家出行不方便了大家都会骂娘,交通系统断了这就不再是经济问题了。大家会说,那也不关我的事,这是国家的事。嘿,就等你这句话:网络安全的最终买单者一定是国家。
美国将网络司令部升格为联合作战司令部的时候,算是正式宣称网络战存在的必然性了,不然做什么战?只是一个发明计算机的国家,一个发明了网络的国家,一个被斯诺登披露了各种用网络手段破坏世界和平和隐私次序的国家,高举旗号说为了防止敌人破坏自己的国家安全。嗯,我立刻想起了以前做网站后门识别的时候,一个很自然的规矩是:第一个访问后门地址的人,就是后门的生成者。还有种类似的判断,第一个被杀毒引擎生成特征的机器,很大概率就是木马的来源,因为他们的第一个工作就是要测试能绕过杀毒软件。所以,我们先保护好自己吧。当我们再来讨论黑客的时候,已经不是小偷小摸,而是正式的“军队”。
我们在物理世界还是好好的生活着,而在黑暗的网络森林里,我们不能假设我们是安全的,而是应该问还有哪些是安全的?有大量的安全事件证明,每时每刻,互联网上都有上千万的设备被黑客控制。随着物联网,车联网,智能家居,5G,车联网时代的到来,以及ipv4地址的正式宣告分配完毕,ipv6登上主流的舞台,我们在马上来临的时代,可以预期会有数百亿上千亿的联网设备正式接入网络,每一个产品都将要经历从漏洞百出到逐渐安全的过程。一个物联网设备的漏洞将动辄让数十万的联网设备被控制,这种被攻击是必然的,你没做错任何事情,我也不知道你是谁,唯一的问题是你买了这个设备并且让他联网了,“毁灭你,与你何干”。
IP越多,设备种类越复杂,数据越大,就越需要一种手段来快速检索互联网的一切。这种手段就跟卫星制导是一样的,一方面是随时准备好攻击一切,一方面是随时做好被人攻击的准备。太空网络在建设的空间防御是一样的,你不只是防护人类作战,你还得防护外太空呢,看看卫星的轨道,看看陨石的路线,甚至是不可见的电波是否包含一系列数学符号。这是建立预警机制的前提。
我们稍微先来模拟一下黑客行为。如果我们是黑客,我们会怎么做?虽然我上面举例说了大量无目标的范攻击行为,然而我并没有说高价值的攻击不是定点攻击,他们只是在那里等待,等待着城门大开的那一天。所以黑客的行为大概分这么几类:
第一类,无固定目标地控制网络资产。他们每天会盯着全网漏洞的输出源头(如seclist,exploitdb,me tasploit等),一旦有可用做控制的poc,他们会写出exp,直接做持久化控制;数据泄漏也归属到这个范围。
第二类,针对特定商业目标的敏感数据窃取。目标是商业公司,有特定范围,所以他们做的第一件事就是给目标建立攻击面的梳理。漏洞的流程与第一种类似。
第三类,针对特定影响国计民生的关基单位进行敏感数据获取或者直接进行破坏。这种也要梳理攻击面,不过一般就不是一两个目标单位了,而是一个行业或者多个行业。同时,漏洞也不是从来源获取,更多的用上了自挖掘或者购买的0day漏洞。
如上三类黑客不是大家认为的那样泾渭分明,所谓的理想大部分情况下是逐利的幌子,他们的行为方式是根据行情来的,所以他们会在其中游走穿梭。
针对第三种的防护,你必须假设对方有0day,这也是为什么未知威胁的检测是未来必须具备的能力之一。Nday也能结束战斗,但是0day的隐蔽性更强。最初都是特定目标的针对性攻击,后来出现了范目标攻击,这批人小打小闹还好,高价值的最后还是回归到特定目标的打击,这个本质一直存在,只不过从以前硬怼到目前可以悠哉悠哉地先拿下所有,再确定是否重要目标的过程。这个过程的核心就是两个库:每天更新的漏洞库,以及特定目标的攻击面。
漏洞库实在没有值得讲的,它们很重要,它们掌握在极少部分人手里,如何挖掘是一门科学,如何收集也是一门科学,它一定时间内很难自动化。但是攻击面就不一样了,特定目标的攻击面梳理也是一门科学,但是这门科学可以比较快的实现一定的自动化。攻击面梳理的全面性会往两个方向发展:一是特定目标对外开放的实体,比如最直接的IP;二是实体上承载的各组成部分,比如中间件软件系统等各种属性。我们可以简单地理解,一个是宏观,一个是微观,宏观解决的是面的宽度,微观解决的是单个实体的刻画深入度。这里我放一张防护者和攻击者眼里的差异,这种差异也决定了思考方式的不同。
防护方眼里的攻击面,偏财务的台账管理,偏硬件设备和IP系统管理,而在攻击者的眼里,更侧重业务系统,中间件,员工,以及外围的一切可被利用的脆弱点。所以当防守方拿出一万个IP来的时候,黑客眼里可能是十万个攻击点。
我们把上面提到的宏观微观分开来讨论。先来解决企业在互联网上接入了多少ip的问题。一个最简单的模式当然是找到这个企业的根域名,然后通过找到所有的子域名,再解析所有的子域名到ip。看上去很简单,但是这种方式能找出30%就很不错了,谁说根域名只有一个?谁说ip都绑定了域名?你又衍生出几个小问题:如何找到所有的根域名?如何找到没有域名但是有归属的ip地址?黑客比较聪明,他们说我们用备案库查一查,whois查一查,证书查一查(这个方法很有用),C段查一查,icon查一查(这个在shodan中已经支持了,好在它还不支持域名,不然杀伤力更大),再不济用关键字查一查,黑客有一堆的方法,而且他们有的是耐性,也会充分的利用现有的工具。结果就是,当黑客们通过各种入口进来的时候,防护方就震惊了,各种批评追责,然后说“谁他娘的开放了这些IP,为什么不在监控范围”!
总结一下,宏观上的发展就是数据会越来越多,一个是全网IP的采集越来越多(从IPv4到IPv6),一个是端口和协议的支持数越来越多,再一个就是字段的越来越多。如何解决通过一个证书反向推导出所有使用这个SSL证书的IP和域名列表?那就先采集所有的IP和域名,再分析上面部署的证书信息,这个工作量没有难度,就是投资源。没有企业想去建立全球的库,所以企业的资产管理是自顶向下的,而黑客用的方法是自底向上的,先全采集了再说,后续再分析。给出几个案例,大家稍微感受一下就好:https://crt.sh/?q=%25qq.com
https://www.virustotal.com/gui/domain/qq.com/details
https://spyse.com/search/subdomain?q=qq.com
https://securitytrails.com/list/apex_domain/qq.com
https://securitytrails.com/list/ns/ns1.qq.com 目前来看,各有各的强项,谈不上谁一统天下。
再后续分析的过程就是往微观发展,同样的IP,同样的端口和协议,会对应不同的设备和应用,当然也会对应不同的归属主体。所以微观的发展就是尽可能多的从数据中分析出这个IP对应的各种属性特征。比如你可以给它打上ADSL的标签,可以打上物联网的标签,也可以打上金融行业的标签,可以打上街道的标签。这些都是非常典型的细粒度分析的结果,这些细粒度就对应不同场景的业务需求。比如可以针对数据库输出大小、记录数等属性,再比如可以针对视频给出截图。我们可以认为对应如下的五层分类图代表其中最基础的业务标签属性(数据图来自Goby):
上图可以看到,硬件层我们可以分析出来为vmware,上面的操作系统层面是CentOS,服务层有Nginx/Mysql/Reidis/OpenSSH,支撑层看到有Struts2,业务层有Jenkins/Kibana系统。这些微观的数据刻画的越细,在未来安全应急中的响应速度就越快。一个IP大家并没有感觉,但是如果有百万台设备,假设Jeninks突发了一个漏洞,这时候你就能快速的从百万台设备里面筛选出来小于100台的范围进行应急。有些企业说,这些应用我们有登记啊,实际情况下,有很多是员工私自搭建的测试环境没有登记,也有人为疏忽漏掉的情况,这样形成了缝隙,黑客一定会进来。最好的方法是自动化的方式解决人为引发的问题,我们通过技术和管理的方式来解决问题。事实上,黑客从漏洞出来到完成全网攻击的时间不超过大约在小时级(我们就能模拟做到同类效果),企业可以想象一下咱们应该如何应对。
对于细粒度的深入分析,我们可以通过shodan来稍微感受一下来能输出的效果,比如数据库,它能刻画出数据库类型,数据库数量,数据大小,数据库列表,数据库字段等等:
有什么用?你觉得有什么用?每一个它能分析出来的数据库都能被下载。任何一个黑客能快速完成全网的数据窃取,当然它们也能掌握全球数据威胁的实时情报,这是态势感知需要具备的高级能力。
或者再看看视频截图的属性,每一个开放的摄像头都可能被用于分析环境,是仓库还是街道,是学校还是政府部门,是卧室还是输油管道。什么?艳照门?这么大威力的武器你们就用来干这种龌蹉事?
粒度越细越深入,对应的产出价值就越高,场景就越具体。可以再看一下原始数据,里面都带有更多细粒度的内容,比如打上云的标签。或者工业控制的标签:
里面涉及的内容太多,甚至是包括CVE的历史漏洞标签,下一篇我会对不同平台的核心区别进行对比分析,着重讲一下。现实远比大家想得更复杂,你看到的只是我想让你看到的,我不想让你看到的你一无所知。目前的这些只是刚刚拉开序幕,很多场景正在不断的涌现,就跟Google出来时只是一个搜索数据库一样,然后他们就做了新闻聚合,做了视频,做了指数,做了舆情分析……我担心的反而不是公开的全资产检索引擎,这方面shodan,censys,fofa,zoomeye各有各的优劣势,很难再有颠覆式的平台出来,但是,对于特定细分领域的搜索平台,其实是一个大家要关注的点。比如expanse这类,专注于物联网设备,这种是未来马上回兴起的新机会。
现在大家都在提态势感知,这个方向我无比认同。但是我并不认同国内的一些炒作概念的做法,概念日新月异,很多安全理念是从欧美国家开始提出来并发展起来的,但是人家是一步一个脚印踩出来的,每一个细分领域都有很踏实的公司完成,每一个细分领域的公司都能活的很好,这在以色列和硅谷非常明显,十几个人能卖几个亿,知识很值钱。但是国内前十几年的发展是选择跳级式的发展,什么数据都没有,也敢跟着喊,直接忽略了前期的积累阶段,但是有并不代表好。所以相对而言,目前国内的大一点的安全公司大多是综合型的解决方案公司,中国的安全市场以前也多是合规型市场,很难给细分领域的安全能力团队留出足够的机会。
我认为,态势感知也好,网络整体防御也罢,你都要知道自己的基本情况。你要时刻清楚有多少攻击面,这是基础中的基础,并且确保攻击面已经全部处在监控和防护体系之下,只有这样才能形成正确的认知和做出快速的决策。显然国内重要单位在这方面路还很长,太多次的成功入侵证明,被攻击并非防火墙没用,而是排兵布阵的方式不对。我经常用的一个比喻是:企业用坚不可摧的钢铁头盔护住了头部,谁也打不穿,但是脖子以下全然不顾,你可以伤害他的心脏,肚子,四肢,而血液是内部贯穿着的,所以防护方构建了马其顿防线,敌人绕开防线为所欲为。
网络安全是一门及其复杂也存在很多分支的科学,随着IT技术的不断变化,衍生了太多的场景以及对应的技术,比如从最初的PC安全开始,有杀毒,有系统安全,然后有了网络安全,网站安全,数据库安全,又有了移动安全,无线安全,再有了物联网安全,云安全,大数据安全,车联网安全,5G安全。我的结论有两个:一)没有任何一家能把这些全做精做深,如果有,那他一定是一个集成商。未来会越来越多的给细分领域的能力者提供机会,因为只有这样才能保证技术的领先性以及防御的全面性;二)安全将会回归本质,不管技术如何发展,武器再变战场不变,攻防的前提是一本地图。只有展开这本正确无误的详细地图,才能从有勇无谋的瞎子进化成指点江山的将才,才能真正做到知己知彼百战百胜。网络空间测绘就是提供地图的方式。
——————
下期预告:不同网络空间测绘平台的技术方向。优劣势对比,未来的走向。下期写完生篇就算写完了。
下下期预告:死篇。
◆来源:赵武的自留地
◆本文版权归原作者所有,如有侵权请联系我们及时删除
最新评论