网络空间测绘溯源技术剖析

 

作者:风起

空间测绘技术思想

网络空间测绘是2016年出现的一个概念,主要指用一些技术方法,来探测全球互联网空间上的节点分布情况和网络关系索引,构建全球互联网图谱的一种方法。【百度百科】

​ 测绘实际上是一个地理信息相关的专业学科,针对海里的、陆地的、天上的地理信息进行盘点。同样应用于网络空间 ,发现未知、脆弱的资产也是如此,更像是一张网络空间地图,用来全面描述和展示网络空间资产、网络空间各要素及要素之间关系,以及网络空间和现实空间的映射关系。

应用场景:

  • 企业内遗忘的,孤立的资产进行识别并加入安全管理。
  • 企业外部暴露资产进行快速排查,统计。
  • 红蓝对抗相关需求使用,对捕获IP进行批量检查。
  • 批量收集脆弱资产(0day/1day) 影响内的设备、终端。
  • 新型网络犯罪涉案站点信息进行快速收集,合并,进行更高效的研判、分析。
  • 对互联网上受相关漏洞影响的脆弱资产,进行统计、复现。

3W问题(“What?Where?Who?”)是网络空间测绘要解决的基本问题。从字面意思来看也就是是什么,在那里,谁的? 而应用于红队,目前各级护网对于资产归属的划分其实比较严格,例如资产属于总集团还是二级单位或者子公司,是否与集团内网互通?都是需要思考以及确认的点。那么我们首先从who去思考再从what谁和where在哪里去收集,资产的所属单位以及相关的网络信息,例如使用的框架、部署的业务系统、服务、开放的端口、使用的开发语言、域名等等。

​ 当然,无论是红队攻防还是线索追溯亦或者是安全运营,首先确定的都应该是目标的归属问题,如果不是相关目标或者自己的资产时,那么后续的工作开展都是没有意义的,所以在进行空间测绘的使用时首先需要做的就是确定目标的归属问题,继而考虑资产所处的位置以及什么的问题。

​ 在了解了3W的问题后,我们继续引出网络空间测绘的三大概念:行为测绘、动态测绘、交叉测绘

 

行为测绘

不同的群体,可能表现出基本的独有的特征,当我们能掌握到这个特征,那么我们就能尽可能识别出这个群体里的所有个体,而这些所谓的行为特征在网络空间测绘里表现出的是这个设备各个端口协议里的banner特征。目前在网络空间测绘里常用的通用组件指纹识别形成的指纹库就是利用了通用组件通用的默认配置特征这个“行为”来进行识别的,很显然这个充分利用了人类“懒惰“的这个性格引起的通用默认配置的”行为“进行测绘的,但是也就忽视那些进行自定义的配置的目标,而这些目标是本文要阐述的主要对象。

​ 在这些自定义过程中不同的群体又可能表现出不一样的独有特征,我们利用这些行为特征进行网络空间测绘,这就是所谓的“行为测绘”了。通过实践经验“行为测绘”在威胁情报领域、国家基础设施测绘、APT/botnet/黑产等组织测绘上有巨大应用空间及震撼的效果。【SuperHei语录】P.S.或许他更喜欢叫黑格尔一点23333

​ 这里我们也可以把行为理解为特征,而如何提取这些特征,进行更加精准的匹配无疑也成为了最重要的环节之一。

​ 在针对某一目标的关联中,如果目标站点使用了HTTPS协议,那么我们就可以通过提取证书 Serial Number、Subject等字段值进行关联资产,值得注意的是在SSL证书信息中,往往有着一些惊喜,例如可以查找CDN后的真实IP,或者在拿到了某个IP后证明其归属,识别其DNS服务器、相关域名等等。举个场景案例,例如我们在挖掘SRC找到了一个边缘资产并且仅有一个IP,这时如何证明其资产的归属,就不妨可以在证书信息中找找看,往往Subject字段中就有域名的相关线索。或像常见的SSL证书匹配方式将证书序列号进行HEX编码,通过搜索引擎的相关语法(cert/ssl)进行匹配的方式均可以。

​ 而这里的行为,更多时候体现在banner信息,例如前端代码,服务连接交互信息、SSL证书信息等等。

​ 这里以Log4j2 RCE影响的Apache CAS主机举例。

​ 通过比对不同Apache CAS站点,寻找共同的特征,提取’<body id=”cas”>‘ 这段代码。

