将 VirusTotal 与 Google SecOps 集成

本文档介绍了如何将 VirusTotal 与 Google Security Operations (Google SecOps) 集成。

集成版本:39.0

此集成使用 VirusTotal API v2。

此集成使用一个或多个开源组件。 您可以从 Cloud Storage 存储桶下载此集成的完整源代码的压缩副本。

准备工作

如需使用 VirusTotal 集成,请配置 API 密钥。

如需配置 API 密钥,请完成以下步骤:

  1. 登录 VirusTotal 门户。
  2. 在您的用户名下方,点击 API 密钥
  3. 复制生成的 API 密钥,以便在集成参数中使用。
  4. 点击保存

集成参数

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 TrueFalse

扫描哈希

使用 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 TrueFalse

扫描 IP

使用 Scan IP 操作可收集 VirusTotal 最近在特定 IP 上发现的信息。

此操作在 Google SecOps IP Address 实体上运行。

操作输入

扫描 IP 操作需要以下参数:

参数 说明
Threshold

可选。

将 IP 地址标记为可疑的阈值。

如果恶意引擎检测结果达到或超过设置的阈值,该操作会将 IP 地址标记为可疑。

默认值为 25

操作输出

扫描 IP 操作提供以下输出:

操作输出类型 可用性
案例墙附件 不可用
案例墙链接 不可用
“支持请求墙”表格 不可用
实体丰富化表 可用
数据分析 可用
JSON 结果 可用
脚本结果 可用
实体丰富化表

扫描 IP 操作可以丰富以下字段:

扩充项字段名称 适用逻辑
Country 如果存在于 JSON 结果中,则返回。
Related Domains 如果存在于 JSON 结果中,则返回。
Last Scan Date 如果存在于 JSON 结果中,则返回。
verbose_msg 如果存在于 JSON 结果中,则返回。
Resolutions 如果存在于 JSON 结果中,则返回。
数据分析

扫描 IP 操作可以返回以下数据分析:

严重程度 说明
Warn

该操作会创建一条警告数据洞见,用于告知富化的 IP 地址的恶意状态。

仅当检测到的引擎数量达到或超过扫描前设置的最低可疑阈值时,该操作才会创建数据洞见。

数据分析名称 正文
Entity Insight
  • 国家/地区:country
  • 恶意引荐来源网址示例:len(detected_referrer_samples)
  • 恶意下载的样本: len(detected_downloaded_samples)
  • 恶意通信示例: len(detected_communicating_samples)
  • 恶意网址:len(detected_urls)
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 TrueFalse

扫描网址

使用 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 TrueFalse

上传并扫描文件

使用上传并扫描文件操作,通过 VirusTotal 上传并扫描文件。

此操作会在所有 Google SecOps 实体上运行。

操作输入

上传并扫描文件操作需要以下参数:

参数 说明
Threshold

必填。

来自 VirusTotal 扫描器的最低数量的正面检测结果,用于将文件视为有风险并触发数据洞见。

默认值为 3

File Paths

必填。

要上传和扫描的路径的逗号分隔列表。

Linux Server Address

可选。

文件所在的远程 Linux 服务器的地址,例如 192.0.2.1

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 TrueFalse

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。