美文网首页
Dsiem插件

Dsiem插件

作者: Threathunter | 来源:发表于2020-05-30 16:43 被阅读0次

    来源:https://github.com/defenxor/dsiem

    Dsiem plugin是一个Logstash配置文件,它的功能是克隆Logstash解析的事件,将它们转换为称为标准化事件的标准格式,并将它们发送到Dsiem进行处理。

    一、规范化的事件

    下表显示了一个规范化事件的字段:

    timestamp。原始事件时间戳为ISO8601格式,不要与Logstash内置 @timestamp混淆;强制填写;不用于事件关联,但它用于检测无序事件和传输时间。

    event_id。事件的UUID,如果事件还没有,通常使用Logstash UUID筛选器插件生成;强制填写;不用于事件关联。

    title。事件的描述;强制填写;不用于事件关联。

    sensor。产生/捕获事件的设备的字符串标识符。示例:IPS设备、防火墙或处理Logstash节点的主机名;强制填写;不用于事件关联。

    src_ip。源IP,应指基于网络通信的事件的发送方。对于基于主机的事件,如果事件记录中有可用的主机主IP地址,则使用它,或者只使用127.0.0.1;强制填写用于事件关联

    dst_ip。目标IP,应指基于网络通信的事件的接收者。基于主机的事件应该只使用与src_ip或127.0.0.1相类似的地址;强制填写用于事件关联

    protocol。使用的网络协议,如TCP、UDP、ICMP等;非强制填写用于事件关联

    src_port。源端口号,通常指TCP或UDP端口,但也可以是任何识别号,如ICMP类型号等;非强制填写用于事件关联

    dst_port。目的端口号,通常指TCP或UDP端口,但也可以是任何识别号,如ICMP类型号等;非强制填写用于事件关联

    product。生成事件的设备的产品类型,即防火墙、IDS/IPS等。强制填写用于事件关联

    category。事件的类别,相对于产品类型。例如,如果产品类型是防火墙,事件的类别可能允许流量、拒绝流量、丢弃流量、端口扫描等。强制填写,如果plugin_id或plugin_sid是空的;用于事件关联

    subcategory。事件类别的进一步细分。例如,如果类别是代码注入攻击,子类别可能是SQL注入、HTTP参数注入等。强制填写,如果plugin_id或plugin_sid是空的;用于事件关联

    plugin_id。标识插件的唯一数字。例如,在Dsiem默认配置中使用的基于Suricata eve.json的1001事件(在OSSIM中,默认情况下也使用1001事件,用于Suricata UnifiedThreat日志)。强制填写,如果product或category是空的;用于事件关联

    plugin_sid。标识插件内事件的唯一数字。强制填写,如果product或category是空的;用于事件关联

    custom_label1。用于关联规则的额外/自定义字段的文本标识符;非强制填写不用于事件关联。

    custom_data1。由custom_label1定义的额外/自定义字段的文本内容;非强制填写用于事件关联。

    custom_label2。用于关联规则的额外/自定义字段的文本标识符;非强制填写;不用于事件关联。

    custom_data2。由custom_label2定义的额外/自定义字段的文本内容;非强制填写用于事件关联。

    custom_label3。用于关联规则的额外/自定义字段的文本标识符;非强制填写;不用于事件关联。

    custom_data3。由custom_label3定义的额外/自定义字段的文本内容;非强制填写用于事件关联。

    二、创建Dsiem插件

    在dpluger工具的帮助下,可以从Elasticsearch中的现有索引自动创建Dsiem插件。然后,可以使用dpluger创建的Logstash配置文件来过滤和解析传入事件,以生成规范化事件,并在80_siem.conf的帮助下将它们发送到Dsiem进行进一步处理。

    有两种类型的Dsiem插件:

    基于sid的插件:生成规范化的事件,稍后由一个指令PluginRule处理

    基于分类(Taxonomy)的插件:为指令TaxonomyRule生成规范化事件。

    下面给出了如何在dpluger帮助下创建它们的示例。

    例1:基于sid的插件

    假设您的elasticsearch位于http://elasticsearch:9200,那里有一个名为suricata-*的索引,用于创建一个用于Suricata IDS的插件。以下是具体的步骤:

    (1)从这个项目发布页面下载并提取最新版本的dsiem-tools。

    (2)创建一个空的dpluger配置文件模板使用:

    $ ./dpluger create -a http://elasticsearch:9200 -i"suricata-*"-n"suricata"-c dpluger_suricata.json

    上面的代码将在当前目录中创建一个名为dpluger_suricata.json的dpluger配置文件。文件的内容将是这样的:

    下一步是编辑该文件,使字段引用和标识符与目标Elasticsearch suricata-*索引中的实际字段名匹配。对于从Suricata Eve JSON格式生成的索引(在Docker撰写部署示例中也使用了这种格式),最终的配置应该是这样的:

    之后,我们可以使用run命令再次启动dpluger。这将验证目标Elasticsearch索引上的每个字段是否存在,然后创建一个ready to use Logstash配置文件。

    生成的Logstash配置文件(即一个Dsiem SIEM插件)将是70_siem-plugin-suricata.conf,位于当前目录中。要使用该插件,只需将其复制到Logstash配置目录并重新加载Logstash。

    例2:基于SID的插件和生成的插件SID

    在前面的示例中,Suricata生成的每种类型的事件都有一个警报中的uniq标识符。signature_id,可用于生成的规范化事件中的plugin_sid。

    但是如果源索引没有这样的字段呢?在这种情况下,可以指示dpluger在某些字段(如标题等)中查找uniq条目,并为每个条目分配一个plugin_sid号。要做到这一点,只需将plugin_sid设置为collect: .field.name,就像我们可以在下面的McAfee NSP中使用的dpluger配置文件一样:

    使用上述配置,dpluger将在mcafee-nsp-* index的签名字段中收集uniq条目,并基于此为plugin_sid字段生成条目。下面是生成的Logstash配置文件的相关部分的摘录:

    TSV文件的内容将在以后运行dpluger时用作起点和查找表。这意味着对同一个索引重复运行dpluger是安全的(例如,在添加新的uniq值时更新查找字典),因为以前检测到的所有标题都将保留它们的SID号。

    例3:基于分类的插件

    为dpluger提供-t参数,以生成一个基于分类的插件模板:

    $ ./dpluger create -i firewall-*-t Taxonomy

    结果dpluger_config.json文件将是:

    注意plugin_id和plugin_sid键值是如何被产品、类别和子类别所替换的。从这里开始,完成插件的步骤与上面示例1中概述的步骤类似。

    相关文章

      网友评论

          本文标题:Dsiem插件

          本文链接:https://www.haomeiwen.com/subject/qppczhtx.html