将 Anomali 与 Google SecOps 集成
本文档介绍了如何将 Anomali 与 Google Security Operations (Google SecOps) 集成。
集成版本:12.0
准备工作
如需获取个人 API 密钥,请完成以下步骤:
登录您的 Anomali ThreatStream 账号。
点击 My API Keys。
复制 API 密钥值,并将其粘贴到 Google SecOps 中配置实例对话框的“API 密钥”参数字段中。
网络
函数 | 默认端口 | 方向 | 协议 |
---|---|---|---|
API | 多值 | 出站 | apikey |
集成参数
使用以下参数配置集成:
参数名称 | 类型 | 默认值 | 为必需参数 | 说明 |
---|---|---|---|---|
实例名称 | 字符串 | 不适用 | 否 | 您打算为其配置集成的实例的名称。 |
说明 | 字符串 | 不适用 | 否 | 实例的说明。 |
API 根 | 字符串 | https://api.threatstream.com/api | 是 | Anomali 实例的地址。 |
用户名 | 字符串 | user@domain.com |
是 | 应使用哪个用户的电子邮件地址来连接到 Anomali。 |
密码 | 密码 | 不适用 | 是 | 相应用户的密码。 |
API 密钥 | 字符串 | 不适用 | 是 | 在 AlienVault 控制台中生成的 API 密钥。 |
远程运行 | 复选框 | 尚未核查 | 否 | 选中此字段,以便远程运行配置的集成。选中后,系统会显示用于选择远程用户(客服人员)的选项。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作台页面中处理待处理的操作和执行手动操作。
获取威胁信息
使用 Anomali ThreatStream 中的信息丰富实体。支持的实体:IP、网址、哈希、电子邮件地址(与电子邮件正则表达式匹配的用户实体)。
参数
参数名称 | 类型 | 默认值 | 为必需参数 | 说明 |
---|---|---|---|---|
限制 | 字符串 | 10 | 是 | 指定每个实体要返回的记录数。 |
严重程度阈值 | DDL | 中 可能的值:
|
否 | 指定实体的严重程度阈值,以便将其标记为可疑。如果针对同一实体找到多条记录,系统将根据所有可用记录中严重程度最高的记录采取相应措施。 |
置信度阈值 | 整数 | 50 | 否 | 指定实体的置信度阈值,以便将其标记为可疑。注意:最大值为 100。如果为实体找到多条记录,操作将取平均值。有效记录具有优先权。默认值:50。 |
忽略“假正例”状态 | 复选框 | 尚未核查 | 否 | 如果启用,操作将忽略假正例状态,并根据严重程度阈值和置信度阈值将实体标记为可疑。如果停用,无论假正例实体是否满足严重程度阈值和置信度阈值条件,操作都不会将其标记为可疑。 |
运行于
此操作适用于以下实体:
- IP 地址
- 网址
- 哈希
- 电子邮件地址(与电子邮件正则表达式匹配的用户实体)
操作结果
实体丰富化
名称 | 逻辑 - 应用场景 |
---|---|
id | 返回 JSON 结果中是否存在相应值 |
状态 | 返回 JSON 结果中是否存在相应值 |
itype | 返回 JSON 结果中是否存在相应值 |
expiration_time | 返回 JSON 结果中是否存在相应值 |
ip | 返回 JSON 结果中是否存在相应值 |
feed_id | 返回 JSON 结果中是否存在相应值 |
置信度 | 返回 JSON 结果中是否存在相应值 |
uuid | 返回 JSON 结果中是否存在相应值 |
retina_confidence | 返回 JSON 结果中是否存在相应值 |
trusted_circle_ids | 返回 JSON 结果中是否存在相应值 |
来源 | 返回 JSON 结果中是否存在相应值 |
纬度 | 返回 JSON 结果中是否存在相应值 |
类型 | 返回 JSON 结果中是否存在相应值 |
说明 | 返回 JSON 结果中是否存在相应值 |
标签 | 返回 JSON 结果中是否存在相应值 |
threat_score | 返回 JSON 结果中是否存在相应值 |
source_confidence | 返回 JSON 结果中是否存在相应值 |
modification_time | 返回 JSON 结果中是否存在相应值 |
org_name | 返回 JSON 结果中是否存在相应值 |
asn | 返回 JSON 结果中是否存在相应值 |
creation_time | 返回 JSON 结果中是否存在相应值 |
tlp | 返回 JSON 结果中是否存在相应值 |
国家/地区 | 返回 JSON 结果中是否存在相应值 |
longitude | 返回 JSON 结果中是否存在相应值 |
和程度上减少 | 返回 JSON 结果中是否存在相应值 |
子类型 | 返回 JSON 结果中是否存在相应值 |
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
成功 | True 或 False | success:False |
JSON 结果
{
"Entity": "ENTITY_ID",
"EntityResult": {
"Info": [{
"source_created": null,
"status": "inactive",
"itype": "mal_domain",
"expiration_ts": "2020-11-28T13:29:57.000Z",
"ip": "192.0.2.1",
"is_editable": false,
"feed_id": 1111111,
"update_id": 1111111111,
"longitude": -0.1223454,
"is_public": true,
"threat_type": "malware",
"workgroups": [],
"rdns": null,
"confidence": 11111,
"uuid": "UUID",
"retina_confidence": 1111111,
"trusted_circle_ids": null,
"id": 111111111111111110000,
"source": "COVID19 Cyber Threat Coalition Blocklist - Domains",
"owner_organization_id": 111,
"import_session_id": null,
"source_modified": null,
"type": "domain",
"sort": [1607193157800, "56224953198"],
"description": null,
"tags": [{
"id": "wu6",
"name": "Blocklist"
}, {
"id": "pvj",
"name": "Coronavirus"
}, {
"id": "01i",
"name": "COVID-19"
}, {
"id": "o70",
"name": "Malicious"
}, {
"id": "fk0",
"name": "Source:COVID19-Cyber-Threat-Coalition"
}],
"threatscore": 11111,
"source_reported_confidence": 11111,
"modified_ts": "2020-12-05T18:32:37.800Z",
"org": "Namecheap",
"asn": "11111111",
"created_ts": "2020-10-29T13:33:24.904Z",
"tlp": null,
"is_anonymous": false,
"latitude": 51.4964,
"country": "GB",
"can_add_public_tags": false,
"value": "VALUE",
"subtype": null,
"meta": {
"registration_updated": "2020-10-24T22:16:59+00:00",
"detail2": "bifocals_deactivated_on_2020-12-05_18:30:00.085789",
"severity": "high",
"registration_created": "2020-10-24T22:16:42+00:00"
},
"resource_uri": "/api/v2/intelligence/"
}],
"Campaigns": [{
"association_info": [{
"comment": null,
"created": "2020-10-29T13:33:29.200283",
"from_id": "ID"
}],
"can_add_public_tags": true,
"circles": [],
"created_ts": "2020-03-15T04:24:55.428496",
"end_date": "2020-03-23T16:05:00.761000",
"feed_id": 0,
"id": "ID",
"is_anonymous": true,
"is_cloneable": "yes",
"is_public": true,
"modified_ts": "2021-02-02T02:38:19.892072",
"name": "Coronavirus (COVID-19)",
"objective": null,
"organization": {
"id": 0,
"name": "Analyst",
"title": "Analyst"
},
"publication_status": "published",
"published_ts": "2020-04-06T21:40:24.452312",
"resource_uri": "/api/v1/campaign/",
"source_created": null,
"source_modified": null,
"start_date": "2020-01-30T13:10:00.070000",
"status": {
"display_name": "Ongoing",
"id": 1,
"resource_uri": "/api/v1/campaignstatus/1/"
},
"tags": ["Malware", "Fraud", "Phishing", "COVID-19", "Coronavirus", "Scams"],
"tags_v2": [{
"id": "wqe",
"name": "Coronavirus"
}, {
"id": "hlg",
"name": "COVID-19"
}, {
"id": "74i",
"name": "Phishing"
}, {
"id": "0y2",
"name": "Malware"
}, {
"id": "u63",
"name": "Scams"
}, {
"id": "1er",
"name": "Fraud"
}],
"tlp": "white",
"uuid": "UUID",
"workgroups": []
}],
"Tip": [{
"all_circles_visible": true,
"association_info": [{
"comment": null,
"created": "2020-10-29T13:33:29.212118",
"from_id": "ID"
}],
"body_content_type": "richtext",
"campaign": null,
"can_add_public_tags": true,
"circles": [],
"created_ts": "2020-03-19T04:23:35.714929",
"feed_id": 0,
"id": "ID",
"is_anonymous": true,
"is_cloneable": "yes",
"is_editable": true,
"is_email": false,
"is_public": true,
"modified_ts": "2021-02-02T02:38:20.061912",
"name": "Coronavirus (COVID-19) Cyber Threats",
"original_source": null,
"original_source_id": null,
"owner_org": {
"id": 0,
"name": "Analyst",
"title": "Analyst"
},
"parent": null,
"published_ts": "2020-05-25T18:39:36.890647",
"resource_uri": "/api/v1/ID/",
"source_created": null,
"source_modified": null,
"starred_by_me": false,
"starred_total_count": 5,
"status": "published",
"tags": ["Scams", "HCL-", "Malware"],
"tags_v2": [{
"id": "ID",
"name": "Coronavirus"
}, {
"id": "ID",
"name": "COVID-19"
}, {
"id": "ID",
"name": "Phishing"
}],
"threat_actor": null,
"tlp": "white",
"ttp": null,
"uuid": "UUID",
"votes": {
"me": null,
"total": 0
},
"watched_by_me": false,
"watched_total_count": 11111,
"workgroups": []
}],
"Actors": [],
"Incidents": [],
"TTP": []
}
}
案例墙
结果类型 | 说明 | 类型 |
---|---|---|
输出消息* | 如果某个实体有可用数据(is_success=true):“Successfully returned information about the following entities from Anomali ThreatStream: {entity.identifier}”(已成功从 Anomali ThreatStream 返回有关以下实体的信息:{entity.identifier}) 如果某个实体没有可用数据 (is_success=true):“Action 无法从 Anomali ThreatStream 返回有关以下实体的信息:{entity.identifier}” 如果并非所有实体都可使用(is_success=false):“没有实体得到丰富。 严重错误(失败):执行操作“获取威胁信息”时出错。原因:{error traceback}” |
常规 |
Ping
测试与 Anomali ThreatStream 的连接。
参数
不适用
运行于
此操作会在所有实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
成功 | True 或 False | success:False |
获取相关联想
从 Anomali ThreatStream 检索实体相关联的关联。
参数
参数名称 | 类型 | 默认值 | 为必需参数 | 说明 |
---|---|---|---|---|
退回广告系列 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关广告系列及其详细信息。 |
返回威胁公告 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关的威胁公告及其详细信息。 |
返回演员 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关演员及其详细信息。 |
返回攻击模式 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关的攻击模式及其详细信息。 |
返回行动方案 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关行动方案及其详细信息。 |
返回身份 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关身份及其详细信息。 |
返回突发事件 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关突发事件及其详细信息。 |
返回基础设施 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关基础架构及其详细信息。 |
返回入侵集 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关的入侵集及其详细信息。 |
返回恶意软件 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关恶意软件及其详细信息。 |
返回签名 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关签名及其详细信息。 |
返回工具 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关工具及其详细信息。 |
返回 TTP | 复选框 | 勾选 | 否 | 如果启用,该操作将提取相关的 TTP 及其详细信息。 |
返回漏洞 | 复选框 | 勾选 | 否 | 如果启用,操作将提取相关漏洞及其详细信息。 |
创建广告系列实体 | 复选框 | 尚未核查 | 否 | 如果启用,操作将根据可用的广告系列关联创建实体。 |
创建演员实体 | 复选框 | 尚未核查 | 否 | 如果启用,操作将根据可用的 Actor 关联创建实体。 |
创建签名实体 | 复选框 | 尚未核查 | 否 | 如果启用,操作将根据可用的签名关联创建实体。 |
创建漏洞实体 | 复选框 | 尚未核查 | 否 | 如果启用,操作将根据可用的漏洞关联创建实体。 |
要返回的关联数量上限 | 整数 | 5 | 否 | 指定每种类型的关联数量。 |
运行于
此操作适用于以下实体:
- 哈希
- IP 地址
- 网址
- 电子邮件
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
成功 | True 或 False | success:False |
JSON 结果
{
"campaign": [
{
"name": "Example 1",
"id": 1
},
{
"name": "Example 2",
"id": 2
}
],
"actor": [
{
"name": "Actor 1",
"id": 1
},
{
"name": "Actor 2",
"id": 2
}
],
"attackpattern": [
{
"name": "Pattern 1",
"id": 1
},
{
"name": "Pattern 2",
"id": 2
}
],
"courseofaction": [
{
"name": "Course of Action 1",
"id": 1
},
{
"name": "Course Of Action 2",
"id": 2
}
],
"identity": [
{
"name": "Identity 1",
"id": 1
},
{
"name": "Identity 2",
"id": 2
}
],
"incident": [
{
"name": "Incident 1",
"id": 1
},
{
"name": "Incident 2",
"id": 2
}
],
"infrastructure": [
{
"name": "Infrustructure 1",
"id": 1
},
{
"name": "Infrustructure 2",
"id": 2
}
],
"intrusionset": [
{
"name": "Intrusion set 1",
"id": 1
},
{
"name": "Intrusion set 2",
"id": 2
}
],
"malware": [
{
"name": "Malware 1",
"id": 1
},
{
"name": "Malware 2",
"id": 2
}
],
"signature": [
{
"name": "Signature 1",
"id": 1
},
{
"name": "Signature 2",
"id": 2
}
],
"tool": [
{
"name": "Tool 1",
"id": 1
},
{
"name": "Tool 2",
"id": 2
}
],
"ttp": [
{
"name": "TTP 1",
"id": 1
},
{
"name": "TTP 2",
"id": 2
}
],
"vulnerability": [
{
"name": "Vulnerability 1",
"id": 1
},
{
"name": "Vulnerability 2",
"id": 2
}
],
}
案例墙
结果类型 | 说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功且至少找到一个实体间的关联 (is_success=true):“Successfully retrieved related associations from Anomali”(已成功从 Anomali 检索到相关关联) 如果未找到任何关联(is_success=false):“未找到任何相关联的关联。” 异步消息:“正在等待检索所有关联详情” 操作应失败并停止 playbook 执行: 如果报告了严重错误(例如凭据错误、无法连接到服务器、其他错误):“Error executing action "Get Related Association". 原因:{0}''.format(error.Stacktrace) |
常规 |
“案例墙”表格 | 表格名称:“相关联的关联对象” 表格列:
|
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。