ServiceNow SecOps 连接器和操作

编辑

ServiceNow SecOps 连接器和操作编辑

ServiceNow SecOps 连接器使用 导入集 API 创建 ServiceNow 安全事件。您可以将连接器用于规则操作和案例。

在 Kibana 中创建连接器编辑

您可以在 堆栈管理 > 连接器 中创建连接器,或者在创建规则时根据需要创建。您必须选择使用 OAuth 进行身份验证。

ServiceNow SecOps connector using basic auth
ServiceNow SecOps connector using OAuth
连接器配置编辑

ServiceNow SecOps 连接器具有以下配置属性

客户端 ID
分配给您的 OAuth 应用程序的客户端 ID。
客户端密钥
分配给您的 OAuth 应用程序的客户端密钥。
JWT 验证器密钥 ID
分配给您的 OAuth 应用程序的 JWT 验证器映射的密钥标识符。
密码
HTTP 基本身份验证的密码。
私钥
您为在 ServiceNow 中使用而创建的 RSA 私钥。
私钥密码
RSA 私钥的密码。如果您为私钥设置了密码,则需要此值。
ServiceNow 实例 URL
完整的 ServiceNow 实例 URL。
使用 OAuth 身份验证
默认情况下,使用基本身份验证而不是开放授权 (OAuth)。
用户标识符
用于 OAuth 类型身份验证的标识符。此标识符应为您在设置过程中选择的用户信息字段。例如,如果选择的用户信息字段是 Email,则用户标识符应为用户的电子邮件地址。
用户名
HTTP 基本身份验证的用户名。

测试连接器编辑

您可以使用 运行连接器 API 或在 Kibana 中创建或编辑连接器时测试连接器。例如

ServiceNow SecOps params test

ServiceNow SecOps 操作具有以下配置属性。

其他评论
客户端的其他信息,例如如何解决问题。
类别
事件的类别。
关联显示
用于在 ServiceNow 中进行关联的警报的描述性标签。
关联 ID

使用相同关联 ID 的连接器将与同一个 ServiceNow 事件相关联。此值决定是创建新的 ServiceNow 事件还是更新现有的事件。修改此值是可选的;如果未修改,则规则 ID 和警报 ID 将组合为 {{ruleID}}:{{alert ID}} 以在 ServiceNow 中形成关联 ID 值。此值的字符长度最大为 100 个字符。

使用 {{ruleID}}:{{alert ID}} 的默认配置可确保 ServiceNow 为每个使用唯一警报 ID 生成的警报创建一个单独的事件记录。如果规则生成多个使用相同警报 ID 的警报,ServiceNow 将为该警报创建并持续更新单个事件记录。

描述
有关事件的详细信息。
优先级
事件的优先级。
简短描述
事件的简短描述,用于搜索知识库的内容。
子类别
事件的子类别。

连接器网络配置编辑

使用 操作配置设置 自定义连接器网络配置,例如代理、证书或 TLS 设置。您可以设置适用于所有连接器的配置,或者使用 xpack.actions.customHostSettings 设置每个主机的配置。

配置 ServiceNow SecOps编辑

ServiceNow 提供免费的 个人开发实例,您可以使用它们来测试事件。

先决条件编辑

从 Elastic Stack 版本 7.15.0 或更早版本升级到版本 7.16.0 或更高版本后,您必须在创建新的 ServiceNow SecOps 连接器或 更新现有连接器 之前,在您的 ServiceNow 实例中完成以下操作

分配跨范围特权编辑

Elastic for Security Operations 应用程序需要特定的跨范围特权记录才能成功运行。特别是,您必须为 Elastic for Security Operations 应用程序拥有一个特权记录,该记录的状态设置为 Allowed,适用于以下每个目标

目标范围 名称 类型 操作

全局

Glide API:字符串实用程序

可脚本化

执行 API

全局

GlideRecord.insert

可脚本化

执行 API

全局

GlideRecord.setValue

可脚本化

执行 API

全局

GlideRecordSecure.getValue

可脚本化

执行 API

全局

RESTAPIRequest

可脚本化

执行 API

全局

RESTAPIRequestBody

可脚本化

执行 API

全局

ScopedGlideElement

可脚本化

执行 API

全局

ScriptableServiceResultBuilder.setBody

可脚本化

执行 API

安全事件响应

sn_si_incident

读取

威胁情报支持通用

sn_ti_m2m_task_observable

创建

威胁情报支持通用

sn_ti_m2m_task_observable

读取

威胁情报支持通用

sn_ti_observable

创建

威胁情报支持通用

sn_ti_observable

读取

威胁情报支持通用

sn_ti_observable_type

读取

要访问跨范围特权表

  1. 登录 ServiceNow 并将您的应用程序范围设置为 Elastic for Security Operations。
  2. 单击 全部 并搜索 sys_scope_privilege

有关更多详细信息,请参阅 ServiceNow 产品文档

创建 ServiceNow 集成用户编辑

