来源:https://www.bro.org/sphinx-git/frameworks/intel.html
一、简介
威胁情报数据对于监控安全目的的过程至关重要。总有数据将通过事件响应过程被发现,而数据将通过私有社区共享。Bro的威胁情报框架的目标是使用这些数据,使其可用于匹配,并围绕提高性能、内存利用率以及总体上使这一切变得更容易提供基础设施。
威胁情报架构中的数据是一个原子的情报,如IP地址或电子邮件地址以及一套关于它的元数据,比如自由的源字段,一个自由的描述性的字段和一个URL可能导致对具体项目的更多信息。默认脚本中的元数据故意保持最少,以便社区可以通过编写使用常规记录扩展机制扩展基本记录的脚本来找到需要添加的适当字段。
二、快速启动
参考下面的“加载威胁情报”部分,查看威胁情报框架文本文件的格式,然后在local.bro中用这一行加载这些文本文件:
redefIntel::read_files+={"/somewhere/yourdata.txt"};
如果在集群中运行,文本文件只需要驻留在管理器上。
在local.bro中添加以下代码,以便将发送“已看到”数据的脚本加载到威胁情报框架中,以便根据已加载的威胁情报数据进行检查:
@loadpolicy/frameworks/intel/seen
威胁情报数据匹配将被记录到intel.log文件中。
三、体系结构
威胁情报框架可以被认为包含三个独立的部分。第一部分是如何加载威胁情报,然后是向威胁情报框架表明看到了需要检查的数据的机制,第三部分是发现了正匹配的部分。
1、加载情报
威胁情报数据只能通过使用输入框架约定的纯文本文件加载。此外,在集群上,管理器是惟一需要威胁情报数据的节点。威胁情报框架具有分发机制,可以将数据推送到所有需要数据的节点。
下面是一个威胁情报数据格式的示例(注意,如果您使用CIF威胁情报数据,或者使用 policy/frameworks/intel/do_notice脚本,则会有额外的字段)。注意,所有字段都必须由一个制表符分隔,并且只包含连字符的字段被认为是空值。
#fields indicator indicator_type meta.source meta.desc meta.url1.2.3.4Intel::ADDRsource1Sendingphishingemailhttp://source1.com/badhosts/1.2.3.4a.b.comIntel::DOMAINsource2Nameusedfordataexfiltration-
有关所有内置indicator_type值的列表,请参阅Intel::Type文档。
注意,如果您使用的是来自集体威胁情报框架的数据,那么您将需要向本地添加以下代码行。为了支持CIF使用的额外元数据字段:
@loadpolicy/integration/collective-intel
对于用户指定的威胁情报匹配,有一个简单的机制来引发Bro通知(类型为Intel:: notice)。要使用此特性,请向local.bro添加以下行,以支持额外的元数据字段(在Intel:: metadata记录中记录):
@loadpolicy/frameworks/intel/do_notice
要在创建文件后加载数据,请使用以下示例指定要加载哪些文件(当然要使用您自己的文件名):
redefIntel::read_files+={"/somewhere/feed1.txt","/somewhere/feed2.txt",};
记住,这些文件只需要显示在集群部署上的manager节点的文件系统上。
2看到数据
当提取了一些数据(例如SMTP消息中的“From”头中的电子邮件地址)时,需要通知威胁情报框架这个数据已经被发现,以便在加载的智能数据中检查它的存在。这是通过Intel::seen函数完成的,但是通常用户不需要使用这个函数,因为Bro中包含了调用这个函数的脚本。
要加载Bro中用于向威胁情报框架发送“已看到”数据的所有脚本,只需向local.bro添加这一行:
@loadpolicy/frameworks/intel/seen
或者,可以加载该目录中的特定脚本。请记住,随着更多的数据被发送到智能框架中,Bro消耗的CPU负载将增加,这取决于调用Intel::seen函数的次数,该函数严重依赖于流量。
3威胁情报匹配
尽管存在种种希望,但大多数网络最终会受到威胁情报数据的冲击,这些数据可能表明可能存在某种破坏或其他不想要的活动。威胁情报框架提供了一个事件,每当发现名为Intel::match的匹配时就会生成该事件。
由于威胁情报框架上的设计限制,因此无法确定该事件将在何处生成。在处理Intel::match事件时,只有作为事件参数提供给事件的数据才能得到保证,因为看到数据的主机可能不在Intel::match处理的地方。
威胁情报匹配被记录到intel.log文件中。有关该文件中每个字段的描述,请参阅Intel::Info记录的文档。