Author:elknot@360corpsec


0x00 前言

严格意义上来说的话,基础设施情报不能算是高级威胁情报的一种,只能算是一种比较基础的情报信息。但是这么一棒子把基础设施情报打残疾了也不太好,毕竟没有基础设施情报的话,是很难生产出所谓的高级威胁情报的。however,基础设施情报对于我们来说,并不是那么简单查几个IP就完事儿了。
其实这部分东西和乙方似乎没有什么太大的关系,因为乙方是采集这些基础威胁情报,通过可视化展示输出给甲方的,所以本文中阐述的视角是甲方视角下的威胁情报,当然也会穿插进少数乙方视角。
在这里我觉得得强调一点,威胁情报数据的运用不是像很多人一样是用在攻防对抗里面的,所以技术含量并不是很高,实际上威胁情报数据在我看来更像是战略产物,虽然说大家喜欢把威胁情报分为战术情报、战略情报和运营情报,但是实际上,威胁情报在使用的时候很大一部分都是和打仗中的情报一样是用来指定攻击战术的,如果说情报这个东西真的非要战术的话,很大一定程度上会吃大亏。这就造成了有时候搞实际攻防对抗的看不懂搞威胁情报运营的人在干什么,甚至有些时候认为他们在传递一些大家都知道的东西,但是实际上,所谓的威胁情报的受众而非是攻防层面上对抗的工程师,而是在背后操盘的安全管理者。刚才不是说有很大一部分么?其实剩下的一部分就是今天重点要讨论的基础设施威胁情报

0x01 基础威胁情报的高级化

正如前面所说,基础设施情报实际上并不是一种高级威胁情报,在威胁情报日常的运用中实际上是这么一种情况:安全设备报警说有大量的IP对我们这边发起了xxx性质的攻击/扫描,我们这边能不能查一下这些IP的源头。这种场景是一种非常非常常见的场景,但是实际上这种情况的最终结果是:安全运营工程师只会给几个IP的标记结果,是不是僵尸网络,是不是扫描器,是不是DDoS源等。这个时候如果作为管理者,肯定会认为这个数据没什么价值啊,就算我知道这些IP是扫描器,是僵尸网络,我通过我们本地的IDS、WAF、流量传感器这些设备一样可以知道这些IP对我们干了什么,从而知道这些IP是什么啊,要你们这些威胁情报数据有什么用,卖得还这么贵。
实际上这个时候我们对于这些比较基础的威胁情报而言,就需要将他们高级化了,那么什么是基础威胁情报高级化呢?其实上一篇文章说的攻击者情报就是高级化的一种方法,威胁情报高级化的方法有很多,这里不一一叙述,除了聚类分析以外,事件关联也是一种不错的方法。目前服务商能提供的比较基础的威胁情报包含:IP标记、域名解析、PDNS数据、活跃Heatmap,历史攻击行为等,其实你在RiskIQ、微步在线、360威胁情报平台等这些提供免费威胁情报的平台上查出来的数据基本都属于基础威胁情报,需要花钱,有一些就属于高级威胁情报。
实际上基础威胁情报的应用很大一部分都要依赖于本地的日志和流量,因为威胁情报提供的数据具有时效性、滞后性等特点,有时候IP虽然被标记了,但是经过时间的冲刷有时候就会洗白了,这时候如果贸然封阻这些IP,恰好有个正常的用户用这个IP访问了你的业务系统,那么用户肯定会打投诉电话过来骂娘的。所以这个时候本地的日志和流量除了确定我们已经发生的攻击之外,还有一重作用就是用来检验威胁情报的正确性和有效性。假设你在本地看到的流量是使用暴力破解工具对业务系统进行账户的暴力破解(这里需要对流量的http协议进行分析,同时在登陆认证平台上也可以看到这些登陆失败的日志,当然有些时候运维gg因为怕开日志影响性能便主动地讲服务日志关闭了,这个时候可能你有种想哭的冲动),但是你从威胁情报上查到的IP显示的是这个IP有着发钓鱼邮件的标记,有些比较。。的威胁情报平台因为没有时间标注和heatmap这种能够把标记时间输出,导致有时候用户也会说我靠你这个不准吧,然后引发了对威胁情报数据的不信任,最后演变到对威胁情报技术的不信任,这样就不好了。
当你验证完这些基础威胁情报数据的有效性之后,你就需要讲这些攻击你的IT资产进行一个统计和分析了,比如说从解析的域名入手,有哪些解析的域名是属于花生壳域名这种DDNS的,有哪些是属于VPS的,有哪些IP又是连续在一个c段里的,有哪些IP地址被标记了N多种,有哪些md5和列表的大部分IP都通信过,这些MD5被vt这种地方标记为了什么结果,能不能把这个md5样本搞到,搞到之后能不能分析一下,这个md5还连了哪些地方,要是个bot的话能不能养一下等等问题。当你把这些问题全都弄明白了,你也就实现了把这些基础威胁情报高级化的工作,可能最后的成果是一份给管理层看的报告,也有可能是几张截图加几条聊天记录,也有可能是一封邮件,或者是一篇blog。

0x02 基础威胁情报与基础设施威胁情报

