Dsiem 是一个用于 ELK 栈的安全事件关联引擎,使该平台能够作为专用且功能齐全的 SIEM 系统使用。
Dsiem 为标准化日志/事件提供 OSSIM 风格的关联,对威胁情报和漏洞信息源执行查找/查询,并生成风险调整后的告警。

flowchart TB
l1 --> |标准化日志/事件| e1
l1 --> |告警|e1
l1 --> |标准化日志/事件| d1
f1 --> |日志| l1
s1 --> |日志| f1
s2 --> |日志| f1
s3 --> |日志| f1
d1 --> |告警| d2
d2 --> |告警| l1
d1 --> |查询| d3
subgraph Elasticsearch
e1[Elasticsearch]
end
subgraph Logstash
l1[Logstash]
end
subgraph Filebeat
f1[Syslog/Filebeat]
end
subgraph 日志源
s1[IDS]
s2[防火墙]
s3[操作系统]
end
subgraph Dsiem
d1[Dsiem]
d2[Dsiem-filebeat]
d3[威胁情报/漏洞信息源]
end在上述图中:
日志源将日志发送到 Syslog/Filebeat,然后 Filebeat 将日志发送到 Logstash,并附带一个唯一标识字段。Logstash 根据日志源类型使用不同的过滤器解析日志,并将结果发送到 Elasticsearch,通常为每种日志类型创建一个索引模式(例如,从 Suricata IDS 接收的日志使用 suricata-*,SSH 日志使用 ssh-* 等)。
Dsiem 使用一个专用的 Logstash 配置文件,在日志经过 Logstash 解析后立即克隆传入的事件。通过同一配置文件,新克隆的事件(独立于原始事件)用于收集 Dsiem 所需的字段,如标题、源 IP、目标 IP 等。
上一步的输出称为标准化事件,因为它以单一格式表示来自多个不同来源的日志,并具有一组公共字段。这些事件随后通过 Logstash HTTP 输出插件发送到 Dsiem,并以索引名称模式 siem_events-* 发送到 Elasticsearch。
Dsiem 根据配置的指令规则对传入的标准化事件进行关联,执行威胁情报和漏洞查找,如果满足规则条件则生成告警。告警写入本地日志文件,由本地 Filebeat 采集并发送到 Logstash。
在 Logstash 端,还有另一个 Dsiem 专用配置文件,用于读取提交的告警并将其推送到 Elasticsearch 中的最终 SIEM 告警索引。
上述过程的最终结果是,我们只需监控单个 Elasticsearch 索引即可查看新告警和现有告警的更新。
可以使用 Docker Compose 或发布版二进制文件安装 Dsiem。有关详细信息,请参阅安装指南。
另外,还有一个基于 Docker Compose 或虚拟机的演示环境,您可以通过一个简单的 Web 界面评估 Dsiem 的所有集成功能。
当前可用文档位于此处。
请通过新建 GitHub 问题 提交错误和问题报告。安全敏感信息(例如潜在安全漏洞的细节)也可以发送至 [email protected]。该地址的 GPG 公钥可在此找到。
非常欢迎贡献!提交用于修复错误和添加测试的 PR,用于解析设备事件的 Logstash 配置文件片段,SIEM 指令规则,或新的威胁情报/漏洞查找插件。
如果您对某个具体问题不确定如何操作,请随时打开 issue 并先进行讨论。
该项目采用 GPLv3 许可证。贡献者无需签署任何形式的 CAA/CLA 或类似协议:我们认为他们接受此 GitHub 服务条款即已足够。