将 ANY.RUN 与 Google SecOps 集成
本文档介绍了如何将 ANY.RUN 与 Google Security Operations (Google SecOps) 集成。
产品权限
集成正在进行 API 密钥身份验证。您可以在 ANY.RUN 页面上生成新的 API 密钥。
集成参数
如需详细了解如何在 Google SecOps 中配置集成,请参阅配置集成。
使用以下参数配置集成:
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 实例名称 | 字符串 | 不适用 | 否 | 您要为其配置集成的实例的名称。 |
| 说明 | 字符串 | 不适用 | 否 | 实例的说明。 |
| API 密钥 | 密码 | 不适用 | 是 | 要与集成搭配使用的 API 密钥。 |
| 远程运行 | 复选框 | 尚未核查 | 否 | 勾选此字段,以便远程运行配置的集成。选中后,系统会显示选择远程用户(代理)的选项。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如有需要,您可以在后续阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅 在工作桌上响应待处理的操作和在案例中运行手动操作。
分析文件
创建 ANY.RUN 文件分析任务。
此操作不会在 Google SecOps 实体上运行。应将要分析的文件的完整路径作为操作输入参数提供。
参数
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 文件路径 | 字符串 | 不适用 | 否 | 指定要分析的文件的完整路径。 |
| 等待报告? | 复选框 | 勾选 | 否 | 指定操作是否应等待报告创建。扫描完成后,您也可以稍后通过“获取报告”操作获取报告。 |
| 阈值 | 整数 | 0 | 是 | 如果选中“等待报告”复选框,则当实体的报告风险值高于指定阈值时,将实体标记为可疑。 |
| 尝试创建提交内容的次数 | 整数 | 30 | 是 | 操作应尝试多少次来检查是否未超出 API 并发限制,并尝试创建新的提交内容。每 2 秒检查一次。 |
| 操作系统版本 | DDL | 7 可能的值:
|
否 | 要运行分析的操作系统版本。 |
| 操作系统位数 | DDL | 32 可能的值:
|
否 | 操作系统的位数 |
| 操作系统环境类型 | DDL | 完成 可能的值:
|
否 | 要运行分析的环境类型。 |
| 网络连接状态 | DDL | 已开启
可能的值:
|
否 | 用于分析的网络连接状态。 |
| FakeNet 功能状态 | DDL | false 可能的值:
|
否 | FakeNet 功能状态,用于分析。 |
| 使用 TOR | DDL | false 可能的值:
|
否 | 在运行分析时是否使用 TOR。 |
| opt_network_mitm | DDL | false 可能的值:
|
否 | HTTPS MITM 代理选项。 |
| opt_network_geo | DDL | 最快 可能的值:
|
否 | 地理定位选项。 |
| opt_network_heavyevasion | DDL | false 可能的值:
|
否 | 重度规避选项。 |
| opt_privacy_type | DDL | 按链接 可能的值:
|
否 | 分析功能的隐私设置。 |
| opt_timeout | 字符串 | 60 | 否 | 分析超时时间,范围为 10 到 600 秒。 |
| obj_ext_startfolder | DDL | temp 可能的值:
|
否 | 分析的起始位置。 |
使用场景
分析已审核的提醒中包含的文件,以确定其是否为恶意文件。
运行时间
此操作不会对实体执行。
操作结果
实体丰富化
如果负面引擎的数量等于或高于给定阈值,则将实体标记为可疑。if data.get("report", {}).get("risk_score", {}).get("result") > threshold
| 扩充项字段名称 | 逻辑 - 适用场景 |
|---|---|
| domain_blacklist | 如果存在于 JSON 结果中,则返回 |
| html_forms | 如果存在于 JSON 结果中,则返回 |
| server_details | 如果存在于 JSON 结果中,则返回 |
| response_headers | 如果存在于 JSON 结果中,则返回 |
| 重定向 | 如果存在于 JSON 结果中,则返回 |
| file_type | 如果存在于 JSON 结果中,则返回 |
| risk_score | 如果存在于 JSON 结果中,则返回 |
| security_checks | 如果存在于 JSON 结果中,则返回 |
| geo_location | 如果存在于 JSON 结果中,则返回 |
| url_parts | 如果存在于 JSON 结果中,则返回 |
| site_category | 如果存在于 JSON 结果中,则返回 |
| web_page | 如果存在于 JSON 结果中,则返回 |
| dns_records | 如果存在于 JSON 结果中,则返回 |
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True 或 False | is_success:False |
JSON 结果
选项 1:如果未设置“等待报告”复选框,我们会返回有关已创建分析任务的信息(对请求 1 的响应)
{
"error": false,
"data": {
"taskid": "TASK_ID"
}
}
方法 2. 如果未勾选“等待报告”复选框,我们会返回有关已创建的分析任务的信息(对请求 1 的响应)
{
"error": false,
"data": {
"analysis": {
"uuid": "UUID",
"permanentUrl": "https://app.any.run/tasks/UUID",
"reports": {
"IOC": "https://api.any.run/report/UUID/ioc/json",
"MISP": "https://api.any.run/report/UUID/summary/misp",
"HTML": "https://api.any.run/report/UUID/summary/html",
"graph": "https://content.any.run/tasks/UUID/graph"
},
"sandbox": {
"name": "ANY.RUN - Interactive Sandbox",
"plan": {
"name": "Tester"
}
},
"duration": 60,
"creation": 1602483368256,
"creationText": "2020-10-12T06:16:08.256Z",
"tags": [],
"options": {
}
}
}
}
案例墙
| 结果类型 | 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功为提供的文件创建了分析任务: "Successfully created analysis task for file: {0}".format(file_path)。 如果未能为提供的文件创建分析任务: “Failed to create ANY.RUN analysis task for file: {0}”。format(file_path)。 如果勾选了“等待报告”复选框,并且我们因 Python 进程超时而结束操作,则输出“Action reached timeout waiting for report for file: {0}”。format(file_path)。 操作应失败并停止 playbook 执行: 如果报告了严重错误(例如凭据错误或连接中断): “Failed to connect to the ANY.RUN service! 错误为 {0}”。format(exception.stacktrace) |
常规 |
分析文件网址
创建 ANY.RUN 文件分析任务。
该操作不适用于 Google SecOps 实体,应将要分析的文件的网址作为操作输入参数提供。
参数
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 文件网址 | 字符串 | 不适用 | 否 | 指定要下载和分析的文件的网址。 |
| 要隐藏来源网址吗? | 复选框 | 尚未核查 | 否 | 指定是否隐藏所下载文件的来源网址。 |
| 等待报告? | 复选框 | 勾选 | 否 | 指定操作是否应等待报告创建。扫描完成后,您也可以稍后通过“获取报告”操作获取报告。 |
| 阈值 | 整数 | 0 | 是 | 如果选中“等待报告”复选框,则当实体的报告风险值高于指定阈值时,将实体标记为可疑。 |
| 尝试创建提交内容的次数 | 整数 | 30 | 是 | 操作应尝试多少次来检查是否未超出 API 并发限制,并尝试创建新的提交内容。每 2 秒检查一次。 |
| 操作系统版本 | DDL | 7 | 否 | 要运行分析的操作系统版本。 |
| 操作系统位数 | DDL | 32 | 否 | 操作系统的位数 |
| 操作系统环境类型 | DDL | 完成 | 否 | 要运行分析的环境类型。 |
| 网络连接状态 | DDL | 开启 | 否 | 用于分析的网络连接状态。 |
| FakeNet 功能状态 | DDL | False | 否 | FakeNet 功能状态,用于分析。 |
使用 TOR |
DDL | False | 否 | 在运行分析时是否使用 TOR。 |
opt_network_mitm |
DDL | False | 否 | HTTPS MITM 代理选项。 |
| opt_network_geo | DDL | 最快 | 否 | 地理定位选项。 |
| opt_network_heavyevasion | DDL | False | 否 | 重度规避选项。 |
| opt_privacy_type | DDL | 按链接 可能的值:
|
否 | 分析功能的隐私设置。 |
opt_timeout |
字符串 | 60 | 否 | 分析超时时间,范围为 10 到 600 秒。 |
obj_ext_startfolder |
DDL | temp | 否 | 分析的起始位置。 |
使用场景
分析已审核的提醒中包含的文件,以确定其是否为恶意文件。
运行时间
此操作不适用于实体。
操作结果
实体丰富化
如果负面引擎的数量等于或高于给定阈值,则将实体标记为可疑。is_suspicious: if data.get("score") > threshold
| 扩充项字段名称 | 逻辑 - 适用场景 |
|---|---|
| 网域 | 如果存在于 JSON 结果中,则返回 |
| should_block | 如果存在于 JSON 结果中,则返回 |
| 得分 | 如果存在于 JSON 结果中,则返回 |
| 一次性 | 如果存在于 JSON 结果中,则返回 |
| has_mx_records | 如果存在于 JSON 结果中,则返回 |
| has_spf_records | 如果存在于 JSON 结果中,则返回 |
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True 或 False | is_success:False |
JSON 结果
选项 1:如果未设置“等待报告”复选框,我们会返回有关已创建分析任务的信息(对请求 1 的响应)
{
"error": false,
"data": {
"taskid": "TASK_ID"
}
}
方法 2:如果未选中“等待报告”复选框,我们会返回有关已创建的分析任务的信息(对请求 1 的响应)
{
"error": false,
"data": {
"analysis": {
"uuid": "UUID",
"permanentUrl": "https://app.any.run/tasks/UUID",
"reports": {
"IOC": "https://api.any.run/report/UUID/ioc/json",
"MISP": "https://api.any.run/report/UUID/summary/misp",
"HTML": "https://api.any.run/report/UUID/summary/html",
"graph": "https://content.any.run/tasks/UUID/graph"
},
"sandbox": {
"name": "ANY.RUN - Interactive Sandbox",
"plan": {
"name": "Tester"
}
},
"duration": 60,
"creation": 1602483368256,
"creationText": "2020-10-12T06:16:08.256Z",
"tags": [],
"options": {
}
}
}
}
案例墙
| 结果类型 | 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功为提供的文件创建了分析任务: "Successfully created analysis task for file: {0}".format(file_path)。 如果未能为所提供的文件创建分析任务: Failed to create ANY.RUN analysis task for file: {0}".format(file_path). 如果勾选了“等待报告”复选框,并且由于 Python 进程超时即将结束而完成操作: “Action reached timeout waiting for report for file: {0}”。format(file_path)。 操作应失败并停止 playbook 执行: 如果报告了严重错误(例如凭据错误或连接中断): “Failed to connect to the ANY.RUN service! 错误为 {0}”。format(exception.stacktrace) |
常规 |
分析网址
为提供的网址创建 ANY.RUN 分析任务。
此操作不支持 Google SecOps 实体。必须提供要分析的网址作为输入参数。
参数
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 要分析的网址 | 字符串 | 不适用 | 否 | 指定要分析的网址。 |
| 等待报告? | 复选框 | 勾选 | 否 | 指定操作是否应等待报告创建。扫描完成后,您也可以稍后通过“获取报告”操作获取报告。 |
| 尝试创建提交内容的次数 | 整数 | 30 | 是 | 操作应尝试多少次来检查是否未超出 API 并发限制,并尝试创建新的提交内容。每 2 秒检查一次 |
| 操作系统版本 | DDL | 7 | 否 | 要运行分析的操作系统版本。 |
| 操作系统位数 | DDL | 32 | 否 | 操作系统的位数 |
| 操作系统环境类型 | DDL | 完成 | 否 | 要运行分析的环境类型。 |
| 网络连接状态 | DDL | 开启 | 否 | 用于分析的网络连接状态。 |
| FakeNet 功能状态 | DDL | False | 否 | FakeNet 功能状态,用于分析。 |
| 使用 TOR | DDL | False | 否 | 在运行分析时是否使用 TOR。 |
opt_network_mitm |
DDL |
False | 否 | HTTPS MITM 代理选项。 |
| opt_network_geo | DDL | 最快 | 否 | 地理定位选项。 |
| opt_network_heavyevasion | DDL | False | 否 | 重度规避选项。 |
| opt_privacy_type | DDL | 按链接 可能的值:
|
否 | 分析功能的隐私设置。 |
| opt_timeout | 字符串 | 60 | 否 | 分析超时时间,范围为 10 到 600 秒。 |
| obj_ext_startfolder | DDL | temp | 否 | 分析的起始位置。 |
使用场景
分析正在审核的提醒中的网址,看看其是否为恶意网址。
运行时间
此操作在网址实体上运行。
操作结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True 或 False | is_success:False |
JSON 结果
选项 1:如果未设置“等待报告”复选框,我们会返回有关已创建分析任务的信息(对请求 1 的响应)
{
"error": false,
"data": {
"taskid": "TASK_ID"
}
}
方法 2:如果未选中“等待报告”复选框,我们会返回有关已创建的分析任务的信息(对请求 1 的响应)
{
"error": false,
"data": {
"analysis": {
"uuid": "UUID",
"permanentUrl": "https://app.any.run/tasks/UUID",
"reports": {
"IOC": "https://api.any.run/report/UUID/ioc/json",
"MISP": "https://api.any.run/report/UUID/summary/misp",
"HTML": "https://api.any.run/report/UUID/summary/html",
"graph": "https://content.any.run/tasks/UUID/graph"
},
"sandbox": {
"name": "ANY.RUN - Interactive Sandbox",
"plan": {
"name": "Tester"
}
},
"duration": 60,
"creation": 1602483368256,
"creationText": "2020-10-12T06:16:08.256Z",
"tags": [],
"options": {
}
}
}
}
案例墙
| 结果类型 | 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果为至少一个提供的实体成功创建了分析任务: "Created analysis tasks for the following entities: {0}".format([entity.Identifier]). 如果未能为所有提供的实体创建分析任务: “未创建任何 ANY.RUN 分析任务。” 如果未能为某些实体创建分析任务: “未能为以下实体创建分析任务:{0}”。format([entity.identifier]) 如果勾选了“等待报告”复选框,并且我们因 Python 进程超时而结束操作: “操作在等待以下实体的报告时超时:{0}”。format([entity.identifier]) 操作应失败并停止 playbook 执行: 如果报告了严重错误(例如凭据错误或连接中断): “Failed to connect to the ANY.RUN service! 错误为 {0}”。format(exception.stacktrace) |
常规 |
获取报告
根据提供的 Google SecOps 文件、FileHash 或网址实体,从之前的分析中获取 ANY.RUN 报告。
参数
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 阈值 | 整数 | 0 | 是 | 如果实体的得分值高于指定阈值,则将实体标记为可疑。 |
| 在最近 x 次扫描中搜索 | 整数 | 25 | 是 | 在 ANY.RUN 中执行的最后 x 次分析中,搜索提供文件哈希的报告。 |
| 要创建分析洞见吗? | 复选框 | 尚未核查 | 否 | 指定是否根据报告数据创建数据分析。 |
| 要提取最新报告吗? | 复选框 | 勾选 | 否 | 指定是返回所提供实体的最新分析报告还是所有找到的报告。 |
使用场景
在 playbook 的提醒分析中,查找我们遇到的 ANY.RUN 哈希。
运行时间
此操作将在以下实体上运行:
- 文件名
- Filehash
- 网址
操作结果
实体丰富化
如果实体的风险值高于作为操作输入参数提供的阈值,操作应将此值设置为 True。
数据分析
| Insight 逻辑 | 类型 | 标题 | 实体 | 判定 | 威胁级别 | 得分 |
|---|---|---|---|---|---|---|
| 如果选中了相应复选框,则创建。 | 实体 | 任意/生成报告 | 为其创建数据分析的实体标识符 | 来自 API 响应的值 | 来自 API 响应的值 | 来自 API 响应的值 |
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True 或 False | is_success:False |
JSON 结果
{
"error":false,
"data":{
"analysis":{
"uuid":"UUID",
"permanentUrl":"https://app.any.run/tasks/UUID",
"reports":{
"IOC":"https://api.any.run/report/UUID/ioc/json",
"MISP":"https://api.any.run/report/UUID/summary/misp",
"HTML":"https://api.any.run/report/UUID/summary/html",
"graph":"https://content.any.run/tasks/UUID/graph"
},
"sandbox":{
"name":"ANY.RUN - Interactive Sandbox",
"plan":{
"name":"Tester"
}
},
"duration":60,
"creation":1602483368256,
"creationText":"2020-10-12T06:16:08.256Z",
"tags":[
],
"options":{
"timeout":60,
"additionalTime":0,
"fakeNet":false,
"heavyEvasion":false,
"mitm":false,
"tor":{
"used":false,
"geo":"fastest"
},
"presentation":false,
"video":true,
"hideSource":false,
"network":true,
"privacy":"bylink",
"privateSample":false,
"automatization":{
"uac":false
}
},
"scores":{
"verdict":{
"score":100,
"threatLevel":2,
"threatLevelText":"Malicious activity"
},
"specs":{
"injects":false,
"autostart":false,
"cpuOverrun":false,
"crashedApps":false,
"crashedTask":false,
"debugOutput":false,
"executableDropped":false,
"exploitable":false,
"lowAccess":false,
"memOverrun":false,
"multiprocessing":true,
}
}
}
}
}
案例墙
| 结果类型 | 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功,并且至少有一个提供的实体有报告: "Found ANY.RUN reports for the following entities: {0}".format([entity.Identifier]). 如果未能找到所有提供的实体的报告: “未找到任何 ANY.RUN 报告。” 如果未能找到某些实体的报告: "Failed to find ANY.RUN reports for the following entities: {0}".format([entity.identifier]) 操作应失败并停止 playbook 执行: 如果发生严重错误,例如凭据错误或连接中断: “Failed to connect to the ANY.RUN service! 错误为 {0}”。format(exception.stacktrace) |
常规 |
| 表 | 名称:Latest ANY.RUN Report 列:参数、值:
|
常规 |
Ping
测试与 ANY.RUN 的连接。
参数
不适用
运行时间
此操作不会对实体执行。
操作结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True 或 False | is_success:False |
案例墙
| 结果类型 | 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功:已使用提供的连接参数成功连接到 ANY.RUN 服务! 操作应失败并停止 playbook 执行: 如果报告了严重错误(例如凭据错误或连接中断):“Failed to connect to the ANY.RUN service! 错误为 {0}”。format(exception.stacktrace) |
常规 |
搜索报告记录
搜索 ANY.RUN 扫描历史记录。
该操作不适用于 Google SecOps 实体;仅使用操作输入参数。
参数
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 提交内容名称 | 字符串 | 不适用 | 否 | 要搜索的特定提交内容名称。 |
| 在最近 x 次扫描中搜索 | 整数 | 100 | 是 | 在 ANY.RUN 中执行的最后 x 次分析中搜索报告。 |
| 跳过前 x 次扫描 | 整数 | 0 | 否 | 跳过 ANY.RUN API 返回的前 x 次扫描。 |
| 要获取团队历史记录吗? | 复选框 | 尚未核查 | 否 | 指定是否获取团队历史记录。 |
使用场景
搜索过往提交的内容,查看之前在 ANY.RUN 沙盒中扫描过的内容。
运行时间
此操作不适用于实体。
操作结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| is_success | True 或 False | is_success:False |
JSON 结果
{
"error":false,
"data":{
"tasks":[
{
"verdict":"No threats detected",
"name":"http://users.tpg.com.au/locthuy/employment/qs/unix/Hardening%20your%20AIX%20Security.pdf",
"related":"https://app.any.run/tasks/ID",
"pcap":"https://content.any.run/tasks/ID/download/pcap",
"file":"https://content.any.run/tasks/ID/download/files/FILE_NAME",
"json":"https://api.any.run/report/ID/summary/json",
"misp":"https://api.any.run/report/ID/summary/misp",
"tags":[
],
"date":"2020-10-12T08:05:57.587Z",
"hashes":{
"ssdeep":"768:iSDksqjqvXbB/6rtilCec397sUiZc9Yky:TDegY539gUiCXy",
"head_hash":"3c90557306fa01f30693541b28db5785",
"sha256":"8ebc1257f9155134bb00315bdd2380990cdc413ba298d0cf473579ccfe03d6e5",
"sha1":"c125ba414416668b84ac737ec6db1b7f94bf32af",
"md5":"5e19377a19ef7657707872377bea14b7"
}
}
]
}
}
案例墙
| 结果类型 | 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败,也不应停止 playbook 执行: 如果成功并找到报告: “Found ANY.RUN reports for the provided search parameters”(已找到与提供的搜索参数匹配的 ANY.RUN 报告)。 如果找不到报告: “未找到任何 ANY.RUN 报告。” 操作应失败并停止 playbook 执行: 如果报告了严重错误(例如凭据错误或连接中断): “Failed to connect to the ANY.RUN service! 错误为 {0}”。format(exception.stacktrace) |
常规 |
| 表 | 表名称:搜索结果 表列:
|
常规 |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。