bro框架-- 情报框架

原文地址:
https://www.bro.org/sphinx/frameworks/intel.html
情报框架(Intelligence Framework)
介绍
情报数据对以安全为目标的监视过程来说很重要。总是会有在事件回应过程中发现的数据,也有由私有团体所有的数据。Bro的情报框架的目标是消费数据,让它们可以用作匹配,并为改进性能、内存使用提供基础(易于实现)。
情报框架中的数据是一条不可分割的元情报,比如一个IP地址,一个邮箱地址(带有一系列关于它元数据,比如freeform元数据,它的URL)。在默认脚本中的元数据是按照最小存储的,以便团体能够找到合适的域(通过写脚本,这种脚本可以使用记录的扩展机制来扩展基础记录)。

快启动(Quick Start)
可使用下面这句话来加载文本文件。
    redef Intel::read_files += { "/somewhere/yourdata.txt" };
如果是在簇中运行的话,这个文本文件仅属于管理者(manager)。
添加如下的一行都local.bro中,可以加载脚本(该脚本将可见的数据发送给情报框架以验证读取出来的情报数据)
    @load policy/frameworks/intel/seen
情报数据的匹配会被记录到intel.log文件中去。

体系结构(Architecture)
情报框架包含三部分内容。第一部分是情报如何被加载,第二部分是情报框架检验“看见的”一条数据的机制,第三部分是一个正匹配在哪里被发现。

加载情报(Loading Intelligence)
情报数据仅可以通过使用输入框架约定来从纯文本文件中获取。此外,在簇中,仅有管理者(manager)需要情报数据。情报框架有将数据推(push)到需要它的节点(node)上的机制。
下面是情报数据格式的一个例子(注意当你使用CIF情报数据或者当你使用policy/frameworks/intel/do_notice脚本的时候,会有更多的域(field))。注意所有的域都由一个tab符分隔,仅包含一个连字符(hyphen)的域被认为是空值。
#fields indicator       indicator_type  meta.source     meta.desc       meta.url
1.2.3.4 Intel::ADDR     source1 Sending phishing email  http://source1.com/badhosts/1.2.3.4
a.b.com Intel::DOMAIN   source2 Name used for data exfiltration -
对于一个全是内置indicator_type类型的值,参考下面文档:
https://www.bro.org/sphinx/scripts/base/frameworks/intel/main.bro.html#type-Intel::Type

如果你使用的是集群情报框架(Collective Intelligence Framework),你需要添加以下行到你的local.bro中,以支持CIF所使用的额外的元数据域:
    @load policy/integration/collective-intel
    
对于用户指定的情报匹配,有一个简单的机制可以触发一个Bro提醒(Intel::Notice类型的)。为使用这个特性,添加如下行到local.bro中,以支持更多的元数据域(参见https://www.bro.org/sphinx/scripts/base/frameworks/intel/main.bro.html#type-Intel::MetaData)
    @load policy/frameworks/intel/do_notice

文件一创建就加载数据,使用下面的例子来指定加载哪些文件(当然是你自己的文件名称了):
redef Intel::read_files += {
        "/somewhere/feed1.txt",
        "/somewhere/feed2.txt",
};
记住,这些文件仅需要在簇部署的管理者节点(manager node)的文件系统中展示出来。

可见数据(Seen Data)
当一些数据被提取出来(比如SMTP协议传输中的一条消息的From头部中的一个邮箱地址),情报框架需要被告知这个被发现的数据。这样的话,便于情报框架在已加载的情报数据中检验这个数据是否存在。这个可以通过Intel::seen方法来完成,通常用户不用特地拿这个方法来工作,是因为Bro的脚本会调用这个方法。
为了加载所有Bro中的脚本来给情报框架传送“可见”数据,仅需在local.bro中添加如下行:
    @load policy/frameworks/intel/seen
目录中的指定脚本也可以被加载。发送给情报框架的数据越多,Bro消耗的CPU负载也就会越高(也依赖于调用了多少次Intel::seen方法,Inetl::seen十分依赖于流量大小)。

情报匹配(Intelligence Matches)
情报框架会提供一个每当发现一个匹配就提供的事件Intel::match。
由于情报框架的设计约束,不能保证事件在哪里生成。它可以在看见数据的工作者(worker)上生成,也可以在管理者(manager)上生成。当处理Intel::match事件的时候,只有作为事件参数传给事件的数据可以保证,因为看见数据的主机并不一定就是处理Intel::match的地方。
情报匹配被记录到intel.log文件中。查看这个文件中的各个域的描述,请参考如下网址(Intel::Info记录的文档)
https://www.bro.org/sphinx/scripts/base/frameworks/intel/main.bro.html#type-Intel::Info

 

出现这个错误的原因是在导入seaborn包时,无法从typing模块中导入名为'Protocol'的对象。 解决这个问题的方法有以下几种: 1. 检查你的Python版本是否符合seaborn包的要求,如果不符合,尝试更新Python版本。 2. 检查你的环境中是否安装了typing_extensions包,如果没有安装,可以使用以下命令安装:pip install typing_extensions。 3. 如果你使用的是Python 3.8版本以下的版本,你可以尝试使用typing_extensions包来代替typing模块来解决该问题。 4. 检查你的代码是否正确导入了seaborn包,并且没有其他导入错误。 5. 如果以上方法都无法解决问题,可以尝试在你的代码中使用其他的可替代包或者更新seaborn包的版本来解决该问题。 总结: 出现ImportError: cannot import name 'Protocol' from 'typing'错误的原因可能是由于Python版本不兼容、缺少typing_extensions包或者导入错误等原因造成的。可以根据具体情况尝试上述方法来解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ImportError: cannot import name ‘Literal‘ from ‘typing‘ (D:\Anaconda\envs\tensorflow\lib\typing....](https://blog.csdn.net/yuhaix/article/details/124528628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值