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 设置,该设置直接从智能连接器读取事件。

ArcSight Smart Connector architecture

智能连接器已配置为使用 CEF syslog 目标发布 ArcSight 数据(到 TCP 端口 5000)。

Logstash、Elasticsearch 和 Kibana 必须在本地运行。请注意,您也可以在单独的主机上运行 Elasticsearch、Kibana 和 Logstash,以从 ArcSight 消费数据。

智能连接器说明编辑

  1. 在 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 模块配置选项

  2. 使用 Kibana 探索您的数据

    1. 在浏览器中打开 https://127.0.0.1:5601(用户名:“elastic”;密码:“YOUR_PASSWORD”)
    2. 打开 [ArcSight] 网络概览仪表板
    3. 有关数据探索的更多详细信息,请参阅 探索您的安全数据

如果您想指定控制 ArcSight 模块行为的其他选项,请参阅 配置模块

事件代理入门编辑

要开始使用,您可以使用一个基本的 Elastic Stack 设置,该设置从事件代理事件流中读取事件。

ArcSight Event Broker architecture

默认情况下,Logstash ArcSight 模块从事件代理“eb-cef”主题中消费数据。有关其他设置,请参阅 Logstash ArcSight 模块配置选项。可以从安全的事件代理端口消费数据,请参阅 Logstash ArcSight 模块配置选项

Logstash、Elasticsearch 和 Kibana 必须在本地运行。请注意,您也可以在单独的主机上运行 Elasticsearch、Kibana 和 Logstash,以从 ArcSight 消费数据。

事件代理说明编辑

  1. 在 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 模块配置选项

  2. 使用 Kibana 探索您的数据

    1. 在浏览器中打开 https://127.0.0.1:5601(用户名:“elastic”;密码:“YOUR_PASSWORD”)
    2. 打开 [ArcSight] 网络概览仪表板
    3. 有关数据探索的更多详细信息,请参阅 探索您的安全数据

如果您想指定控制 ArcSight 模块行为的其他选项,请参阅 配置模块

探索您的安全数据编辑

Logstash ArcSight 模块开始接收事件后,您可以立即开始使用打包的 Kibana 仪表板来探索和可视化您的安全数据。这些仪表板可以快速缩短安全分析师和运营人员获得网络、端点和 DNS 事件在环境中流动的态势和行为洞察所需的时间和精力。您可以按原样使用这些仪表板,也可以根据现有的用例和业务需求对其进行调整。

这些仪表板有一个导航窗格,用于在三个核心用例之间切换上下文和向下钻取

  • 网络数据

    • 仪表板:网络概览、网络可疑活动
    • 数据类型:网络防火墙、入侵系统、VPN 设备
  • 端点数据

    • 仪表板:端点概览、端点操作系统活动
    • 数据类型:操作系统、应用程序、主机入侵系统
  • DNS 数据

    • 仪表板:Microsoft DNS 概览
    • 数据类型:Microsoft DNS 设备

网络仪表板示例编辑

Network overview dashboard
Network suspicious activity dashboard

这些 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
  • 值可以是以下任何一个:PLAINTEXTSSLSASL_PLAINTEXTSASL_SSL
  • 默认值为 "PLAINTEXT"

要使用的安全协议,可以是 PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL 中的任何一个。如果您指定了 PLAINTEXT 以外的任何内容,则还需要指定下面列出的某些选项。当指定 SSLSASL_SSL 时,您应该为以 ssl_ 为前缀的选项提供值,当指定 SASL_PLAINTEXTSASL_SSL 时,您应该为 jaas_pathkerberos_configsasl_mechanismsasl_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_pathkerberos_config 将会将它们添加到全局 JVM 系统属性中。这意味着如果您有多个 Kafka 输入,它们将共享相同的 jaas_pathkerberos_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

启用 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

验证 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

设置用于访问 Kibana 实例的协议。选项包括:"http" 或 "https"。默认值为 "http"。

var.kibana.username
  • 值类型为 字符串
  • 默认值为 "elastic"

用于向安全的 Kibana 实例进行身份验证的用户名。

var.kibana.password
  • 值类型为 字符串
  • 默认值为 "changeme"

用于向安全的 Kibana 实例进行身份验证的密码。

var.kibana.ssl.enabled

启用与 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 通信时进行客户端身份验证的证书密钥的路径。