浅析安全威胁情报共享框架OpenIOC

Outline:

1. Instruduction
2. IOC & OpenIOC
3. IOC Functionality
4. OpenIOC对行为的描述
5. IOCs in the Investigative Lifecycle
6. OpenIOC Tools

一、OpenIOC背景介绍

在当今的安全威胁环境下,为了应对更加复杂的攻击(如APT),如何便捷地分享、交流安全情报成为针对特定目标攻击检测、响应和防止的关键问题。传统地解决方案是先从主机或者网络中收集威胁情报信息,然后采用特定的技术规范描述,形成书面的报告分发共享给其它相关人员。这种做法最明显的问题是时间延迟非常高。因为即使在一个组织内部,情报共享的效率完全依赖于员工阅读和分发报告的能力,每次消息的传递都在增加安全事件的响应延迟。因此常见的情况是,当组织开始对事件响应时,所依据的信息往往已经过时,而且攻击早已在网络中蔓延造成了损失。

基于此,MANDIANT公司基于多年的数字取证技术的积累,将使用多年的情报规范开源后形成OpenIOC(Open Indicator of Compromise)框架,作为现实可用的安全情报共享规范。OpenIOC本身是一个记录、定义以及共享安全情报的格式,它可以帮助你借助机器可读的形式实现不同类型威胁情报的快速共享。OpenIOC本身是开放、灵活的框架,因此你随时可以根据发现添加新的情报,完善你的IOC(Indicator of Compromise)。

【关于MANDIANT】

该公司被众人所知是从其发布报告称中国RPC针对美国进行APT攻击开始。其具有以下几个特点:

1. MANDIANT创始人系特工出身:Kevin Mandia于2004年创立该公司,目的是帮助企业侦测、快速反应可能存在的网络入侵。Kevin有20年的信息安全从业经历,曾工作与五角大楼第七通信部任计算机安全官员,之后又加入了美国空军特别调查办公室(AFOSI);

2. MANDIANT公司开在中情局附近,而大多数安全公司都是扎堆在西海岸;

3. MANDIANT是获得FBI承认的“具备参与执法资格”的公司;

4. MANDIANT的业务主要是安全事件响应,现已被FireEye收购;

二、IOC与OpenIOC

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

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

三、OpenIOC规范描述

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

表达式(Expression):定义了一个条件,当为真值时,表明存在一个入侵行为;

简单表达式(Simple Expression):没有使用AND或OR两种逻辑运算符的表达式;

复杂表达式(Complex Expression):多个简单表达式通过AND或OR连接;

攻击指示器(IOC):多个表达式的连接,可以是简单表达式、复杂表达式;

如图1-IOC Structure:

顶级逻辑为OR运算,下层的每个逻辑运算符AND或OR只作用于其子元素,如第一个AND运算只作用于Registry Path: version和Registry Text: 5, 1, 3802, 0;

我们通过图2和图3来说明IOC表达式的实际含义:

图2-Logic branch example:

每个表达式的条件有contains|contains not|is|is not四种;图2从文件名、大小、编译时间以及网络DNS和服务名、DLL等方面对行为进行了刻画。

图3-Indicator Expression:

 

上述IOC实际存储在一个XML文件中,类型名为ioc,IOC的XML标签并不多,刻画的细度主要通过设置不同的属性(IndicatoreItem)来实现,通过模块化的逻辑结构,可以随时根据获得的信息和知识进行IOC优化调整。IOC用到的基本XML标签如下:

< ioc>:用于标识一个IOC对象; < definition>:用于定义具体的Indicator: < Indicator>:用于包含多个IndicatorItem; < IndicatorItem>:用于描述一个具体的属性,其id值标识该属性,condition表明该表达式成立条件; < Context>:用于定义属性的大类和子类,标记属性名,如document="FileItem" search="FileItem/SizeInBytes", 最后的“mir”是MANDIANT Intelligence Response的缩写; < Content>:用于定义属性值的类型以及属性值,如type="int" ,大小为35343;

OpenIOC定义的XML标签主要就是以上几种,其对行为的刻画主要通过复杂丰富的IndicatorItem来体现,如图5所示:

四、OpenIOC对行为的刻画

OpenIOC对于行为的刻画主要依靠其IndicatorItem来实现,基于其在数字取证领域的多年实践,OpenIOC为我们提供了丰富、细化的行为描述属性。

OpenIOC一共提供了27类属性,分别是:

ArpEntryItem CookieHistoryItem DiskItem DnsEntryItem DriverItem Email EventLogItem FileDownloadHistoryItem FileItem FormHistoryItem HiveItem HookItem ModuleItem Network PortItem PrefetchItem ProcessItem RegistryItem SerivceItem Snort SystemInfoItem SystemRestoreItem TaskItem UrlHistoryItem UserItem VolumItem

针对上述每个大类,又可以细分出诸多小属性,比如以DiskItem为例,又细分为:

Disk Name Disk Partition Length Disk Partition Number Disk Partition Offset Disk Partition Type Disk Size

更多详细的属性说明在其官方文档中,除了列表中列出的属性,OpenIOC还支持自定义该格式的属性:

