Tenable Security Center
集成版本:15.0
将 Tenable Security Center 与 Google Security Operations 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成输入
如需配置集成,请使用以下参数:
参数 | |
---|---|
Server Address |
必需 要在集成中使用的 Tenable Security Center 服务器的地址。 |
Username |
必需 用于登录 Tenable Security Center 服务器的用户名。 |
Password |
必需 用于登录 Tenable Security Center 服务器的密码。 |
Verify SSL |
可选 如果选择此项,则验证与 Tenable 服务器的连接所用的 SSL 证书是否有效。 此选项将会默认选中。 |
操作
将 IP 添加到 IP 列表素材资源
在 Tenable Security Center 中向 IP 列表资产添加 IP。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
资源名称 | 字符串 | 不适用 | 是 | 指定要向其中添加新 IP 的 IP 列表素材资源的名称。 |
运行于
此操作在 IP 地址实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"type": "regular",
"response": {
"id": "41",
"name": "api_test_5",
"type": "static",
"description": "",
"tags": "qweqwe",
"context": "",
"status": "0",
"createdTime": "1606129689",
"modifiedTime": "1606129689",
"ioSyncStatus": "Not Synced",
"ioFirstSyncTime": "-1",
"ioLastSyncSuccess": "-1",
"ioLastSyncFailure": "-1",
"ioSyncErrorDetails": null,
"typeFields": {
"definedIPs": "203.0.113.1,203.0.113.10"
},
"repositories": [
{
"ipCount": "-1",
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
}
}
],
"ipCount": -1,
"groups": [],
"assetDataFields": [],
"canUse": "true",
"canManage": "true",
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"targetGroup": {
"id": -1,
"name": "",
"description": ""
},
"template": {
"id": -1,
"name": "",
"description": ""
}
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606129688
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行: 如果没有 IP 实体:没有 IP 地址添加到 IP 列表资产 {0}.format(name)
如果不是静态代码 200 (is_success = false):打印“执行操作‘将 IP 添加到 IP 列表资源’时出错”。原因:{0}''.format(error_msg) |
常规 |
创建 IP 列表素材资源
在 Tenable Security Center 中创建 IP 列表资产。需要至少一个 IP 实体才能成功执行。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
名称 | 字符串 | 不适用 | 是 | 指定 IP 列表资产的名称。 |
说明 | 字符串 | 不适用 | 否 | 指定 IP 列表资产的说明。 |
标记 | 字符串 | 不适用 | 否 | 指定 IP 列表资产的标记。 |
运行于
此操作在 IP 地址实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"type": "regular",
"response": {
"id": "41",
"name": "api_test_5",
"type": "static",
"description": "",
"tags": "qweqwe",
"context": "",
"status": "0",
"createdTime": "1606129689",
"modifiedTime": "1606129689",
"ioSyncStatus": "Not Synced",
"ioFirstSyncTime": "-1",
"ioLastSyncSuccess": "-1",
"ioLastSyncFailure": "-1",
"ioSyncErrorDetails": null,
"typeFields": {
"definedIPs": "203.0.113.1,203.0.113.10"
},
"repositories": [
{
"ipCount": "-1",
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
}
}
],
"ipCount": -1,
"groups": [],
"assetDataFields": [],
"canUse": "true",
"canManage": "true",
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"targetGroup": {
"id": -1,
"name": "",
"description": ""
},
"template": {
"id": -1,
"name": "",
"description": ""
}
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606129688
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果没有 IP 实体:打印“At least 1 IP entity should be available in order to create an IP List Asset”(至少应有 1 个 IP 实体才能创建 IP 列表资源)。
如果不是静态代码 200 (is_success = false):打印“执行操作‘创建 IP 列表素材资源’时出错”。原因:{0}''.format(error_msg) |
常规 |
丰富 IP
获取有关 IP 地址的信息并丰富这些信息。
参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
代码库名称 | 字符串 | 不适用 | 代码库名称。 |
运行于
此操作在 IP 地址实体上运行。
操作结果
实体丰富化
扩充项字段名称 | 逻辑 - 应用场景 |
---|---|
macAddress | 返回 JSON 结果中是否存在相应值 |
severityLow | 返回 JSON 结果中是否存在相应值 |
links | 返回 JSON 结果中是否存在相应值 |
ip | 返回 JSON 结果中是否存在相应值 |
上次扫描 | 返回 JSON 结果中是否存在相应值 |
severityCritical | 返回 JSON 结果中是否存在相应值 |
总计 | 返回 JSON 结果中是否存在相应值 |
severityAll | 返回 JSON 结果中是否存在相应值 |
mcafeeGUID | 返回 JSON 结果中是否存在相应值 |
policyName | 返回 JSON 结果中是否存在相应值 |
uuid | 返回 JSON 结果中是否存在相应值 |
lastAuthRun | 返回 JSON 结果中是否存在相应值 |
severityInfo | 返回 JSON 结果中是否存在相应值 |
osCPE | 返回 JSON 结果中是否存在相应值 |
唯一性 | 返回 JSON 结果中是否存在相应值 |
dnsName | 返回 JSON 结果中是否存在相应值 |
仓库 | 返回 JSON 结果中是否存在相应值 |
ip | 返回 JSON 结果中是否存在相应值 |
说明 | 返回 JSON 结果中是否存在相应值 |
name | 返回 JSON 结果中是否存在相应值 |
lastUnauthRun | 返回 JSON 结果中是否存在相应值 |
biosGUID | 返回 JSON 结果中是否存在相应值 |
tpmID | 返回 JSON 结果中是否存在相应值 |
得分 | 返回 JSON 结果中是否存在相应值 |
hasPassive | 返回 JSON 结果中是否存在相应值 |
pluginSet | 返回 JSON 结果中是否存在相应值 |
hasCompliance | 返回 JSON 结果中是否存在相应值 |
severityHigh | 返回 JSON 结果中是否存在相应值 |
netbiosName | 返回 JSON 结果中是否存在相应值 |
severityMedium | 返回 JSON 结果中是否存在相应值 |
os | 返回 JSON 结果中是否存在相应值 |
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
[
{
"EntityResult":
{
"macAddress": "",
"severityLow": "0",
"links": [],
"ip": "203.0.113.1",
"lastScan": "1549425224",
"severityCritical": "0",
"total": "2",
"severityAll": "0,0,0,0,2",
"mcafeeGUID": "",
"policyName": "1e2e4247-0de7-56d5-8026-34ab1f3150ef-1130313/Basic Discovery Scan",
"uuid": "",
"lastAuthRun": "",
"severityInfo": "2",
"osCPE": "",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"repository":
{
"id": "1",
"description": "",
"name": "repository"
},
"lastUnauthRun": "1549363419",
"biosGUID": "",
"tpmID": "",
"score": "0",
"hasPassive": "No",
"pluginSet": "201902020242",
"hasCompliance": "No",
"severityHigh": "0",
"netbiosName": "",
"severityMedium": "0",
"os": ""
},
"Entity": "203.0.113.1"
}
]
获取相关资产
获取与 IP 地址相关的资产。
参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
代码库名称 | 字符串 | 不适用 | 代码库名称。 |
运行于
此操作在 IP 地址实体上运行。
操作结果
实体丰富化
扩充项字段名称 | 逻辑 - 应用场景 |
---|---|
id | 返回 JSON 结果中是否存在相应值 |
name | 返回 JSON 结果中是否存在相应值 |
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
[
{
"EntityResult":
[
{
"id": "0",
"description": "All defining ranges of the Group in whose context this Asset is being evaluated.",
"name": "All Defined Ranges"
}, {
"id": "2",
"description": "This asset uses the Scan Summary plugin to detect if a host has been scanned by Nessus. The Scan Summary plugin contains the list of tests conducted during the most recent scan.",
"name": "Systems that have been Scanned"
}, {
"id": "13",
"description": "Leverage Nessus plugin 10180 (Ping the remote host) and Nessus plugin 12503 (Host Fully Qualified Domain Name (FQDN) Resolution) to find hosts that don't have a resolvable FQDN in DNS.",
"name": "Scanned Hosts Not in DNS"
}
],
"Entity": "203.0.113.1"
}
]
获取报告
按 ID 或名称获取报告内容。
参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
报告 ID | 字符串 | 不适用 | 报告 ID 编号。可在报告网址中找到。 |
运行于
此操作会在所有实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"pubSites":
[
"https://example.com",
"https://example.net"
]
}
获取扫描结果
等待扫描完成并获取扫描结果。
参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
扫描结果 ID | 字符串 |
不适用 | 扫描结果 ID。 |
运行于
此操作会在所有实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"severity_summary":
[
{
"count": "0",
"severity":
{
"id": "4",
"name": "Critical",
"description": "Critical Severity"
}
}, {
"count": "0",
"severity":
{
"id": "3",
"name": "High",
"description": "High Severity"
}
}, {
"count": "3",
"severity":
{"id": "2",
"name": "Medium",
"description": "Medium Severity"
}}
],
"results":
[
{
"name": "DNS Server Recursive Query Cache Poisoning Weakness",
"family": "DNS",
"hostTotal": "1",
"pluginID": "10539",
"total": "1",
"severity": "Medium"
}, {
"name": "DNS Server Spoofed Request Amplification DDoS",
"family": "DNS",
"hostTotal": "1",
"pluginID": "35450",
"total": "1",
"severity": "Medium"
}, {
"name": "SSL Medium Strength Cipher Suites Supported",
"family": "General",
"hostTotal": "1",
"pluginID": "42873",
"total": "1",
"severity": "Medium"
}
]
}
获取 IP 的漏洞
获取 IP 地址的漏洞和严重程度摘要。
参数
不适用
运行于
此操作在 IP 地址实体上运行。
操作结果
实体丰富化
扩充项字段名称 | 逻辑 - 应用场景 |
---|---|
macAddress | 返回 JSON 结果中是否存在相应值 |
协议 | 返回 JSON 结果中是否存在相应值 |
uuid | 返回 JSON 结果中是否存在相应值 |
系列 | 返回 JSON 结果中是否存在相应值 |
pluginInfo | 返回 JSON 结果中是否存在相应值 |
ip | 返回 JSON 结果中是否存在相应值 |
pluginID | 返回 JSON 结果中是否存在相应值 |
和程度上减少 | 返回 JSON 结果中是否存在相应值 |
仓库 | 返回 JSON 结果中是否存在相应值 |
唯一性 | 返回 JSON 结果中是否存在相应值 |
dnsName | 返回 JSON 结果中是否存在相应值 |
端口 | 返回 JSON 结果中是否存在相应值 |
netbiosName | 返回 JSON 结果中是否存在相应值 |
name | 如果存在于 JSON 结果中,则返回 |
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
[
{
"EntityResult":
[
{
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "Web Servers",
"pluginInfo": "10107 (443/6) HTTP Server Type and Version",
"ip": "203.0.113.1",
"pluginID": "10107",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "HTTP Server Type and Version"
}, {
"macAddress": "",
"protocol": "UDP",
"uuid": "",
"family": "DNS",
"pluginInfo": "10539 (53/17) DNS Server Recursive Query Cache Poisoning Weakness",
"ip": "203.0.113.1",
"pluginID": "10539",
"severity": "Medium",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "exaample.com",
"port": "53",
"netbiosName": "",
"name": "DNS Server Recursive Query Cache Poisoning Weakness"
}, {
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "General",
"pluginInfo": "10863 (443/6) SSL Certificate Information",
"ip": "203.0.113.1",
"pluginID": "10863",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "SSL Certificate Information"
}
],
"Entity": "203.0.113.1"
}
]
Ping
测试连接性。
运行于
此操作会在所有实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
null | 不适用 | 不适用 |
扫描 IP
启动 IP 地址扫描。
参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
扫描名称 | 字符串 | 不适用 | 要创建的扫描的名称。 |
政策名称 | 字符串 | 不适用 | 政策的名称。 |
运行于
此操作在 IP 地址实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
scan_result_id | 不适用 | 不适用 |
运行资源扫描
在 Tenable Security Center 中执行资产扫描。
在哪里可以找到政策 ID 和代码库 ID
对于政策 ID:
- 导航到
https://INSTANCE_IP_ADDRESS/#policies
。 - 选择您要在操作中使用的政策。
- 您将能够在网址中看到相应政策的 ID。
对于制品库 ID:
- 导航到
https://INSTANCE_IP_ADDRESS/#repositories
。 - 选择要在操作中使用的代码库。
- 在网址中,您将能够看到相应代码库的 ID。
参数
参数显示名称 | 类型 | 默认值 | 是必填字段 | 说明 |
---|---|---|---|---|
扫描名称 | 不适用 | 是 | 指定扫描的名称。 | |
资源名称 | 字符串 | 不适用 | 是 | 指定应扫描的资产的名称。 |
政策 ID | 整数 | 不适用 | 是 | 指定扫描中应使用的政策的 ID。 |
仓库 ID | 整数 | 不适用 | 是 | 指定应在扫描中使用的代码库的 ID。 |
说明 | 字符串 | 不适用 | 否 | 指定扫描的说明。 |
运行于
此操作不会在实体上运行。
操作结果
脚本结果
脚本结果名称 | 值选项 | 示例 |
---|---|---|
is_success | True/False | is_success:False |
JSON 结果
{
"type": "regular",
"response": {
"id": "11",
"name": "Scan Name",
"description": "",
"ipList": "",
"type": "policy",
"dhcpTracking": "false",
"classifyMitigatedAge": "0",
"emailOnLaunch": "false",
"emailOnFinish": "false",
"timeoutAction": "import",
"scanningVirtualHosts": "false",
"rolloverType": "template",
"status": "0",
"createdTime": "1606132784",
"modifiedTime": "1606132784",
"maxScanTime": "3600",
"reports": [],
"assets": [
{
"id": "38",
"name": "api_test_1",
"description": ""
}
],
"credentials": [],
"numDependents": "0",
"schedule": {
"id": -1,
"objectType": -1,
"type": "now",
"start": "",
"repeatRule": "",
"enabled": "true",
"nextRun": -1,
"dependent": {
"id": -1,
"name": "",
"description": ""
}
},
"policy": {
"id": "1000002",
"context": "",
"name": "Host Discovery",
"description": "",
"tags": "",
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
}
},
"policyPrefs": [
{
"name": "MODE|discovery",
"value": "host_enumeration"
},
{
"name": "description",
"value": ""
},
{
"name": "display_unreachable_hosts",
"value": "no"
},
{
"name": "log_live_hosts",
"value": "yes"
},
{
"name": "name",
"value": "Host Discovery"
},
{
"name": "reverse_lookup",
"value": "no"
}
],
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
},
"canUse": "true",
"canManage": "true",
"plugin": {
"id": -1,
"name": "",
"description": ""
},
"zone": {
"id": -1,
"name": "",
"description": ""
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"scanResultID": "34"
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606132783
}
案例墙
结果类型 | 值/说明 | 类型 |
---|---|---|
输出消息* | 该操作不应失败,也不应停止 playbook 执行:
操作应失败并停止 playbook 执行: 如果未找到相应资产:打印“执行操作‘运行资产扫描’时出错”。原因:在 Tenable Security Center 中找不到资产 {0}。''.format(name) 如果不是静态代码 200(is_success = false):打印“执行操作‘运行资产扫描’时出错。”原因:{0}".format(error_msg) |
常规 |
连接器
Tenable Security Center 连接器
有关如何在 Google SecOps 中配置连接器的详细说明,请参阅配置连接器。
连接器参数
使用以下参数配置连接器:
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
DeviceProductField | 字符串 | device_product | 用于确定设备产品的字段名称。 |
EventClassId | 字符串 | name | 用于确定事件名称(子类型)的字段名称。 |
PythonProcessTimeout | 字符串 | 60 | 运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。 |
服务器地址 | 字符串 | null | 不适用 |
用户名 | 字符串 | null | 不适用 |
密码 | 密码 | null | 不适用 |
Use SSL(使用 SSL) | 复选框 | 尚未核查 | 不适用 |
回溯的天数上限 | 整数 | 1 | 您要提取数据的天数(从今天开始往回数)。 |
每个周期的限额 | 整数 | 10 | 每个执行周期内提取到连接器中的提醒数量。 |
代理服务器地址 | 字符串 | null | 要使用的代理服务器的地址。 |
代理用户名 | 字符串 | null | 用于进行身份验证的代理用户名。 |
代理密码 | 密码 | null | 用于进行身份验证的代理密码。 |
连接器规则
连接器支持代理。
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。