​ 发现共匹配到了16155条结果,除去CAS关键词的特征,通过尝试攻击Log4j2也可以进行验证,但是仅通过一段代码,仍然可能存在误报的概率,于是我们继续寻找共同特征,也就是框架的特征。

​ 在上面提取的代码段的基础上继续提取特征,做且运算逻辑,最终构造的Apache CAS指纹为:

'<body id="cas">'+'<section class="row">' +'<meta charset="UTF-8"/>'

​ 也就是说其前端代码中应符合同时存在上述三段代码才能进行匹配,发现这次共匹配到了6248条,数量的减少,随着我们指纹关联的条件增多,精准度也会提高,使我们得到的结果更加趋近于真实。关于指纹概念会在下面进行详细的讲解,利用截取代码段或者其注释的方式,在关联目标使用的相同框架的站点时有着很好的效果。

​ 除了一些基本特征,我们还可以通过一些“有趣”的指纹来进行检索

​ 如上图,相信大家懂得都懂,在我们查找CDN后的真实IP时,可以通过nmap扫描目标的ssh-hostkey并提取进行匹配,因为无论套多少层CDN,他连接ssh时的ssh-hostkey都不会改变,所以我们可以通过这个指纹检索就有可能找到其真实的IP地址,当然这样的思路仅做抛砖引玉。

​ 网站上的favicon图标也可以作为目标组织的行为之一,在HW或者关联菠菜站点时往往有着意想不到的效果,但是需要注意的是,针对利用favicon计算hash关联团伙的方式,可能存在着一定的不准确性,如果说证书、前端提取代码这些方式可以让我们很准确的定位到目标,那么在全网中有人拿别人的favicon图标作为自己网站的图标,公网扫描时就有可能出现误报,扫出的ico图标hash是相同的。不过,无聊用别人图标的总归是少数,也并不常见,仅仅是有这种可能罢了,所以大家需要注意,追溯线索有时并没有定式,并不是通过什么方法就一定准确无误,依旧是需要证实举证的。

 

动态测绘

对于动态测绘的概念,简单理解就是数据订阅,这里可以通过指纹语句订阅或者IP订阅,周期性对某个资产面进行扫描,从而使我们能够动态掌握周期内新增资产的情况,而动态测绘往往应用于企业安全管理或者反诈工作中。在企业安全中,通过动态测绘发现新上线的业务系统,并及时加入安全管理中。因为对于一些较为成熟的业务系统来讲,不会频繁对站点对外服务进行更改,一般只会修改发布内容等,所以当其站点上线新的服务时都是值得注意的。

​ 往往攻防双方对弈比拼的就是信息收集,谁收集的资产面多就有着决定性的作用,一些孤立、边缘化的资产企业上线后没有及时加入安全防护而被攻击者发现,就面临着沦陷的可能,同样红队在攻击时,在技术水平相差不大的时候,往往收集的资产就是决定是否攻破目标的关键。

​ 应用于反诈工作中,可以通过动态测绘持续对目标团伙的相关资产进行关注,做线索。往往面对使用相同框架,仅改变网站内容进行快速转移服务器的目标可以进行紧紧追踪。通过动态测绘观测到的每日新增资产,进行判断该团伙下一步准备实施犯罪的主要站点及其意图。

​ 值得一提的是,ZoomEye上线了一个很具有意义的功能,就是在公网测绘中,支持了数据更新功能,使我们可以随时更新需要扫描的目标。需要注意所有空间测绘平台本质都是通过探测节点全天候对全网资产进行扫描行为,而扫描是有一定的时间周期,数据更新功能则不需要像以往被动等待探测节点扫描到我们的目标。

当扫描结束后,会发送一封邮件到我们的邮箱,并且更新的数据在kunyu中可以快速同步。

 

交叉测绘

​ 那就是IPv4 与 IPv6的 “交叉”。随着国家对IPv6的改造规定必然加快IPv6的普及,就当前局势,IPV6在逐渐普及,但是之所以在交叉测绘这里提及IPV6,就是因为,与我们密切相关的安全层面,往往出现在IPV4及IPV6的配置错误上,例如企业在部署安全措施时,对其IPV4打满了防护,但是IPV6却是白板,那么这时如果攻击者通过IPV6进行攻击,那么无疑是一马平川的,这也是很多企业在进行安全管理中没有想到的问题。往往就会导致出现大问题,所以站在攻击者的角度来看待,我认为不妨可以交叉看待问题。域名与IPV4、IPV4及IPV6的、暗网与IPv4。。。。无论是溯源还是攻击本着交叉思想看待数据,挖掘隐蔽线索都是十分重要的。

