文档库 最新最全的文档下载
当前位置:文档库 › IOC简介

IOC简介

IOC简介
IOC简介

OpenIOC基本介绍

什么是OpenIOC?

OpenIOC主张妥协的开放的指标,OpenIOC对表示的已知威胁,攻击者的方法,或妥协的其他证据的技术特点说明一个可扩展的XML模式,由mandiant公司设计开发的。IOC表示妥协的指标,该术语可被用于指代由一个入侵,或更大的信息集,允许针对入侵或攻击者进行的其他活动的检测特定的工件,该术语还用作OpenIOC格式,它包含了一组数据的一个文件的名称,文件扩展名的文件是.ioc。

引言

在当前这个具有威胁的环境中,相关威胁信息的快速通信是迅速检测、响应和针对性攻击的关键。传统上,从主机和网络上获取威胁信息,然后进行特定技术配置的编码(例如Snort规则)或被编译成人类共享的书面报告。即使内部的同一组织,具有能力共享威胁信息可能取决于员工不堪重负阅读纸质报告,并把这些报告传递给组织中的其他人,每一次的过度都会增加从第一次的攻击到组织的反应的时间。到很多组织开始反应的时候,这种信息已经过时了,并且攻击者有足够多的时间通过网络广泛渗透。

提高你的反应、响应的能力和包含有针对性攻击的能力的关键是一种工作流程和设置工具,并且允许威胁的信息在你的企业里以机器的速度传递。OpenIOC是一种记录、定义和共享信息的一种规范,它可以允许你的组织通过在内部和外部共享许多不同类型的威胁信息,并且还是以一种机器可以识别的格式。OpenIOC是一个开放的,灵活的标准,可以修改额外的情报收集,这样你就可以捕获到人类专家的意见,可以把这些信息翻译成各种技术使用的一种格式,比如:可以清除掉企业被攻击的标志或者目前正在遭受攻击的一种方式,可以真正整治的可实现的目标,对未来有针对性的攻击提高了你的安全状况。

IOC和OpenIOC简介

Indicators of Compromise(IOCs) 以xml文档类型描述捕获多种威胁的事件响应信息,包括病毒文件的属性,注册表改变的特征,虚拟内存等,IOCe提供了一个接口通过iocs来管理这些数据。IOCs是一种入侵后可以取证的指标,可以识别一台主机或整个网络。OpenIOC是一个威胁信息共享的标准,允

许您在逻辑上分类入侵的指标,在机器中以一种可读的格式进行通信。这些术语有时可互换使用,但一个IOC(有时也只是称为指示符)是一个逻辑分组集的描述关于特定威胁的词语(每一个称为“指示器条目”),而OpenIOC是用来描述那些特定集的语言(例如,一个事件响应小组将使用OpenIOC格式在应对事件的过程中写入IOCs)。

OpenIOC用XML(可扩展标记语言)所写的。XML提供的编码数据的一个公认的可以编码数据的标准格式,并且在机器上可读的,被用作了不同标准化的数据通信中。使用xml进行编码,对OpenIOC的用户提供了很大的好处。首先,虽然用于OpenIOC的基础架构是相当小的,分量轻的,它也可以像指示器集(也用XML编写的)那样进行扩展,因为它们由相同基础的架构所支持。此外,如果一个组织需要他们,适合那些尚未描述的特定环境或威胁的自定义指标可以被创建和加入。因为OpenIOC是用XML写的,它也很容易创建实用程序来转换或解析OpenIOC为其他格式,它可能包含在一个IOC的威胁信息中获益的信息。

指示器条目是特定类型的数据元素中所包含的IOC的名称。指标术语通常安排在指标期限的文件,这是一个XML文档中的指标组。当创建一个IOC,调查员可以根据自己喜欢使用尽可能多或尽可能少的条目从尽可能多或尽可能少的资源中去创建。一个组织渴望扩大OpenIOC,包含了一些元素的新类型,它们是这些企业的唯一或者会创建并承载包含的新指标条目,他们希望提供给别人一些可用的指标条目。

IOC功能

为了OpenIOC的细节,MANDIANT目前提供了超过500个不同类型的指示器条目,它们可以被证明可以在一个企业中聚合在一起。这些定义都来源于多年了MANDIANT进行业界领先的应急响应实践经验。这个结合具有OpenIOC的柔性性质,具有嵌套的逻辑结构,导致了比标准静态签名基础的技术更强大的功能。