前面说了基础威胁情报高级化,这一段来说下基础威胁情报和基础设施威胁情报。这两个词就差了两个字 —— “设施”,那么这里的基础设施指的是什么呢?毫无以为可以把这个基础设施理解为两种:我们自己的基础设施、攻击者打我们用的基础设施(没有第三种了吧)。上一部分中我们说的其实就是识别攻击者的基础设施。
接着来说我们自己的基础设施,毫无疑问我们自己的基础设施也就是我们的IT资产,如果内部IT建设体系化的话,应该会有所有IT资产的详细信息,换句话说哪台机器上跑的什么东西这个应该是清楚的,如果这个都不清楚的话,安全就可以考虑不用做了。用一张图来表示的话那就是:

这次我也赶一次时髦,把传统的IT资产换成了现在比较流行的云资产(显得我知道的比较多,23333333,开个玩笑),我们把一台IT资产抽象成为了四层:云服务IaaS层(没有云的就是基础硬件设施层)、操作系统层、中间件服务层和业务系统层,这个大家都很明白能理解,我们需要对这些资产进行版本统计,最后总结成为一张表也就是说:

{
    "type": "server",
    "name": "web-bss-01-nginx",
    "addrs": 
    {
        "ip": "192.168.1.1",
        "mac": "00-00-00-00-00-00",
        "manufacture": "alibaba cloud"
    },
    "data": 
    [
        {
            "tag": "hardware",
            "name": "openstack",
            "version": "havana",
            "addition":[]
        },
        {
            "tag": "os",
            "name": "red hat enterprise linux",
            "version": "7.0",
            "addition":
            {
                "type": "compiler",
                "name": "GCC",
                "version": "6.0"
            }
        },
        {
            "tag": "middle-ware",
            "name": "mysql-server",
            "version": "6.5",
            "addition": 
            {
                "type": "plugins",
                "name": "mysql-jdbc-connector",
                "version": "1.0",
                "status": "disabled"
            }
        },
        {
            "tag": "service",
            "name": "weblogic",
            "version": "12.2.1",
            "addition": 
            {
                "type": "plugins",
                "name": "wsat",
                "version": "1.0",
                "status": "disabled"
            }
        }
    ]
}

这样的话我们应该就能的得到一些比较细节化的资产信息了,一来方便运维部门进行资产的定位和检修,第二可以方便我们检索对应信息的威胁情报。那么这里问题又来了,整理这玩意儿有啥用。这里要回归到前两天遇到的一个小问题,厂商预警应不应该把漏洞信息包含在内,比如说什么地方爆发了什么漏洞等等,我个人认为这些信息应该提供,当然这些信息不一定有用,比如说RCE漏洞这种看上去似乎觉得应该“震惊”的漏洞其实对于某些安全专家来讲是没有什么用的,凡事都有个但是,一旦这些玩意儿出现了在野利用或者黑产有了大规模的利用用这种漏洞从事勒索、挖矿等恶意行为,并且呈现爆发态势的时候,这个时候就不应该是“震惊”了,你再怎么“震惊”,已经晚了,只能乖乖的去查受损情况,封堵蠕虫,防止扩散。对,我想说的就是永恒之蓝。当你看到这些信息的时候,不需要去马上对这些情报做出快速的响应,而是需要持续观察这些情报在互联网上产生的其他信息,并注意一些细节。以上均为开玩笑,如果同感者,不胜感激。
那么这个时候,在海量威胁情报里面要做的就是迅速找到对我方有影响的威胁情报信息,可以是一个url、可以是一句聊天记录、可以是一句话、一份安全公告、一个短信、一个电话、甚至是一条朋友圈或者是微博动态,如果你确定这个事情对你影响不大,那么就调低优先级,去干更高优先级的事情。
对于甲方而言,在今天威胁情报这么高密度的数据环境里,要迅速找到对你有影响的信息是至关重要的,所以这个时候,爬虫该开动了。

0x03 移花接木——反击攻击者

当然还有一种情况是,上次有人打你,这次还是这个人,但是呢我们手头已经拿到了他们用的bot的样本。这个时候我们就可以打一场反击战了。首先我们可以在内网中部署蜜罐,如果一旦有攻击流量过来的话,可以通过迁移网络流量的方式把攻击流量迅速迁移到蜜罐中,然后研究攻击者的具体行为。当然我们也可以把这个bot抓到后丢到一台与IT架构完全隔离开的VPS中运行,同时输出日志(俗称养马场),这样的话当下一次再发送指令的时候,你就会看到你的养马场里收到一条指令,这个时候情报就出来了。

而且你还能对外输出点情报(你懂得)。在这一部分,实际上我们就是恰好把攻击者的攻击流量移花接木到了我们的安全设施中进行研究,从而对攻击者使用的基础设施进行了更全面的情报提取和分析。也就是所谓的移花接木。

0x04 总结

写这篇文章不是针对什么,而是对于现在威胁情报数据的丰富程度和种类表示高兴,但同时又对仅提供单一种类基础威胁情报而又感到担心。担心是因为一方面基础威胁情报很有可能会在未来的一个周期由于客户不需要这种类型的数据而消失,又或因为一些优秀的安全初创公司因为仅提供单一种类的基础数据而非高级威胁情报数据失去了资本的青睐而出局,当然这个问题对于威胁情报巨头来说肯定不会是什么问题,毕竟技术实力和数据、雇员什么的都是很强的,比如国内的微步在线、国外的RiskIQ、Cisco Talos这些,而这些初创公司的技术又是及其先进而且数据量也是不逊于行业巨头的,这是笔者不愿意看到结果。所以用好基础设施威胁情报,基础数据也能变成所谓的高级威胁情报,发挥不亚于攻击者情报的作用。

Reference

http://mp.weixin.qq.com/s/WM8PANDBPD1FV3tQtBVUXQ

源链接

Hacking more

...