Logstash ArcSight 模块
编辑Logstash ArcSight 模块编辑
Logstash ArcSight 模块是 X-Pack 在基本许可证下的功能,因此可免费使用。如有任何问题或需要更多信息,请联系 [email protected]。
Logstash ArcSight 模块使您可以轻松地将 ArcSight 数据与 Elastic Stack 集成。只需一条命令,该模块即可直接连接到 ArcSight 智能连接器或事件代理,解析和索引安全事件到 Elasticsearch,并安装一套 Kibana 仪表板,让您立即开始探索数据。
先决条件编辑
这些说明假设 Logstash、Elasticsearch 和 Kibana 已经安装。您需要的产品 可供下载,并且易于安装。此模块需要 Elastic Stack 5.6(或更高版本)和 X-Pack。如果您使用的是 Elastic Stack 6.2 及更早版本,请参阅 说明,了解这些版本的说明。
部署架构编辑
Logstash ArcSight 模块了解 CEF(通用事件格式),可以接受、丰富和索引这些事件,以便在 Elastic Stack 上进行分析。ADP 包含两个用于数据流的核心数据收集组件
- 智能连接器 (SC) 是边缘日志收集器,在发布到 Logstash 接收器之前,会解析和规范数据到 CEF。
- 事件代理 是传入数据的中心枢纽,基于开源 Apache Kafka。Logstash ArcSight 模块可以直接从事件代理主题中消费数据。
智能连接器入门编辑
要开始使用,您可以使用一个基本的 Elastic Stack 设置,该设置直接从智能连接器读取事件。
智能连接器已配置为使用 CEF syslog 目标发布 ArcSight 数据(到 TCP 端口 5000
)。
Logstash、Elasticsearch 和 Kibana 必须在本地运行。请注意,您也可以在单独的主机上运行 Elasticsearch、Kibana 和 Logstash,以从 ArcSight 消费数据。
智能连接器说明编辑
-
在 Logstash 安装目录中,使用您相应的智能连接器主机和端口运行以下命令,启动 Logstash ArcSight 模块
bin/logstash --modules arcsight --setup \ -M "arcsight.var.input.smartconnector.port=smart_connect_port" \ -M "arcsight.var.elasticsearch.hosts=localhost:9200" \ -M "arcsight.var.kibana.host=localhost:5601"
--modules arcsight
选项启动一个用于摄取的 ArcSight CEF 感知 Logstash 管道。--setup
选项在 Elasticsearch 中创建一个arcsight-*
索引模式,并导入 Kibana 仪表板和可视化。在后续的模块运行或扩展 Logstash 部署时,应省略--setup
选项,以避免覆盖现有的 Kibana 仪表板。有关更多信息,请参阅 Logstash ArcSight 模块配置选项。
-
使用 Kibana 探索您的数据
- 在浏览器中打开 https://127.0.0.1:5601(用户名:“elastic”;密码:“YOUR_PASSWORD”)
- 打开 [ArcSight] 网络概览仪表板
- 有关数据探索的更多详细信息,请参阅 探索您的安全数据。
如果您想指定控制 ArcSight 模块行为的其他选项,请参阅 配置模块。
事件代理入门编辑
要开始使用,您可以使用一个基本的 Elastic Stack 设置,该设置从事件代理事件流中读取事件。
默认情况下,Logstash ArcSight 模块从事件代理“eb-cef”主题中消费数据。有关其他设置,请参阅 Logstash ArcSight 模块配置选项。可以从安全的事件代理端口消费数据,请参阅 Logstash ArcSight 模块配置选项。
Logstash、Elasticsearch 和 Kibana 必须在本地运行。请注意,您也可以在单独的主机上运行 Elasticsearch、Kibana 和 Logstash,以从 ArcSight 消费数据。
事件代理说明编辑
-
在 Logstash 安装目录中,使用您相应的事件代理主机和端口运行以下命令,启动 Logstash ArcSight 模块
bin/logstash --modules arcsight --setup \ -M "arcsight.var.input.eventbroker.bootstrap_servers=event_broker_host:event_broker_port" \ -M "arcsight.var.elasticsearch.hosts=localhost:9200" \ -M "arcsight.var.kibana.host=localhost:5601"
--modules arcsight
选项启动一个用于摄取的 ArcSight CEF 感知 Logstash 管道。--setup
选项在 Elasticsearch 中创建一个arcsight-*
索引模式,并导入 Kibana 仪表板和可视化。在后续的模块运行或扩展 Logstash 部署时,应省略--setup
选项,以避免覆盖现有的 Kibana 仪表板。有关更多信息,请参阅 Logstash ArcSight 模块配置选项。
-
使用 Kibana 探索您的数据
- 在浏览器中打开 https://127.0.0.1:5601(用户名:“elastic”;密码:“YOUR_PASSWORD”)
- 打开 [ArcSight] 网络概览仪表板
- 有关数据探索的更多详细信息,请参阅 探索您的安全数据。
如果您想指定控制 ArcSight 模块行为的其他选项,请参阅 配置模块。
探索您的安全数据编辑
Logstash ArcSight 模块开始接收事件后,您可以立即开始使用打包的 Kibana 仪表板来探索和可视化您的安全数据。这些仪表板可以快速缩短安全分析师和运营人员获得网络、端点和 DNS 事件在环境中流动的态势和行为洞察所需的时间和精力。您可以按原样使用这些仪表板,也可以根据现有的用例和业务需求对其进行调整。
这些仪表板有一个导航窗格,用于在三个核心用例之间切换上下文和向下钻取
-
网络数据
- 仪表板:网络概览、网络可疑活动
- 数据类型:网络防火墙、入侵系统、VPN 设备
-
端点数据
- 仪表板:端点概览、端点操作系统活动
- 数据类型:操作系统、应用程序、主机入侵系统
-
DNS 数据
- 仪表板:Microsoft DNS 概览
- 数据类型:Microsoft DNS 设备
网络仪表板示例编辑
这些 Kibana 可视化使您可以快速了解顶级设备、端点、攻击者和目标。这种洞察力,以及能够立即向下钻取到特定主机、端口、设备或时间范围的能力,提供了整个环境的整体视图,以识别可能需要立即关注或采取行动的特定部分。您可以轻松地找到以下问题的答案
- 我的攻击者是谁?他们在攻击什么?
- 我的哪些设备或端点最繁忙?提供了哪些服务?
- 在任何给定时间点,触发了多少个独特的攻击者、技术、签名或目标?
- 导致故障数量增加的顶级来源、目标、协议和行为是什么?
配置模块编辑
您可以在 logstash.yml
配置文件中指定 Logstash ArcSight 模块的其他选项,或者通过命令行(如入门中所示)进行覆盖。有关配置模块的更多信息,请参阅 使用 Logstash 模块。
例如,以下设置可以附加到 logstash.yml
以配置您的模块
modules: - name: arcsight var.input.eventbroker.bootstrap_servers: "eb_host:39092" var.input.eventbroker.topics: "eb_topic" var.elasticsearch.hosts: "localhost:9200" var.elasticsearch.username: "elastic" var.elasticsearch.password: "YOUR_PASSWORD" var.kibana.host: “localhost:5601” var.kibana.username: "elastic" var.kibana.password: "YOUR_PASSWORD"
Logstash ArcSight 模块配置选项编辑
ArcSight 模块提供以下设置来配置模块的行为。这些设置包括 ArcSight 特定选项以及所有 Logstash 模块支持的通用选项。
在命令行中覆盖设置时,请记住在设置前加上模块名称,例如,arcsight.var.inputs
而不是 var.inputs
。
如果您未指定配置设置,Logstash 将使用默认值。
ArcSight 模块选项
-
var.inputs
-
- 值类型为 字符串
- 默认值为“eventbroker”
设置要为 Logstash ArcSight 模块公开的输入。有效设置是“eventbroker”、“smartconnector”或“eventbroker,smartconnector”(同时公开两个输入)。
ArcSight 模块事件代理特定选项
-
var.input.eventbroker.bootstrap_servers
-
- 值类型为 字符串
- 默认值为“localhost:39092”
用于建立与集群的初始连接的事件代理 URL 列表。此列表应采用
host1:port1,host2:port2
的形式。这些 URL 仅用于初始连接以发现完整的集群成员资格(可能会动态更改)。此列表不必包含所有服务器。(如果服务器出现故障,您可能需要多个服务器。) -
var.input.eventbroker.topics
-
- 值类型为 数组
- 默认值为 ["eb-cef"]
要订阅的事件代理主题列表。
-
var.input.eventbroker.security_protocol
-
- 值可以是以下任何一个:
PLAINTEXT
、SSL
、SASL_PLAINTEXT
、SASL_SSL
- 默认值为
"PLAINTEXT"
要使用的安全协议,可以是 PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL 中的任何一个。如果您指定了 PLAINTEXT 以外的任何内容,则还需要指定下面列出的某些选项。当指定
SSL
或SASL_SSL
时,您应该为以ssl_
为前缀的选项提供值,当指定SASL_PLAINTEXT
或SASL_SSL
时,您应该为jaas_path
、kerberos_config
、sasl_mechanism
和sasl_kerberos_service_name
提供值。 - 值可以是以下任何一个:
-
var.input.eventbroker.ssl_key_password
-
- 值类型为 密码
- 此设置没有默认值。
密钥库文件中的私钥的密码。
-
var.input.eventbroker.ssl_keystore_location
-
- 值类型为 路径
- 此设置没有默认值。
如果需要客户端身份验证,此设置将存储密钥库路径。
-
var.input.eventbroker.ssl_keystore_password
-
- 值类型为 密码
- 此设置没有默认值。
如果需要客户端身份验证,此设置将存储密钥库密码。
-
var.input.eventbroker.ssl_keystore_type
-
- 值类型为 字符串
- 此设置没有默认值。
密钥库类型。
-
var.input.eventbroker.ssl_truststore_location
-
- 值类型为 路径
- 此设置没有默认值。
用于验证 Kafka 代理证书的 JKS 信任库路径。
-
var.input.eventbroker.ssl_truststore_password
-
- 值类型为 密码
- 此设置没有默认值。
信任库密码。
-
var.input.eventbroker.ssl_truststore_type
-
- 值类型为 字符串
- 此设置没有默认值。
信任库类型。
-
var.input.eventbroker.sasl_kerberos_service_name
-
- 值类型为 字符串
- 此设置没有默认值。
Kafka 代理运行的 Kerberos 主体名称。这可以在 Kafka 的 JAAS 配置或 Kafka 的配置中定义。
-
var.input.eventbroker.sasl_mechanism
-
- 值类型为 字符串
- 默认值为
"GSSAPI"
SASL 机制 用于客户端连接。这可以是任何安全提供程序可用的机制。GSSAPI 是默认机制。
-
var.input.eventbroker.jaas_path
-
- 值类型为 路径
- 此设置没有默认值。
Java 身份验证和授权服务 (JAAS) API 为 Kafka 提供用户身份验证和授权服务。此设置提供 JAAS 文件的路径。Kafka 客户端的 JAAS 文件示例
KafkaClient { com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true renewTicket=true serviceName="kafka"; };
请注意,在此指定
jaas_path
和kerberos_config
将会将它们添加到全局 JVM 系统属性中。这意味着如果您有多个 Kafka 输入,它们将共享相同的jaas_path
和kerberos_config
。如果这不是您想要的,您需要在不同的 JVM 实例上运行 Logstash 的独立实例。 -
var.input.eventbroker.kerberos_config
-
- 值类型为 路径
- 此设置没有默认值。
可选的 Kerberos 配置文件路径。这是一种 krb5.conf 样式,如 https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html 中所述。
ArcSight 模块智能连接器特定选项
-
var.input.smartconnector.port
-
- 值类型为 数字
- 默认值为 5000
从 SC 接收数据时要监听的 TCP 端口。
-
var.input.smartconnector.ssl_enable
-
- 值类型为 布尔值
- 默认值为
false
启用 SSL(必须设置才能使其他
ssl_
选项生效)。 -
var.input.smartconnector.ssl_cert
-
- 值类型为 路径
- 此设置没有默认值。
SSL 证书路径。
-
var.input.smartconnector.ssl_extra_chain_certs
-
- 值类型为 数组
- 默认值为
[]
要添加到证书链中的额外 X509 证书路径的数组。当系统存储中不需要 CA 链时很有用。
-
var.input.smartconnector.ssl_key
-
- 值类型为 路径
- 此设置没有默认值。
SSL 密钥路径
-
var.input.smartconnector.ssl_key_passphrase
-
- 值类型为 密码
- 默认值为
nil
SSL 密钥密码
-
var.input.smartconnector.ssl_verify
-
- 值类型为 布尔值
- 默认值为
true
验证 SSL 连接另一端的身份是否与 CA 相符。对于输入,将字段
sslsubject
设置为客户端证书的字段。
通用选项
以下配置选项受所有模块支持
-
var.elasticsearch.hosts
-
- 值类型为 URI
- 默认值为 "localhost:9200"
设置 Elasticsearch 集群的主机。对于每个主机,您必须指定主机名和端口。例如,"myhost:9200"。如果给定一个 数组,Logstash 将在 hosts 参数中指定的主机之间负载均衡请求。重要的是要从主机列表中排除 专用主节点,以防止 Logstash 向主节点发送批量请求。因此,此参数应仅引用 Elasticsearch 中的数据节点或客户端节点。
此处 URL 中存在的任何特殊字符都必须进行 URL 编码!这意味着 # 应该被替换为 %23。
-
var.elasticsearch.username
-
- 值类型为 字符串
- 默认值为 "elastic"
用于向安全的 Elasticsearch 集群进行身份验证的用户名。
-
var.elasticsearch.password
-
- 值类型为 字符串
- 默认值为 "changeme"
用于向安全的 Elasticsearch 集群进行身份验证的密码。
-
var.elasticsearch.ssl.enabled
-
- 值类型为 布尔值
- 此设置没有默认值。
启用与 Elasticsearch 集群的 SSL/TLS 安全通信。不指定此选项将使用
hosts
中列出的 URL 中指定的任何方案。如果未指定显式协议,将使用纯 HTTP。如果在此处显式禁用 SSL,则如果在 hosts 中给出了 HTTPS URL,插件将拒绝启动。 -
var.elasticsearch.ssl.verification_mode
-
- 值类型为 字符串
- 默认值为 "strict"
与 Elasticsearch 通信时的主机名验证设置。设置为
disable
以关闭主机名验证。禁用此选项存在严重的安全问题。 -
var.elasticsearch.ssl.certificate_authority
-
- 值类型为 字符串
- 此设置没有默认值
用于验证与 Elasticsearch 通信时 SSL 证书的 X.509 证书的路径。
-
var.elasticsearch.ssl.certificate
-
- 值类型为 字符串
- 此设置没有默认值
用于与 Elasticsearch 通信时进行客户端身份验证的 X.509 证书的路径。
-
var.elasticsearch.ssl.key
-
- 值类型为 字符串
- 此设置没有默认值
用于与 Elasticsearch 通信时进行客户端身份验证的证书密钥的路径。
-
var.kibana.host
-
- 值类型为 字符串
- 默认值为 "localhost:5601"
设置要用于导入仪表板和可视化的 Kibana 实例的主机名和端口。例如:"myhost:5601"。
-
var.kibana.scheme
-
- 值类型为 字符串
- 默认值为 "http"
设置用于访问 Kibana 实例的协议。选项包括:"http" 或 "https"。默认值为 "http"。
-
var.kibana.username
-
- 值类型为 字符串
- 默认值为 "elastic"
用于向安全的 Kibana 实例进行身份验证的用户名。
-
var.kibana.password
-
- 值类型为 字符串
- 默认值为 "changeme"
用于向安全的 Kibana 实例进行身份验证的密码。
-
var.kibana.ssl.enabled
-
- 值类型为 布尔值
- 默认值为 false
启用与 Kibana 实例的 SSL/TLS 安全通信。
-
var.kibana.ssl.verification_mode
-
- 值类型为 字符串
- 默认值为 "strict"
与 Kibana 通信时的主机名验证设置。设置为
disable
以关闭主机名验证。禁用此选项存在严重的安全问题。 -
var.kibana.ssl.certificate_authority
-
- 值类型为 字符串
- 此设置没有默认值
用于验证与 Kibana 通信时 SSL 证书的 X.509 证书的路径。
-
var.kibana.ssl.certificate
-
- 值类型为 字符串
- 此设置没有默认值
用于与 Kibana 通信时进行客户端身份验证的 X.509 证书的路径。
-
var.kibana.ssl.key
-
- 值类型为 字符串
- 此设置没有默认值
用于与 Kibana 通信时进行客户端身份验证的证书密钥的路径。