指标开始于复杂性,是因为仅仅寻找特定工件的签名,这些都可以是传统的取证工具比如MD5校验、编译时间、文件大小、名称、路径位置、注册表项等。但它们还可以包括从更高级的取证技术,诸如存储器取证项,寻找工件,这对于攻击者改变,或伪像是很难的,使攻击者更容易回收,如运行过程组件(包括处理句柄名),进口和所使用的出口都可被用作是可执行的,等等。这些都可以在不同的逻辑分组组合,它们可以让调查者更进一步了解他们正在入

侵的工作,许多不同类型的具体指标,可以合并于一个IOC,使得任何的几个集的复杂性的不同类型的签名可以在一个特定IOC适用。

超越逻辑上的复杂的指标,还有其他的附加的方式去使用IOCs,而不仅是对一个主机进行查询。当查询的结果违背数据集时,IOCs也可以用逻辑运算符排除一类主机或者将被检测的网络。而不是寻找使用具有精确匹配条件的特定文件,IOC也可以用来匹配一个系统特定部分的文件。调查员会从系统中收集未经过滤的数据,然后运行一个IOC对收集来寻找特殊的文件。

简单的用例允许查询工件的取证,例如:

(1)可以通过查找MD5值(哈希值)、文件名、大小、创建日期或者其他的属性的特定文件。

(2)寻找内存中一个特定的实体(进程信息、运行服务信息)。

(3)在windows注册表中查找一些特定的实体或者实体集。

(4)通过各种各样的组合把这些信息组合在一起,这样已提供更好的匹配,比搜索单个文件有更少的误报。

更复杂的用例和技术结合在一起,这些允许更深入匹配,例如:

(1)而不是在一部分操作系统或网络中去寻找特定文件,可以使用OpenIOC的逻辑性将这些工件组合在一起以用来去创建一个有关通用的恶意软件或其他侵入工具的家庭的匹配(例如来自同一作者或威胁的组)。

(2)假设研究者已经对有关系统的内容进行了充分的收集,那么一个事件的响应者可以在已知的目录中制作一个白名单,然后可以拦截所有不是白名单上的文件,而不是仅仅去追寻一些特定的错误的文件。

寻找方法论

有可能,最有效的方法就是创造了一个指标来描述攻击者的方法。指标试图检测方法不专注于一个特定的一块或直接连接到恶意软件的工件。相反,他们着眼于攻击者(或一组攻击者)可能使用的共性的方法。方法论指示并不总是展示一个特殊的折中的实例,但它们将显示由一组攻击者的重复策略的结果。因此,它们是最难编写的,但是,当顺利完成完成时,它们捕获行为仅由攻击者或入侵者,而不是合法用户或系统使用方面的证据。

寻找方法论可以让你做如下一些行为,比如:

(1)可以寻找文件系统中的特定位置、注册表或操作系统,是那些敌对角色在其侵入的过程中经常使用的部分,即使它没有初始的开发无关。

(2)寻找一些被他们的随手使用过的工具或者工具包,如果想改变它,竟会付出很大的代价。

(3)寻找对手在系统中横向移动的活动,那些没有直接受到影响,但显示出活动的迹象,这并不适合正常的系统用户的使用情况。

在现实的例子中,IOCs可以组合任何功能的类型,或者您也可以只使用一个单一类型的功能本身。IOCs需要他们的调查,而在无需编写的新指标的情况下,OpenIOC可以以其灵活性能够跟随着情况的变化而改变。

编写有效的指标

不像其他的一些用于描述威胁信息的数据标准,也没有一对一的映射的威胁(如一个恶意软件),并且数据标准的实体可以去描述它。OpenIOC具有很强的灵活性,但是IOCs也不会像其他那样一直有用,一个“OR文件名的IOC=*.exe”是要识别许多文件,但这是一个比较差的指标,当它在系统上执行一个文件时会产生很多绝对性的误报。更好的IOCs可以达到最好的反应率,同时具有最低的误报率,最终,最佳的IOCs具有如下这些属性:

(1)IOC只识别攻击者的活动。

(2)IOC是廉价的评估—这是典型的简单的收集或计算一些不昂贵的评价信息。

(3)IOC对攻击者的规避是昂贵的,用其他的话说,为了规避IOC,攻击者不得不改变战术,工具或方法。