​ 而这些结果我们发现其具有共同特征为,Nginx服务器、均为302跳转,时间相近,均为HTTPS协议等,这也是其目标团伙在此所表现的特征,也能间接印证我们关联的资产没错。准与不准的问题,往往就是体现于此,就好比如果两张照片里的人没有丝毫相像,不具有相同点,那么大概率他们是没有关系的。

网络测绘指纹的概念

​ 在网络测绘中,指纹的概念是比较有趣的,与传统刑事侦查技术其广义思想是重叠的,例如我们做人物画像,针对某个人的外貌体态进行描述,例如我们已知目标是大眼睛、高鼻梁、身材消瘦、身高180cm…..这些是目标的外在特征,但是针对这样的特征是具有一定的模糊性的,因为站在整个世界的角度来看,同样符合这些特征的人依旧比比皆是,但是这些依旧是我们侦察目标的特点,所以继而我们要引入一些更加“精准”“特异”“不可更改”的特征,可以直接决定性的指向某个人或团伙的资产范围。那么什么是可以决定性指向的特征呢?身份证、银行卡、手机号、DNA信息、瞳孔识别等等,既要精准的区分目标资产又要具有特异性,不可以被轻易修改的特点。

  • 认知
  • 特征
  • 指纹

对于指纹概念,提出了以上三点,首先应该从认知出发,这里所说的认知也就是研判人员在分析时认为哪些特征是有用的,不同的人看待问题的方式、角度均是不同的,所以从认知出发看待事件本质,找出其符合我们所理解的“精准”“特异”“不可更改”要素,进行组合,从而构建指纹。当然这里的特征通常并不会只有一个,哪怕是传统刑侦,面对目标手指纹也需要多个指纹进行比对,同样放在网络资产测绘中,我们需要尽可能多的去找某个组织所具有的共同特征进行组合,只符合单个特征并不足以说明问题,往往针对我们之前收集的情报符合多个特征,那么就具有可疑性了。

​ 往往在溯源的过程中,情报并不是使用什么产品或者技术能够直接获得的,而是通过多个维度获得的线索相互印证、推导而来的,所以在整个溯源体系中,我认为研判人员对于技术的认知是至关重要的。这也是我开头讲到的从认知出发,寻找目标特征,构建指纹从而高效研判这样的一个过程。

​ 举例在exploit-db找到了一个Telnet未授权RCE的POC。

​ 根据箭头所指,提取了一处特征,指纹特征为:goke login:,进行匹配可以看到结果为423条,通过protocol和Service,Port这些字段所表现出来的特征都极为相似,准与不准往往体现于此。

继续增加一个条件,要求目标端口为23,发现匹配出的条数为422条,发现条数减少了,说明在刚才第一次匹配中,有一些结果的端口并不是23端口,应该是被认为修改过的。这也说明随着条件的增加匹配的精准度也是随之提高,根据研判人员对于指纹概念的认知不同,构建指纹指向目标的精准度和关联程度都不尽相同。

​ 当然,在能够关联匹配到目标的指纹以外,我们还可以增加其他的符合我们要求的条件,例如我们可以限制输出结果扫描到的时间、地域国家、城市等等。

指纹是建立在研判人员对于规则概念的理解之上的!

Kunyu Donwload: Kunyu(坤舆)更高效的企业资产收集

 

后记

我们应赋予数据以灵魂,而不仅仅只是认识数据,能用它做什么事儿,达到什么效果,取决于解决方案的认知高低

​ 感谢大家的支持,现在已经2022年了,回想第一次出门闯荡的场景至今还历历在目,今年我也已经20岁了,渐渐的年纪已经不是我的优势。回想这一路走来还是挺感慨的,对于野路子出身,那时的我能够坚持下来大概就是有着一股不服输的劲头吧。虽然现在也不是什么大佬,但是每天都比昨天进步一点,每年都比去年更上一层对于我而讲算是最大的慰籍了,让我时刻明白,自己仍是在这条路上向前走着。

​ 新的一年,希望所想之事皆能如愿,所做之事皆有所获。

最后祝大家心想事成,美梦成真,想要交流安全技术的可以扫描以下二维码添加微信。

 

Community

 

参考链接

https://github.com/knownsec/Kunyu

https://mp.weixin.qq.com/s/fQatA5iyewqRBMWtpVjsRA

https://mp.weixin.qq.com/s/QTyfHbcnoMYoVUXhcbCYCw

(完)