CommonIOCterms:http://openioc.org/terms/Common.iocterms

CurrentIOCterms:http://openioc.org/terms/Current.iocterms

五、IOC工作流程

MANDIANT主要在事件响应与数字取证领域使用IOCs,主要分为以下几个步骤:

获取初始证据:根据主机或网络的异常行为获取最初的数据;

建立主机或网络的IOCs:分析初步获得的数据,根据可能的技术特征建立IOCs;

在企业中部署IOCs:在企业的其它机器或网络中部署IOCs,开始检测;

发现更多的可疑主机;

IOCs优化:通过初步检测可获取的新证据,并进行分析,优化已有的IOCs;

六、OpenIOC工具

MANDIANT已经为OpenIOC开发了免费的使用工具,主要是IOCeditor和Redline两个工具。其中IOCeditor用来建立IOCs,而Redline负责将IOCs部署到HOST上收集信息后进行分析。主要过程如下:

运行Mandiant IOCe.exe,打开IOCeditor编辑器窗口,选择要编辑的IOC文件或新建IOC文件;

为现有的IOC添加IndicatorItem;

 

设定表达式条件;

 

设定AND或OR运算符;

保存成为.ioc文件;

接下来,需要将已经保存的.ioc文件生成collector部署到目标Host上,主要依靠Redline提供的IOCs部署功能:

首先运行Redline.exe选择“Create an IOC Search Collector”:

其次选择已经保存好的IOC文件,设定collector生成位置:

最后将生成的collector部署到目标机器上,运行脚本RunRedlineAudit.bat,完成后会在Sessions目录中保存收集的数据,可以在Redline中打开中进行分析;

七、小结

OpenIOC是一个开放灵活的安全情报共享框架,利用OpenIOC,重要的安全情报可以在多个组织间迅速传递,从而极大缩短检测到响应的时间延迟,提升紧急安全事件响应与安全防范的能力。但是由于其发展自数字取证领域,因此分析基本基于硬盘镜像的思想,即就系统的某一个时刻的状态进行分析

主要内容才考OpenIOC的官方文档:

AnIntroductiontoOpenIOC.pdf

IOCeUserGuide.pdf

ReadlinUserGuider.pdf

【资源列表】:

官方主页:http://openioc.org/

开源的IOCWriter:https://github.com/mandiant/ioc_writer

IOCEditor Tool下载:https://www.fireeye.com/services/freeware/ioc-editor.html

Redline下载:https://www.fireeye.com/services/freeware/redline.html

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/134688.html<

(0)
管理的头像管理
上一篇2025-03-01 06:47
下一篇 2025-03-01 06:48

相关推荐

  • BGP线路到底是什么意思呢,有什么优势?

    BGP线路是一种通过边界网关协议实现多运营商网络互联的接入方式,能自动选择最优路径,极大提升跨网访问速度和稳定性,是解决国内南北网络瓶颈的核心方案,什么是BGP线路BGP,全称Border Gateway Protocol,边界网关协议,是互联网核心路由协议之一,它负责在自治系统之间交换网络可达性信息,BGP线……

    2026-07-26
    0
  • 增值电信业务经营许可证对IDC有多重要,如何办理?

    增值电信业务经营许可证是IDC服务商合法运营的核心凭证,它直接决定了机房能否接入骨干网、客户能否放心托管业务,以及服务商自身能否长期稳定发展,许可证是IDC进入市场的硬门槛互联网数据中心业务属于增值电信业务中的B1类,依据工信部《电信业务经营许可管理办法》,任何从事服务器托管、虚拟主机、云服务等业务的企业,必须……

    2026-07-26
    0
  • 站群服务器一个IP放几个网站合适?,怎么选

    站群服务器一个IP放3-5个网站是大多数情况下的最佳平衡点,但具体数量需根据网站权重、内容质量及IP资源成本灵活调整,这个结论基于搜索引擎对同IP站点的关联判定逻辑,以及站群运营的长期实践,如果你刚接触站群,可能会纠结于IP分配,但核心原则是:不要让搜索引擎轻易识别出这些网站属于同一实体,站群IP分配的底层逻辑……

    2026-07-26
    0
  • DDoS攻击和CC攻击有什么区别,怎么防御?

    DDoS攻击和CC攻击最核心的区别在于攻击目标不同:DDoS攻击主要消耗网络带宽和基础设施资源,而CC攻击专门针对应用层逻辑,耗尽服务器CPU和数据库连接数,两者从原理到防御手段完全不同,攻防视角下的本质差异攻击目标:一个砸门,一个撬锁DDoS攻击(分布式拒绝服务)瞄准的是网络层和传输层,通过大量伪造数据包或畸……

    2026-07-26
    0
  • 服务器UEFI和Legacy启动模式有什么区别,哪个好

    UEFI(统一可扩展固件接口)是取代传统Legacy BIOS的现代启动标准,在服务器领域,UEFI凭借更快的启动速度、超过2TB的磁盘支持、安全启动(Secure Boot)以及丰富的预启动网络功能,成为主流服务器的默认配置;而Legacy BIOS作为兼容性模式,仅在需要运行老旧操作系统或特定硬件时保留,U……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注