IOC的生命周期

IOC中是一种有效的和可靠的工作流程,是在MANDIANT自己的事件响应过程的核心的一部分。OpenIOC灵活性和机器可读的格式的特性使这成为可能。下面的内容显示了是如何调查IOCs的生命周期,以及OpenIOC和IOCs如何使这称为可能的。

(1)证据初始化--无论是在主机或网络上,一个折衷的证据被检测到。这可以响应于执法(LE)的通知,或从各种来源注意到异常。不管什么导致了它,响应者可以调查并切确定一些入侵的指标。

(2)为主机和网络创建IOCs--根据证据指标的初步发现,研究人员可以从已经存在的数据中创建一个IOC。创建这种特定类型的IOC会依赖于这些证据、环境、调查员的技能和舒适程度。OpenIOC的灵活性可以允许无限数量的排列,是有关一个指示器是如何精心运作的,因此使用OpenIOC的研究者有很多的选项,关于他们要如何继续。

(3)在企业中部署IOCs—一旦创建了IOC或者一组IOCs,研究者将部署这些技术,对其他系统或网络去巽宅IOCs的存在。在MANDIANT的工作流程

中,这些被送入MANDIANT智能响应(MIR)设备,与MIR代理主机上,然后沟通,或监控网络流量。IOC可以很容易地转换并送入IDS,IPS,HIDS/ HIPS,SIEMS或其他调查工具去调查这些企业。

(4)识别其他的怀疑系统—在部署了IOC进入合适的技术后,额外的系统将被识别,除非第一个主机被攻破的唯一的终端设备。

(5)收集证据—从已经识别的另外的系统中获取到额外的证据。

(6)分析数据—分析了附加的数据,这可以进一步找出入侵、误报、或额外的情报调查。这个反馈可以允许研究者去细化他们的搜索,并返回到所述工作流的开始。

(7)完善和创建新的IOCs—调查组可以基于他们在企业中的发现和额外的情报去创建新的IOCs,并不断的完善他们的工作循环流程,直到他们觉得他们要么已经用尽,需要寻找新的信息,或其他因素迫使他们停止调查,并提出整治。

图1 IOC生命周期图

用工具来创建,编辑和使用OpenIOC

MANDIANT发布OpenIOC的一个开源许可证,使广大的事件响应社会团体都能够从MANDIANT的过程和经验教训中收益,并拥有一个标准化的格式可以对有关威胁信息进行交流和通信。为了推动这一目标,MANDIANT发布工具,可以让

有兴趣的人士利用IOCs编辑器去写OpenIOC,而不必与MANDIANT有任何的业务关系。这些工具目前包括有:

MANDIANT IOC编辑器:该工具允许使用图形化界面去创建IOCs,而不是去编辑原始的XML文件。用IOC编辑器创建的IOCs可以用来与组织内部或组织外部的其他响应者进行共享。

MANDIANT IOC搜索:一旦一个IOC被创建了,创建者可以使用IOC搜索从一个主机上获取数据。一旦数据被搜索到了,IOC搜索可以被用作去检查收集数据的IOC,观察他们与IOC中规定的条件中是否和主机相匹配,基于这些结果,一旦IOC得到了验证,他们可以细化IOC,或这用它来搜索其他的端点。

用这些工具事件响应者可以:

(1)使用IOC编辑器创建IOC和收集证据。

(2)使用IOC搜索去识别新创建的IOC。

(3)与了解OpenIOC的人分享其他实体的情报。

(4)使用IOC搜索去搜索其他个人的终端。

此外,你也可以使用商用工具,比如MANDIANT智能响应从数以万计的终端中去搜索IOCs,随着事件的推移,MANDIANT's希望并期待推出一些免费的使用工具和商业工具,让更多的人能消费的起IOCs。

IOC常见的应用场景

安全事件调查人员在安全事件应急响应过程中面临的其中一个挑战是,找一个有效的方法把所有调查过程中的信息组织起来,这些信息包括攻击者的活动、所用的工具、恶意软件、或者其他的攻击指示器(indicators of compromise),简称IOCs,而OpenIOC格式正好可以解决这个难题。OpenIOC可提供一个标准的格式和术语来描述调查事件中遇到的分析结果,以便在不同组织间进行共享。需要澄清的是IOCs不是一个签名(signatures),所以不是要实现signature的功能。它设计出来是用于帮助你的调查,或者其他人的调查,这些人是你与之共享威胁情报的人。、