为了确保 Elastic 和 ServiceNow 之间的身份验证通信,请创建一个 ServiceNow 集成用户并为其分配适当的角色。 

  1. 在您的 ServiceNow 实例中,转到 系统安全性 → 用户和组 → 用户
  2. 单击 新建
  3. 填写表格,然后右键单击菜单栏并单击 保存
  4. 转到 角色 选项卡并单击 编辑
  5. 为集成用户分配以下角色: 

    • import_set_loader
    • import_transformer
    • personalize_choices
    • sn_si.basic
    • x_elas2_sir_int.integration_user
  6. 单击 保存
创建 CORS 规则编辑

Elastic 和 ServiceNow 之间的通信需要 CORS 规则。要创建 CORS 规则

  1. 在您的 ServiceNow 实例中,转到 系统 Web 服务 → REST → CORS 规则
  2. 单击 新建
  3. 按如下方式配置规则

    • 名称:命名规则。
    • REST API:通过选择 Elastic SIR API [x_elas2_sir_int/elastic_api] 将规则设置为使用 Elastic SecOps API。
    • :输入 Kibana URL,包括端口号。
  4. 转到 HTTP 方法 选项卡并选择 GET
  5. 单击 提交 以创建规则。
创建 RSA 密钥对并添加 X.509 证书编辑

此步骤是使用 OAuth 进行 Elastic 和 ServiceNow 之间的身份验证所必需的。

创建 RSA 密钥对

  1. 使用 OpenSSL 生成 RSA 私钥

    openssl genrsa -out example-private-key.pem 3072
    openssl genrsa -passout pass:foobar -out example-private-key-with-password.pem 3072 

    使用 passout 选项为您的私钥设置密码。这是可选的,但如果您设置了密码,请记住您的密码。

  2. 使用 OpenSSL 生成匹配的公钥

    openssl req -new -x509 -key example-private-key.pem -out example-sn-cert.pem -days 360

将 X.509 证书添加到 ServiceNow

  1. 在您的 ServiceNow 实例中,转到 证书 并选择 新建
  2. 按如下方式配置证书

    • 名称:命名证书。
    • PEM 证书: 将生成的公钥复制到此文本字段中。
    Shows new certificate form in ServiceNow
  3. 单击 提交 以创建证书。
为具有 JWT 验证器映射的外部客户端创建 OAuth JWT API 端点编辑

此步骤是使用 OAuth 进行 Elastic 和 ServiceNow 之间的身份验证所必需的。

  1. 在您的 ServiceNow 实例中,转到 应用程序注册表 并选择 新建
  2. 从选项列表中选择 为外部客户端创建 OAuth JWT API 端点

    Shows application type selection
  3. 配置应用程序,如下所示

    • 名称: 为应用程序命名。
    • 用户字段: 选择用作用户标识符的字段。
    Shows new application form in ServiceNow

    记住所选的用户字段。您将在创建连接器时将其用作 用户标识符值。例如,如果您为 用户字段 选择了 电子邮件,则将使用用户的电子邮件作为 用户标识符值

  4. 单击 提交 以创建应用程序。您将被重定向到应用程序列表。
  5. 选择您刚刚创建的应用程序。
  6. 找到 Jwt 验证器映射 选项卡并单击 新建
  7. 配置新记录,如下所示

    • 名称: 为 JWT 验证器映射命名。
    • 系统证书: 单击搜索图标并选择上一步中创建的证书的名称。
    Shows new JWT Verifier Map form in ServiceNow
  8. 单击 提交 以创建验证器映射。
  9. 记下 客户端 ID客户端密钥JWT 密钥 ID。您将需要这些值来创建您的 ServiceNow 连接器。

    Shows where to find OAuth values in ServiceNow

更新已弃用的 ServiceNow SecOps 连接器编辑

在您将 Elastic Stack 版本升级到 7.16.0 或更高版本后,在 Elastic Stack 版本 7.15.0 或更早版本中创建的 ServiceNow SecOps 连接器将被标记为已弃用。已弃用的连接器在其名称后有一个黄色图标,并在选中时显示警告消息。

Shows deprecated ServiceNow connectors

已弃用的连接器将继续使用其添加的规则运行,并且可以分配给新规则。但是,强烈建议您更新已弃用的连接器或 创建新的连接器,以确保您可以访问连接器增强功能,例如更新事件。

要更新已弃用的连接器

  1. 打开主菜单并转到 堆栈管理 > 连接器
  2. 选择已弃用的连接器以打开 编辑连接器 侧边栏。
  3. 在警告消息中,单击 更新此连接器
  4. 完成 编辑连接器 侧边栏中的引导步骤。

    1. 从 ServiceNow 商店安装 Elastic for Security Operations (SecOps) 并完成 必需的先决条件
    2. 输入您的 ServiceNow 实例的 URL。
    3. 输入您的 ServiceNow 实例的用户名和密码。
  5. 单击 更新