将 VirusTotal 与 Google SecOps 集成
本文档介绍了如何将 VirusTotal 与 Google Security Operations (Google SecOps) 集成。
集成版本:39.0
此集成使用 VirusTotal API v2。
此集成使用一个或多个开源组件。 您可以从 Cloud Storage 存储桶下载此集成的完整源代码的压缩副本。
准备工作
如需使用 VirusTotal 集成,请配置 API 密钥。
如需配置 API 密钥,请完成以下步骤:
- 登录 VirusTotal 门户。
- 在您的用户名下方,点击 API 密钥。
- 复制生成的 API 密钥,以便在集成参数中使用。
- 点击保存。
集成参数
VirusTotal 集成需要以下参数:
参数 | 说明 |
---|---|
Api Key |
必填。 用于访问 VirusTotal 的 API 密钥。 |
Verify SSL |
可选。 如果选中此选项,集成会在连接到 VirusTotal 时验证 SSL 证书。 默认情况下未选中。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅处理“工作台”中的待处理操作和执行手动操作。
获取网域报告
使用 Get Domain Report 操作从 VirusTotal 检索所提供实体的网域报告,并在 Google SecOps 平台中丰富这些实体。
此操作可在以下 Google SecOps 实体上运行:
User
Hostname
操作输入
无。
操作输出
获取网域报告操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
实体丰富化表 | 可用 |
JSON 结果 | 可用 |
脚本结果 | 可用 |
实体丰富化表
获取网域报告操作可以丰富以下字段:
扩充项字段名称 | 适用逻辑 |
---|---|
Forcepoint ThreatSeeker category |
如果存在于 JSON 结果中,则返回。 |
BitDefender domain info |
如果存在于 JSON 结果中,则返回。 |
Categories |
如果存在于 JSON 结果中,则返回。 |
BitDefender Category |
如果存在于 JSON 结果中,则返回。 |
Alexa Category |
如果存在于 JSON 结果中,则返回。 |
Alexa domain info |
如果存在于 JSON 结果中,则返回。 |
Websense ThreatSeeker category |
如果存在于 JSON 结果中,则返回。 |
TrendMicro category |
如果存在于 JSON 结果中,则返回。 |
Opera domain info |
如果存在于 JSON 结果中,则返回。 |
Webutation domain info |
如果存在于 JSON 结果中,则返回。 |
verbose_msg |
如果存在于 JSON 结果中,则返回。 |
whois |
如果存在于 JSON 结果中,则返回。 |
JSON 结果
以下示例展示了使用 获取网域报告操作时收到的 JSON 结果输出:
[
{
"EntityResult": {
"detected_downloaded_samples": [],
"undetected_downloaded_samples": [{
"date": "2018-08-08 22:48:28",
"positives": 0,
"sha256": "ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629",
"total": 59
}],
"resolutions": [{
"last_resolved": "2019-01-13 03:31:09",
"ip_address": "192.0.2.1"
}],
"Opera domain info": "The URL domain/host was seen to host badware at some point in time",
"domain_siblings": [],
"BitDefender domain info": "This URL domain/host was seen to host badware at some point in time",
"whois": "Domain Name: EXAMPLE.CO.IN, nUpdated Date: 2018-05-22T09:30:37Z, nCreation Date: 2003-06-23T14:02:33Z, nRegistry Expiry Date: 2019-06-23T14:02:33Z, nDomain Status: clientDeleteProhibited, nDomain Status: clientTransferProhibited, nDomain Status: clientUpdateProhibited, nRegistrant Country: US, nName Server: NS1.EXAMPLE.COM, nName Server: NS2.EXAMPLE.COM, nName Server: NS3.EXAMPLE.COM, nName Server: NS4.EXAMPLE.COM, nDNSSEC: unsigned",
"Alexa domain info": "example.co.in is one of the top 100 sites in the world and is in the Search_Engines category",
"verbose_msg": "Domain found in dataset",
"BitDefender category": "searchengines",
"undetected_referrer_samples": [{
"date": "2019-02-05 13:20:39",
"positives": 0,
"sha256": "3baf9f2a2d2b152193d2af602378b71e40d381e835b0aa3111851b2f29e64f38",
"total": 71
}],
"whois_timestamp": 1548379042,
"WOT domain info": {
"Vendor reliability": "Excellent",
"Child safety": "Excellent",
"Trustworthiness": "Excellent",
"Privacy": "Excellent"
},
"detected_referrer_samples": [{
"date": "2019-02-05 01:11:35",
"positives": 1,
"sha256": "097ea19b440441248b157698e2b23555cdf6117491b5f49f7ec8e492550cb02c",
"total": 70
}],
"Forcepoint ThreatSeeker category": "search engines and portals",
"Alexa category": "search_engines",
"detected_communicating_samples": [{
"date": "2019-01-28 23:58:13",
"positives": 30,
"sha256": "e65faa1283f8941d98dc23ff6822be228a24cb4489a5e5b01aeee749bf851658",
"total": 70
}],
"TrendMicro category": "search engines portals",
"categories": [
"searchengines", "search engines and portals"
],
"undetected_urls": [[
"http://example.co.in/example", "daed97b2c77f0f72c9e4ee45506e3e1bc4e34d7b8846246877a02779bb85dd5b", 0, 70, "2019-02-04 14:58:23"
]],
"response_code": 1,
"Webutation domain info": {
"Safety score": 100,
"Adult content": "no",
"Verdict": "safe"
},
"subdomains": [
"www.example.co.in"
],
"Websense ThreatSeeker category": "search engines and portals",
"detected_urls": [{
"url": "http://example.co.in/urlURL",
"positives": 2,
"total": 66,
"scan_date": "2018-01-13 00:38:35"
}],
"Alexa rank": 100,
"undetected_communicating_samples": [{
"date": "2018-11-17 03:19:28",
"positives": 0,
"sha256": "e2a6ab7d594490c62bd3bb508dc38d7191ad48977da4d8dcce08dcb8af0070e9",
"total": 68
}],
"pcaps": [
"97e4a17068ce3ed01ed1c25c3d263fc0145e5ecc53b7db6f2ba84496b53d4a65"
]},
"Entity": "example.co.in"
}
]
脚本结果
下表列出了使用 Get Domain Report 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
扫描哈希
使用 Scan Hash 操作通过 VirusTotal 扫描文件哈希,将实体标记为可疑,并在风险得分达到给定阈值时显示数据洞见。
此操作在 Google SecOps Filehash
实体上运行。
操作输入
扫描哈希操作需要以下参数:
参数 | 说明 |
---|---|
Threshold |
必填。 将检测结果标记为可疑的阈值。 如果恶意引擎检测结果达到或超过设定的阈值,该操作会将相应实体标记为可疑。 |
Rescan after days |
可选。 在上次扫描日期之后重新扫描实体所需的天数。 |
操作输出
扫描哈希操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
实体丰富化表 | 可用 |
数据分析 | 可用 |
JSON 结果 | 可用 |
脚本结果 | 可用 |
实体丰富化表
扫描哈希操作可以丰富以下字段:
扩充项字段名称 | 适用逻辑 |
---|---|
permalink |
如果存在于 JSON 结果中,则返回。 |
sha1 |
如果存在于 JSON 结果中,则返回。 |
resource |
如果存在于 JSON 结果中,则返回。 |
Scan date |
如果存在于 JSON 结果中,则返回。 |
Scan ID |
如果存在于 JSON 结果中,则返回。 |
verbose_msg |
如果存在于 JSON 结果中,则返回。 |
total |
如果存在于 JSON 结果中,则返回。 |
positives |
如果存在于 JSON 结果中,则返回。 |
sha256 |
如果存在于 JSON 结果中,则返回。 |
md5 |
如果存在于 JSON 结果中,则返回。 |
Detecting Engines |
如果存在于 JSON 结果中,则返回。 |
数据分析
扫描哈希操作可以返回以下分析洞见:
严重程度 | 说明 |
---|---|
Warn |
该操作会创建一条警告数据洞见,用于告知富化哈希的恶意状态。 仅当检测到的引擎数量达到或超过您在扫描前设置的最低可疑阈值时,该操作才会创建数据洞见。 |
JSON 结果
以下示例展示了使用 Scan Hash 操作时收到的 JSON 结果输出:
[
{
"EntityResult": {
"permalink": "https://www.virustotal.com/file/HASH/analysis/ANALYSIS_ID/",
"sha1": "3395856ce81f2b7382dee72602f798b642f14140",
"resource": "HASH",
"response_code": 1,
"scan_date": "2019-02-05 15:41:52",
"scan_id": "HASH-ANALYSIS_ID",
"verbose_msg": "Scan finished, information embedded",
"total": 60,
"positives": 54,
"sha256": "HASH",
"md5": "44d88612fea8a8f36de82e1278abb02f",
"scans": {
"Bkav": {
"detected": true,
"version": "192.0.2.1",
"result": "Trojan",
"update": "20190201"
},
"MicroWorld-eScan": {
"detected": true,
"version": "14.0.297.0",
"result": "Test-File",
"update": "20190205"
}}},
"Entity": "HASH"
}
]
脚本结果
下表列出了使用 Scan Hash 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_risky |
True 或 False |
扫描 IP
使用 Scan IP 操作可收集 VirusTotal 最近在特定 IP 上发现的信息。
此操作在 Google SecOps IP Address
实体上运行。
操作输入
扫描 IP 操作需要以下参数:
参数 | 说明 |
---|---|
Threshold |
可选。 将 IP 地址标记为可疑的阈值。 如果恶意引擎检测结果达到或超过设置的阈值,该操作会将 IP 地址标记为可疑。 默认值为 |
操作输出
扫描 IP 操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
实体丰富化表 | 可用 |
数据分析 | 可用 |
JSON 结果 | 可用 |
脚本结果 | 可用 |
实体丰富化表
扫描 IP 操作可以丰富以下字段:
扩充项字段名称 | 适用逻辑 |
---|---|
Country |
如果存在于 JSON 结果中,则返回。 |
Related Domains |
如果存在于 JSON 结果中,则返回。 |
Last Scan Date |
如果存在于 JSON 结果中,则返回。 |
verbose_msg |
如果存在于 JSON 结果中,则返回。 |
Resolutions |
如果存在于 JSON 结果中,则返回。 |
数据分析
扫描 IP 操作可以返回以下数据分析:
严重程度 | 说明 |
---|---|
Warn |
该操作会创建一条警告数据洞见,用于告知富化的 IP 地址的恶意状态。 仅当检测到的引擎数量达到或超过扫描前设置的最低可疑阈值时,该操作才会创建数据洞见。 |
数据分析名称 | 正文 |
---|---|
Entity Insight |
|
JSON 结果
以下示例展示了使用扫描 IP 操作时收到的 JSON 结果输出:
[
{
"EntityResult": {
"asn": 4436,
"undetected_urls": [[
"http://example.com", "2ed06796f95e7c1xxxxxbd68d81754acf535c999e901bfe2cf9c45612396f66", 0, 66, "2022-11-23 06:51:49"
]],
"undetected_downloaded_samples": [{
"date": "2018-07-09 07:53:30",
"positives": 0,
"sha256": "6a0bf66ddc73d7e64eb2ff0dd3512c5378c0c63c2ad4e13c0e1429fe",
"total": 60
}],
"country": "country",
"response_code": 1,
"as_owner": "Example, Inc.",
"verbose_msg": "IP address in dataset",
"detected_downloaded_samples": [{
"date": "2023-05-20 08:38:00",
"positives": 6,
"sha256": "9cf5c07c99c3342d83b241c25850da0bf231ee150cb962cab1e8399cb",
"total": 57
}],
"resolutions": [{
"last_resolved": "2023-05-13 00:00:00",
"hostname": "40515350444dff68-2f7735d5ad283fa41a203a082d9a8f25.example.com"
}],
"detected_urls": [{
"url": "http://example.com",
"positives": 2,
"total": 67,
"scan_date": "2023-05-20 07:16:45"
}]},
"Entity": "192.0.2.1"
}
]
脚本结果
下表列出了使用扫描 IP 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
扫描网址
使用 Scan 网址 操作通过 VirusTotal 扫描网址。
此操作在 Google SecOps URL
实体上运行。
操作输入
扫描网址操作需要以下参数:
参数 | 说明 |
---|---|
Threshold |
必填。 将检测结果标记为可疑的阈值。 如果恶意引擎检测结果达到或超过设定的阈值,该操作会将相应实体标记为可疑。 |
Rescan after days |
可选。 在上次扫描日期之后重新扫描实体所需的天数。 |
操作输出
扫描网址操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
实体丰富化表 | 可用 |
数据分析 | 可用 |
JSON 结果 | 可用 |
脚本结果 | 可用 |
实体丰富化表
扫描网址操作可以丰富以下字段:
扩充项字段名称 | 适用逻辑 |
---|---|
Scan date |
如果存在于 JSON 结果中,则返回。 |
Scan ID |
如果存在于 JSON 结果中,则返回。 |
risk_score |
如果存在于 JSON 结果中,则返回。 |
Total |
如果存在于 JSON 结果中,则返回。 |
Online Link |
如果存在于 JSON 结果中,则返回。 |
Scanned Url |
如果存在于 JSON 结果中,则返回。 |
resource |
如果存在于 JSON 结果中,则返回。 |
Detecting Engines |
如果存在于 JSON 结果中,则返回。 |
Risk Score |
如果存在于 JSON 结果中,则返回。 |
Last Scan Date |
如果存在于 JSON 结果中,则返回。 |
verbose_msg |
如果存在于 JSON 结果中,则返回。 |
File Scan ID |
如果存在于 JSON 结果中,则返回。 |
数据分析
扫描网址操作可以返回以下数据分析:
严重程度 | 说明 |
---|---|
Warn |
此操作会创建一条警告数据洞见,用于告知富集网址的恶意状态。 仅当检测到的引擎数量达到或超过扫描前设置的最低可疑阈值时,该操作才会创建数据洞见。 |
JSON 结果
以下示例展示了使用扫描网址操作时收到的 JSON 结果输出:
[
{
"EntityResult": {
"permalink": "https://www.virustotal.com/url/URL_HASH/analysis/ANALYSIS_ID/",
"resource": "http://example.php",
"url": "http://example.php",
"response_code": 1,
"scan_date": "2019-02-04 05:28:54",
"scan_id": "URL_HASH-ANALYSIS_ID",
"verbose_msg": "Scan finished, scan information embedded in this object",
"filescan_id": null,
"positives": 5,
"total": 67,
"scans": {
"CLEAN MX": {
"detected": false,
"result": "clean site"
},
"DNS8": {
"detected": false,
"result": "clean site"
}}},
"Entity": "http://example.php"
}
]
脚本结果
下表列出了使用 Scan 网址 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_risky |
True 或 False |
上传并扫描文件
使用上传并扫描文件操作,通过 VirusTotal 上传并扫描文件。
此操作会在所有 Google SecOps 实体上运行。
操作输入
上传并扫描文件操作需要以下参数:
参数 | 说明 |
---|---|
Threshold |
必填。 来自 VirusTotal 扫描器的最低数量的正面检测结果,用于将文件视为有风险并触发数据洞见。 默认值为 |
File Paths |
必填。 要上传和扫描的路径的逗号分隔列表。 |
Linux Server Address |
可选。 文件所在的远程 Linux 服务器的地址,例如 |
Linux User |
可选。 用于在远程 Linux 服务器上进行身份验证的用户名。 |
Linux Password |
可选。 用于在远程 Linux 服务器上进行身份验证的密码。 |
操作输出
上传和扫描文件操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
实体丰富化表 | 可用 |
数据分析 | 可用 |
JSON 结果 | 可用 |
脚本结果 | 可用 |
实体丰富化表
上传和扫描文件操作可以丰富以下字段:
扩充项字段名称 | 适用逻辑 |
---|---|
resource |
如果存在于 JSON 结果中,则返回。 |
Scan date |
如果存在于 JSON 结果中,则返回。 |
Scan ID |
如果存在于 JSON 结果中,则返回。 |
permalink |
如果存在于 JSON 结果中,则返回。 |
Total |
如果存在于 JSON 结果中,则返回。 |
Md5 |
如果存在于 JSON 结果中,则返回。 |
Sha1 |
如果存在于 JSON 结果中,则返回。 |
Sha256 |
如果存在于 JSON 结果中,则返回。 |
positives |
如果存在于 JSON 结果中,则返回。 |
total |
如果存在于 JSON 结果中,则返回。 |
Detecting Engines |
如果存在于 JSON 结果中,则返回。 |
verbose_msg |
如果存在于 JSON 结果中,则返回。 |
数据分析
上传并扫描文件操作可能会返回以下分析洞见:
严重程度 | 说明 |
---|---|
Warn |
该操作会创建一条警告数据洞见,用于告知富集文件的恶意状态。 仅当检测到的引擎数量达到或超过扫描前设置的最低可疑阈值时,该操作才会创建数据洞见。 |
JSON 结果
以下示例展示了使用上传并扫描文件操作时收到的 JSON 结果输出:
{
"file_path": {
"scan_id": "FILE_ID-ANALYSIS_ID",
"sha1": "ec44b2af88e602e3981db0b218ecb5d59dc0dfec",
"resource": "FILE_ID-ANALYSIS_ID",
"response_code": 1,
"scan_date": "2019-02-05 15:55:50",
"permalink": "https://www.virustotal.com/file/FILE_ID/analysis/ANALYSIS_ID/",
"verbose_msg": "Scan finished, information embedded",
"total": 58,
"positives": 0,
"sha256": "FILE_ID",
"md5": "848d57fbd8e29afa08bd3f58dd30f902",
"scans": {
"Bkav": {
"detected": false,
"version": "192.0.2.1",
"result": null,
"update": "20190201"
},
"MicroWorld-eScan": {
"detected": false,
"version": "14.0.297.0",
"result": null,
"update": "20190205"
}
}
}
}
脚本结果
下表列出了使用上传并扫描文件操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_risky |
True 或 False |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。