常见的IOC的用例

(1)恶意软件/工具型

这是最常见的用例,本质上讲,这种类型的IOC可用于发现某些已知类型的恶意软件或恶意工具,通常通过查找二进制文件或其文件属性,或其执行时创建的特征,例如一些预读文件、注册表键值等。

(2)方法论型

不同于上一种可直接识别恶意软件/工具,这种类型的IOC为了生成一些调查的线索,让你可以发现你不一定知道的东西。例如,如果你想识别出任何没有经过签名,而且从任何在“windows\system32”目录外加载的DLL,那你就可以写一个IOC去描述这个条件。另一个比较好的“方法论IOC”例子就是查找注册表中所有“Run”键值内容结尾为“.jpg”,这个IOC代表了一种不正常的情况,在安全调查中就指示出很可能是一个已被恶意利用了的证据。

(3)“袋装”型

你可能已经在使用这种IOC,很多组织会订阅一些威胁情报,这些订阅的feed通常会投递一些MD5或者ip地址列表,一“袋装”的IOC可以代表这些入侵指示器(indicator)的一个集合。这种类型的IOC非黑即白,通常在调查事件中用于准确匹配的话会比较好。

(4)调查case型

当你在环境里面调查可疑的系统时,识别出一些恶意的活动证据,例如关于安装了后门、执行了恶意工具、文件已被窃取等等的元数据时,你就可以在一个IOC里面跟踪到这些信息。这类IOC跟“袋装”型IOC有点类似,然而调查型IOC只包括一个调查事件中的指示器,这种类型的IOC可以帮助你区分哪些系统需要优先去调查。

IOC的组件的介绍

一个IOC通常由三个部分组成,分别是IOC元数据部分、参考部分以及定义部分。下面使用Mandiant的IOC编辑器来了实际了解一下这些组成部分。

图2 IOC软件主界面构成

元数据

IOC元数据描述了以下信息,例如本IOC的名称、作者以及简述。

参考

在IOC的参考里面,可以有调查事件的名称或者case编号,IOC成熟度的评论和信息(例如Alpha, Beta,Public Release等等)这些信息有助于你理解这个IOC适合放到你的威胁情报库中的什么位置。这个参考字段通常的用法是用于把IOC关联到特定的威胁组织(好比如APT1)。当于第三方共享IOC信息时,删除特定的参考字段的做法并不常见。

图3 IOC参考属性

定义

这是IOC的核心内容了,包括了调查人员决定编写IOC的关键内容。例如,可能包括一个文件的MD5值,注册表路径或一些在进程内存中发现的线索,所谓的指示器(indicator)会列在这个定义字段里,或者组合到表达式里面,这些表达式通常由两个术语和一些布尔型逻辑符组成。OpenIOC的其中一个特性令它特别有用,就是它可简单的组合一些and,or的逻辑条件判断符。

图4 IOC逻辑指令

举例说明逻辑判断条件如何运用。

(1)服务名为"MS 1atent time services" or

(2)任何含有DLL调用名为evil.exe的服务 or

(3)文件名是“bad.exe” AND 其文件的大小在4096-10240-bytes之间。

AND代表表达式两边都必须为真。

OR代表表达式两边只需要一边为真。

理解清楚这个AND OR的关系就可以明白,用上面的例子来匹配IOC时,并不是一个if-else的声明,也不是都必须存在。在安全事件调查中,如果发现

一个名为“MS 1atent time services”的服务,那这个IOC就匹配上了,而不管IOC所描述的恶意文件是否在这台主机上出现。

如何提高安全响应意识

一个高效的安全事件响应计划应该具备七条原则。采用以下原则,你将能更好的应对威胁形势并能从安全事件中实现更有效的恢复。

1. 自我意识

让安全事件响应团队意识到自身的能力和约束是关键。成功取决于对计划准备的客观认识水平。当寻求自我意识,安全事件响应团队必须避免高估自己对某个威胁的响应能力,并清楚在哪里可以获得帮助。

2. 认清技术的优点和局限性

