情报信息是现代网络安全中重要的一种资源。由于网络空间里的黑客有了更强大的工具军火库和资源,攻击行为更多的是有组织犯罪和政府背景行为,攻击变得越来越复杂,态势感知技术也因此被应用于网络空间安全领域来对抗这种复杂的攻击。为了实现对威胁的全面感知、分析和响应,态势感知技术需要掌握所有出现的威胁信息,但一种单独的网络安全设备无法检测到所有类型的攻击,一家单独的组织也无法发现所有的安全威胁,因此在设备间和组织间交换安全威胁相关的情报成为搭建态势感知系统的重要基础。由于不同设备和组织各自有不同的数据格式和数据组织形式,为了加强安全设备的配合,以及促进不同组织间的协同响应,需要开发标准化的机器可识别的网络空间威胁情报数据交换方法。在这个过程中,不同的组织定义了不同的数据交换协议标准,下面将从时间发展角度介绍几种不同的常用于威胁情报交换的数据标准:IDMEF、IOMEF、OpenIOC和STIX。
IDMEF
入侵检测消息交换格式IDMEF(Intrusion Detection Message Exchange Format)是最早定义于安全设备间进行数据交换的标准之一,由IETF的入侵检测工作组IDWG (Intrusion Detection Working Group)定义,最后发表时间为2007年。IDMEF主要用于在不同的入侵检测系统之间交换警报信息,从而实现商用、开源和在研等不同类型的入侵检测系统之间可以自动地交换数据。IDMEF的格式如图1所示,只包括警报(Alert)和心跳(HeartBeat)两种信息。警报信息中除了常用的时间、攻击源类型等信息之外,还定了少量的工具、溢出攻击等字段来说明攻击的详细信息,可以被基于网络和基于主机的入侵检测系统使用。IDMEF标准的定义时间较早,交换对象也仅限于入侵检测系统之间警报信息,无法描述更丰富的不同类型的情报数据,因此作为最早的标准之一,尽管大多数入侵检测系统都支持IDMEF格式的消息输出,实际应用并不广泛。
OpenIOC
随着APT攻击的出现,人们希望能快速地将情报信息用于安全响应,如将僵尸网络的控制器加入黑名单,将攻击软件的代码特征和网络特征配置进入主机防御系统和网络入侵检测系统。这些种类的情报信息被命名为IOC(Indicator of Compromise),它们描述了入侵过程的各种可被观测的信息。IOC信息根据复杂度可以被分为不同的种类,最简单的如IP地址、URL信息、邮件主题信息可以直接应用在检测中,文件Hash、报文负载的正则表达式特征则需要对原始数据进行处理以后才可以使用,为了防止误报,有时需要将多个简单或复杂的IOC组合以后才能唯一标记出一类入侵。大量的威胁情报网站(如AlientVault公司的Open Threat Exchange)都定义了自己的IOC格式来发布不同类型的IOC信息,在应用这些信息时,用户需要开发不同的格式解析软件,因此2013年Mandiant公司(以研究APT攻击出名)定义了OpenIOC,一种基于XML的IOC数据表示标准,并提供了免费软件进行OpenIOC的编辑。但是由于商业公司之间的壁垒,Mandiant公司没能成功推广该标准。IODEF
威胁情报交换不仅仅是设备间的交互,更重要的是不同组织之间的交互,事件对象描述交换格式(IODEF, Incident Object Description Exchange Format)被定义用于在不同的安全响应组织之间进行安全信息的交换。IODEF 最初定义于2007年,经过了长期的发展,最后一版定义于2016年,期间经历了多个不同的工作组,目前由IETF的MILE工作组( Managed Incident Lightweight Exchange)负责维护,主要负责单位为美国卡内基梅隆大学的CERT。早期的IODEF和IDMEF相似,能表达的信息内容有限,经过长期的发展,融合IOC等新出现的威胁情报数据类型,表达能力得到了很大的增强。其基本格式如图2所示。IODEF以文档(Document)为所有数据的总入口,一个文档可以包含多个事件,事件包含丰富的子属性来描述事件发生的时间、原因、方法、影响范围、联系人信息等,同时也支持IOC数据的表示。2017年MILE工作组还发布了IODEF使用指南和使用调查报告两个RFC(RFC 8274Incident Object Description Exchange Format Usage Guidance, RFC 8134 Management Incident Lightweight Exchange (MILE) Implementation Report),应该说CERT作为全球安全响应组织的重量级单位,对推广IODEF的实用化起了很大作用。
STIX
结构化威胁信息表示标准STIX(Structured Threat Information eXpression)是由MITRE公司提出的结构化威胁情报交换格式标准,最早发布于2012年,后来交由标准化组织OASIS的CTI(Cyber Threat Intelligence)委员会负责,目前版本已经发展到2.0(2017年),目前该工作组既包括了MITRE、CTIN这样的安全公司,也包含了美国DHS等政府部门。STIX被定义为用于自动化的威胁情报交换,以实现协同响应和自动化的威胁检测分析。相对于前面几类文档式的数据格式,STIX的2.0版本全面采用了面向图(Graph based)的表示结构,将威胁情报的不同类型数据解构成不同的节点类型,然后通过定义数据节点间的关系节点来描述更高层的信息。STIX定义的节点类型分成12种,从漏洞、恶意软件、工具、攻击模式、战役、威胁角色、组织标识等方面覆盖了威胁的各个不同角度。
STIX对象类型
基于图的结构允许威胁数据以不同的角度来进行展示,比如Campaign(战役)从一次具体的攻击过程来描述威胁信息,Attack Pattern(攻击模式)则从通用攻击模式的角度将不同的攻击者、攻击战役进行关联。这种灵活的数据组织方式可以使用各类基于图的算法或技术对威胁情报数据进行组织和检索。
STIX本身定义了大量的术语(在STIX中叫Vocabulary)来保证不同组织间可以尽量使用相同的术语对同一对象进行描述,并引用了CAPEC、CVE等第三方标准进一步加强术语的通用性。由于MITRE公司本身在安全标准领域的权威地位,STIX推出后得到了广泛的认可。
经过长时间的发展,这四种标准中 ,IODEF和STIX已经发展的较为完善,是目前实际被厂商和安全组织支持最广泛的两种标准。这两种标准在内容上有一定的相似性,例如很多对象的命名上很相近。主要的差别在格式上,IODEF的文档式结构让数据间耦合过紧,扩展起来并太方便,而STIX基于图的表示扩展更为方便。另一方面,在表示对象上,IODEF依然以Incident为顶级主题,STIX则有不同的选择,在对象支持上也更多。由于使用了图结构,STIX在存储上和传统的SQL数据库相容性较差,需要NoSQL数据库支持。 (责编:王左利)
(作者单位为东南大学网络空间安全学院)