小议威胁情报

优秀的人,不是不合群,而是他们合群的人里面没有你

威胁情报的理解:

威胁情报,网络信息安全新兴的一个概念,笔者认为威胁情报在以后的网络安全中会起很大的作用,类似于“攻击未起,情报先行”的那种,主要就是说,根据一些已经有的情报进行一些分析工作,对一些已知的活动进行采集,从而判断攻击者下一步目标

但是威胁情报这个事情涉及一个情报共享与情报互通的问题,因此就兴起了很多威胁情报社区,类似国内的有一些比如微步在线、天际友盟之类的,也有一些安全公司自建的威胁情报平台,比如360的天眼之类的,国外的比较主流的有IBM的IBM X-Force Exchange和virustotal之类的,但是笔者觉得更多的更有帮助的还是要数ISC SCAN的类似于互联网情报中心之类的(虽然还没研究明白,但是好像对溯源挺有帮助的)

威胁情报的作用

威胁情报主要的作用毕竟是起辅助决策的,就像elk大佬的演讲上说的(具体记不清了),大概意思就是明明是一个短信接口的问题,结果开发误以为是DDOS,采取封IP的方式,结果通过大佬的一顿分析,发现是短信接口暴露的问题,这个就说明威胁情报对于业务来说还是很重要的,毕竟要是决策错误,很容易影响业务,所以说威胁情报是用来辅助决策的

另外,情报毕竟只是情报,很难成为可生产的东西,只是说对于情报的收集工作可以很好的对决策产生一定的影响,成为对安全的推动力,它使时间和预算有限的安全团队能够成功的对抗现行和未来威胁的攻击,当然,仅有情报是不够的,在某些情况下,威胁情报可能使网络安全问题恶化,错误的在威胁情报上投资可能使已经陷入苦斗的安全团队更加不知所措,产生比真正的安全事件更多的误报

因此,为了成功的保护网络,安全团队必须知道如何从保守的事件驱动团队转换为主动的情报驱动团队

威胁情报的标准

威胁情报作为一种专业,肯定会一些标准,比如STIX、openIOC之类的,为什么会有这些标准呢?更多的是方便大家获取到的情报进行统一的交流,其实笔者认为威胁情报更多的是数据之间的交流,从而摩擦出火花

STIX标准,STIX标准分为STIX1.0和STIX2.0,STIX1.0是用XML进行数据格式的标准化,STIX2.0用JSON实现数据格式的标准化,中间的内容也有部分变化,但是总体来说,JSON比XML更加好理解倒是个大实话

STIX

STIX(结构化威胁信息表达)最初被认为是描述网络威胁情报的语言。这是开创性的,因为它是第一个提供网络威胁情报定义的语言。尽管威胁情报还是一个有点模糊的术语,网络威胁情报是描述有关对手及其行为的信息。例如,知道某些对手通过使用特制的钓鱼电子邮件来靶向攻击金融机构,对于防御攻击非常有用。 STIX以机器可读形式捕获这种类型的情报,以便可以在组织和工具之间共享。STIX是以标准化形式沟通运营、战略和基础设施信息的语言,它所传达的内容可以为各种安全工具吸取,它以单个数据包的方式提供行动者、战术和基础设施的信息,使之可以在组织内部和组织之间共享,其实也就是以XML进行数据格式的交换分享

STIX 2.0基于STIX 1.x构建的工作基础,但有几个主要区别:

*最明显的是,STIX 1.x使用XML作为交换格式,STIX 2.0使用JSON。这符合当今发展的常识,应该迅速采用。

*虽然STIX 1.x专注于灵活性,STIX 2.0强调简单性和标准化。有更少的选择和更多的要求。这使得它更容易实现,这是广泛采用行业的要求。

* STIX 2.0是一个基于图的模型,其中代表网络概念的STIX域对象使用STIX关系对象相互关联。 STIX 1.x还包含连接,但通过明确表示,STIX 2.0允许分析人员和防御人员轻松绘制看似无关的数据之间的连接,将攻击指标链接到攻击背后的对手。

* CybOX(网络可观察表达式)已被合并到STIX规范中。现在,STIX 2.0是一个多部分规范,其中包括STIX核心,STIX对象,网络表征核心(Cyber Observable Core)、网络表征对象(Cyber Observable Objects)和STIX 模式。

openIOC

IOC(Indicator of Compromise)是MANDIANT在长期的数字取证实践中定义的可以反映主机或网络行为的技术指示器;而OpenIOC是一套威胁情报共享的标准,通过遵循该标准,我们可以建立IOC的逻辑分组,实现威胁情报的交流共享,比如事件响应团队可以使用OpenIOC的规范编写多个IOCs来描述一个威胁的技术共性。

OpenIOC主要使用XML(Extensible Markup Language)来实现,XML语言提供了丰富、灵活的格式来将数据表示成可机读的形式。通常在使用OpenIOC时会定义自己的指示器属性表(Indicator Term Documens),里面列出了要使用的诸多属性,当然也可以根据自己的需要添加新的属性描述。

OpenIOC通过XML来实现,每个IOC实质都是一个复合指示器,通常我们会将多个Indicator组合到一起作为一个IOC(Indicator of Compromise),最终在形式上IOC就是一个复合表达式,当表达式值为真时的,则该IOC命中(如作为攻击IOC,命中时表示该机器存在Compromise可能)。

小结:

从各大威胁情报的厂商公开的一些情报数据来看,每篇报告后面都会附带一些IOCs,然后各自将一些IOCs加入自己的情报库中,既能完善自己内部的威胁情报,又能够完善自己内部产品,总体来说,威胁情报只是对数据的一些分析,从而得出一些结论,这个结论是为了更好的辅助决策,从而正确的应对安全事件,实现好钢用在刀刃上的效果