在诸如RSA大会之类的行业活动展会现场,到处都充斥着一个普遍的市场信息:下一个伟大的技术将会解决你所有面临的问题。但高级威胁防护不等于一个产品,也没有一个孤立的解决方案可以实现。尽管如此,企业技术投资的比重还是高于安全事件响应计划的投资。根据我们福雷斯特安全调查,当一个安全违规事件发生之后,25%的企业增加了用于购买安全违规预防技术的费用,然而只有23%的企业增加了用于安全事件响应计划自身的费用。

3. 建立符合实际的报告和衡量机制

许多企业使用错误的度量机制来测量他们安全事件响应计划的性能。侦查扫描活动不等于安全事件,就像防病毒(AV)定义更新无法测量安全事件响应能力的成功与否一样。有效的安全事件响应团队使用更有意义的业务指标。一旦你已经建立了一个通用的安全事件定义,你就需要测量检测它所用的时间、抑制它扩散所用的时间和补救所用的时间。攻击者进入你的网络后你要花多久时间才能检测到它?一旦检测出来,你要花多久时间才能抑制住攻击者?你要花多久时间才能完成对该安全事件的补救工作?这些测量都是以结果为导向输出的度量机制。当企业提升了员工的技能,部署了新的安全控制措施,这些测量数字就会有所改善。

4. 让计划可扩展

当处理全球性公司的安全事件时,安全事件响应的可扩展性就变成非常关键的因素。很多人会对世界上最大的公司作了错误的假设,仅仅因为它们拥有最成熟的技术和能力。事实上,全球性公司的规模和自身复杂性导致安全事件响应特别具有挑战性。正如一位咨询公司的安全事件响应总监所说:“个头越大,摔得越重”。流程和监督对于确保安全事件响应计划的可扩展性来说至关重要。

5.内外协作

安全事件响应团队不是孤立的在工作;他们是一个更大社区的一部分。鉴于企业面对的绝大多数威胁形势和操作上的限制,这些团队必须工作在一个更大的社区内才能成功。成功的团队能建立良好的IT关系,认识到顾问的重要性,并能在可信合作伙伴之间共享威胁信息。

6.鼓励高管参与

在过去,安全专家们在为博得业务领导的关注而努力奋斗。但过度聚焦在战术安全度量指标上,不能与业务需求保持一致,以及“不存在的部门”的名声,已经遏制了业务领导对安全的兴趣。然而根据福雷斯特调查显示,最近几年发生的高调的网络攻击事件已经提升了70%本次调查受访企业的高管的安全意识。业务领袖们正从《华尔街周刊》和《金融时报》的头版阅读着这些网络攻击的文章。现在是时候利用这个优势去鼓励那些已经准备好听你的见解的高管门参与其中。

7.自主运作

安全事件响应团队的工作就是打击攻击者,他们必须感觉到有权作出关键决定,而不是必需花时间去寻求对他们行动的审批。当数据正从你的网络向外泄漏,损失是以秒来计算的,你必须建立一个启用自主权的框架。为了启动自主权,安全事件响应团队必须制定清晰的交战规则定义,避免出现微观管理和向上操纵指挥系统现象。最后,你必须确保高层管理层支持安全事件响应分析师们做出的决定——哪怕这个响应决定最后被证明是错的。错误会发生,但一旦他们这样做了,安全领导必须支持这些前线的分析师们的决定。安全事件响应参与者们必须能感觉到管理层将会支持他们的决定,当做了错误的决定,安全事件响应团队不会因此成为替罪羊。

结论

威胁形势所面临政府和商业部门比以往任何时候都更具挑战性。虽然捍卫者在这段时间一定要100%的成功,而攻击者只需要通过一次并且达到成功。在几乎所有环境中,某种类型的妥协是不可避免的。在捍卫者之间有关的信息进行快速传播是一个有效的方法去打击复杂的威胁者的攻击目标,并且是一个成功的事件响应和控制工作流程的一个必要组成部分。用OpenIOC编写的一个妥协的指标文件,允许组织用标准的、具有逻辑组织方式、正确的编码和拥有一个人类专家知识的被机器可读的一种格式去识别威胁情报的产品,并且以机器响应的时间速度去沟通,共享情报和企业的智慧或其他的实体。拥有OpenIOC,您的组织可以充分利用多年的事件响应体验,加入到创造和完善

OpenIOC中去,并且赋予你的员工去快速应对入侵的能力,能改变大大有利于攻击者的不平衡的力量。

相关文档