使用 Suricata 和 Telegraf 进行网络安全监控
作者:Samantha Wang / 用例, 产品, 开发者
2020 年 2 月 6 日
导航至
在 2019 年底,我们发布了一个新的 Suricata 输入插件,与 Telegraf 1.13.0 一起发布。在本博客中,我将讨论这两种开源产品的强大组合——Suricata 的重要性以及为什么您应该使用 Telegraf 监控其性能。
我想首先感谢 Sascha Steinbiss 提交此插件。在 InfluxData,我们无法告诉您我们有多么重视我们的开源社区。如果没有像 Sascha 这样的人,Telegraf 就不会是现在的样子!
为什么实施网络安全监控?
随着网络犯罪持续增长至每年数千亿美元,网络安全监控 (NSM) 变得越来越重要。NSM 解决方案检测您网络中的攻击,这些攻击可能导致从带宽消耗、数据、流量和资源盗窃,到插入垃圾邮件和勒索您的数据等各种损失。随着网络安全试图赶上快速发展的网络犯罪行业,损失清单也在不断增长。网络安全监控对于检测和预防正在发生的攻击至关重要,但同时也为取证分析提供手段。NSM 提供对流量上下文(文件名、网站、应用程序、协议等)的可见性,从而可以更全面地分析实时和取证目的的可疑活动,无论是在本地部署还是云部署中。但是,所有这些数据都需要发送到高性能时间序列数据库,该数据库可以处理大量原始数据,使用其他元数据丰富数据以进行根本原因分析,并将其呈现为一系列事件,从而产生可操作的信息。
什么是 Suricata?
Suricata 是一个开源安全引擎,能够进行实时入侵检测 (IDS)、内联入侵防御 (IPS)、网络安全监控 (NSM) 和离线 pcap(数据包捕获) 处理。Suricata 由 开放信息安全基金会 (OISF) 开发,该基金会是一个非营利性基金会,旨在构建下一代 IDS/IPS 引擎。
为什么我应该使用 Suricata?
Suricata 使用强大而广泛的规则和签名语言检查网络流量,并具有强大的 Lua 脚本支持,用于检测复杂威胁。
Suricata 提供了广泛的 功能列表。Suricata 的主要功能和主要优势之一是多线程,它允许单个实例以更高的流量容量运行。 随着企业网络现在处理比以往更多的流量(这就是为什么我们的客户喜欢 InfluxDB!),Suricata 的多线程特性允许其用户进行水平扩展。因此,如果您有配备多个 CPU 的设备,则可以将 Suricata 配置为在所有可用硬件上分配工作负载。
我如何使用 Telegraf 监控我的 Suricata 性能?
Telegraf Suricata 输入插件允许您报告 Suricata 引擎的内部性能指标。从 Telegraf 收集的 Suricata 指标包括
- 捕获的流量
- 内存使用情况
- 正常运行时间
- 流计数器
通过 Suricata 插件,您可以实时了解安全引擎的性能,并确保其最佳运行。
我该如何正确配置我的 Suricata 输入插件?
Unix Socket 的 Suricata 配置
Suricata 需要将“stats”事件类型传递到给定的 Unix socket,以便此插件能够接收。例如,可以通过在 Suricata 配置文件中创建额外的输出来完成此操作
- eve-log:
enabled: yes
filetype: unix_stream
filename: /tmp/suricata-stats.sock
types:
- stats:
threads: yes
Suricata 输入 Telegraf 配置
与大多数 Telegraf 插件一样,Suricata 输入插件不需要太多配置。需要提供的两个字段是:1) unix socket 的文件路径名 2) 用于展平字段键的分隔符(默认设置为 _
)。
[[input.suricata]]
## Data sink for Suricata stats log.
# This is expected to be a filename of a
# unix socket to be created for listening.
source = "/var/run/suricata-stats.sock"
# Delimiter for flattening field keys, e.g. subitem "alert" of "detect"
# becomes "detect_alert" when delimiter is "_".
delimiter = "_"
Suricata 输出示例(选择“view raw”以全屏查看完整原始文本)
Telegraf Suricata 插件收集哪些指标?
标签
标签 | 描述 | 示例 |
---|---|---|
thread |
线程特定统计信息的线程 ID 或全局统计信息的 Global |
W#03-enp0s31f6 |
字段
字段是 Suricata IDS/IPS 引擎的各种内部性能计数器。 suricata
指标中的这些字段遵循 Suricata 统计输出使用的 JSON 格式。查看 Suricata 字段示例列表,请点击此处。 所有 Suricata 字段均为数字。
Telegraf 的 Suricata 插件使您能够利用 InfluxDB 平台收集、可视化和警报来自 Suricata 的网络安全数据(包括流和基于数据包的数据),并将此流量数据与完整堆栈指标和事件相关联,以实现快速影响评估、诊断和行动计划。
开始使用!
如果您或您的公司正在使用 Suricata 进行安全保护,并希望监控其性能,请试用您在本Telegraf 插件中阅读的所有内容!我们很乐意听到您如何使用此插件或任何其他 InfluxData 产品监控 Suricata。加入我们的 社区 Slack 频道,您可以在其中提问并与其他使用 InfluxDB 的人互动!