来源:https://github.com/defenxor/dsiem
Dsiem是一个用于ELK堆栈的安全事件关联引擎,允许将该平台用作一个专用的、功能全面的SIEM系统。
Dsiem为规范化日志/事件提供了ossim风格的相关性,执行对威胁情报和漏洞信息源的查找/查询,并生成风险调整警报。
一、特点
(1)以独立或集群模式运行,在前端和后端节点之间使用NATS作为消息总线。与ELK一起,这使得整个SIEM平台可以水平扩展。
(2)OSSIM风格的关联和指令规则,更容易从OSSIM过渡。
(3)警报丰富从Intel和漏洞信息来源的数据。内置支持Moloch Wise(支持Alienvault OTX等)和Nessus CSV导出。对其他源代码的支持可以很容易地实现为插件。
(4)通过Metricbeat和/或Elastic APM服务器支持的工具。不需要额外的堆栈为此目的。
(5)内建速率和背压控制,设置从Logstash收到的最小和最大事件/秒(EPS),这取决于您的硬件容量和事件处理中可接受的延迟。
(6)松散耦合,设计为可与其他基础设施平台组合,并且不尝试做所有事情。松散耦合还意味着,如果需要,可以使用Dsiem作为一个带有非ELK堆栈的ossim样式的关联引擎。
(7)其中包括:
一个指令转换工具,读取OSSIM XML指令文件并将其转换为Dsiem json风格的配置。
SIEM插件创建工具,它将从Elasticsearch中读取现有的索引模式,并创建必要的Logstash配置,以便将相关字段的内容克隆到Dsiem。该工具还可以生成Dsiem所需的基本指令,以关联接收到的事件并生成警报。
一个帮助工具,通过网络向Dsiem提供Nessus CSV文件。
一个轻量级的Angular web UI,只用于基本的警报管理(关闭、标记),以及简单地转到Kibana中的相关索引来执行实际的分析。
这是一个真正的云计算应用程序,有12个要素,以及所有这些。
二、它是如何工作的
在上图中:
(1)日志源将它们的日志发送到Syslog/Filebeat,然后Syslog/Filebeat将它们发送到带有唯一标识字段的Logstash。然后,Logstash根据日志源类型使用不同的过滤器解析日志,并将结果发送到Elasticsearch,通常为每个日志类型创建一个索引模式(例如,从suricata IDS接收的日志为suricata-*, ssh-*为ssh日志,等等)。
(2)Dsiem使用一个专用的logstash配置文件来克隆来自日志源的传入事件,就在logstash完成解析之后。通过相同的配置文件,可以使用新的克隆事件(独立于原始事件)来收集Dsiem所需的字段,如标题、源IP、目标IP等。
3、上述步骤的输出称为规范化事件,因为它以一种包含一组公共字段的格式表示来自多个不同来源的日志。然后,这些事件通过Logstash HTTP output plugin发送到Dsiem,并在索引名称模式siem_events-*下发送到Elasticsearch。
4、Dsiem根据配置的指令规则关联传入的规范化事件,执行威胁intel和漏洞查找,然后在满足规则条件时生成警报。然后将警报写入本地日志文件,该文件由配置为将其内容发送到Logstash的本地Filebeat获取。
5、在logstash端,有另一个Dsiem特殊配置文件,它读取提交的警报并将它们推到Elasticsearch中的最终SIEM警报索引。
以上过程的最终结果是,现在我们可以通过监视单个Elasticsearch索引来监视新的警报和对现有警报的更新。