Digital Shadows
本文档介绍了如何将 Digital Shadows 与 Google Security Operations 集成。
使用场景
Digital Shadows 集成用作提醒来源并丰富实体。
前提条件
如需使用 Digital Shadows API,您需要提供 API 密钥。
对所有操作端点的请求都需要 HTTP 基本身份验证和专用(高熵)API 凭据,这些凭据通常由 6 个字符的密钥和 32 个字符的密钥组成。
将 Digital Shadows 与 Google Security Operations 集成
有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。
集成输入
如需配置集成,请使用以下参数:
| 参数 | |
|---|---|
Instance Name |
可选
您要为其配置集成的实例的名称。 |
Description |
可选
实例说明。 |
API Key |
必需 Digital Shadow API 密钥。 |
API Secret |
可选 Digital Shadow API 密钥。 |
Run Remotely |
可选 勾选此字段可远程运行配置的集成。选中后,系统会显示选择远程用户(代理)的选项。 默认情况下处于未选中状态。 |
操作
扩充 CVE
使用 Digital Shadows 信息丰富 CVE。
分析师可以使用此操作来获取有关特定 CVE 的更多信息,这有助于调查。
实体
此操作在 CVE 实体上运行。
操作输入
不适用
操作输出
| 操作输出类型 | |
|---|---|
| 案例墙附件 | 不适用 |
| 案例墙链接 | 可用 |
| 案例墙表格 | 不适用 |
| 丰富化表 | 可用 |
| JSON 结果 | 可用 |
| 脚本结果 | 可用 |
实体丰富化
| 扩充项字段 | 来源(JSON 密钥) | 逻辑 |
|---|---|---|
DigitalShadows_Exploit_title |
entity/title |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Exploit_type |
entity/type |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Exploit_platform |
entity/platform |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Exploit_source |
entity/sourceUri |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_sourceURL |
entity/sourceUri |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_description |
entity/description |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_score |
entity/cvss2Score/baseScore |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_authentication |
entity/cvss2Score/authentication |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_accessVector |
entity/cvss2Score/accessVector |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_accessComplexity |
entity/cvss2Score/accessComplexity |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_confidentialityImpact |
entity/cvss2Score/confidentialityImpact |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_integrityImpact |
entity/cvss2Score/integrityImpact |
如果 JSON 结果中包含此信息。 |
DigitalShadows_Vulnerability_availabilityImpact |
entity/cvss2Score/availabilityImpact |
如果 JSON 结果中包含此信息。 |
脚本结果
| 脚本结果名称 | 值 |
|---|---|
| is_success | True/False |
JSON 结果
{
"content": [
{
"entity": {
"cveIdentifier": "CVE-2011-0489",
"created": "2011-01-18T18:03:00.000Z",
"updated": "2017-08-17T01:33:00.000Z",
"sourceUri": "https://nvd.nist.gov/vuln/detail/CVE-2011-0489",
"description": "The server components in Example_DB 10.0 do not require authentication for administrative commands, which allows remote attackers to modify data, obtain sensitive information, or cause a denial of service by sending requests over TCP to (1) the Lock Server or (2) the Advanced Multithreaded Server, as demonstrated by commands that are ordinarily sent by the (a) ookillls and (b) oostopams applications. NOTE: some of these details are obtained from third party information.",
"relatedCPEs": [
"cpe:/a:example:example%2fdb:10.0"
],
"cvss2Score": {
"baseScore": 7.5,
"authentication": "NONE",
"accessVector": "NETWORK",
"accessComplexity": "LOW",
"confidentialityImpact": "PARTIAL",
"integrityImpact": "PARTIAL",
"availabilityImpact": "PARTIAL"
}
},
"type": "VULNERABILITY",
"snippet": "CVE ID: CVE-2011-0489</em><br><br>",
"sortDate": "2017-08-17T01:33:00.000Z"
},
{
"entity": {
"id": "f75754b5-65a3-46ee-bea7-e0f015a5283d",
"uri": "http://example.com",
"pasted": "2018-01-05T09:10:02.000Z",
"observableCounts": {
"ipV4": {
"count": 0,
"exceededMaximum": false
},
"email": {
"count": 0,
"exceededMaximum": false
},
"md5": {
"count": 0,
"exceededMaximum": false
},
"sha1": {
"count": 0,
"exceededMaximum": false
},
"sha256": {
"count": 0,
"exceededMaximum": false
},
"host": {
"count": 0,
"exceededMaximum": false
},
"cve": {
"count": 100,
"exceededMaximum": true
}
},
"screenshot": {
"id": "3ab6b3cb-349d-4ed7-b150-773454a11908",
"link": "https://example.com"
},
"screenshotThumbnail": {
"id": "7529cf75-5ddb-4e2d-8fc9-f3531e33704e",
"link": "https://example.com"
}
},
"type": "PASTE",
"snippet": ""\n ], \n "CVE-2002-1656": [\n "3043"\n ], \n "CVE-2003-0347": [\n "23094"\n ], \n "<em>CVE</em>-<em>2011</em>-<em>0489</em>": [\n "15988",
"sortDate": "2018-01-05T09:10:02.000Z"
},
"type": "PASTE",
"snippet": ") sequences in a crafted request.\n| [<em>CVE</em>-<em>2011</em>-<em>0489</em>] The server components in Example_DB 10.0 do ... in a crafted request.\n| [<em>CVE</em>-<em>2011</em>-<em>0489</em>] The server components in Example_DB 10.0 do not require ... request.\n| [<em>CVE</em>-<em>2011</em>-<em>0489</em>] The server components in Example_DB 10.0 do not require ... files via "../\\" (dot dot forward-slash backslash) sequences in a crafted request.\n| [<em>CVE</em>-<em>2011</em>-<em>0489</em>",
"sortDate": "2019-07-23T21:35:39.000Z"
}
],
"currentPage": {
"offset": 0,
"size": 50
},
"total": 4,
"facets": {}
}
案例墙
该操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Enrich CVE".
Reason: ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
案例墙链接
如果 JSON 响应中包含
TYPE=Exploit:标题:漏洞利用来源网址
链接:
entity/sourceUri如果 JSON 响应中包含
TYPE=Vulnerability:标题:漏洞来源网址:
链接:
entity/sourceUri对于返回数据的所有实体:
标题:完整数字影子搜索结果
链接:
https://portal-digitalshadows.com/search?q=ENTITY
丰富哈希值 - 已弃用
使用 Digital Shadows 信息丰富哈希。
使用场景
分析师可以使用此操作来收集更多详细信息,例如,它是否是有助于调查的安全哈希。
运行时间
此操作在 Filehash 实体上运行。
操作执行结果
实体丰富化
| 扩充项字段名称 | 来源(JSON 密钥) | 逻辑 - 适用情形 |
|---|---|---|
| DigitalShadows_CylanceFileHash_generalScore | entity/fileHashInfo/generalScore | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_CylanceFileHash_classifier_ml | entity/fileHashInfo/classifiers/ml | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_CylanceFileHash_classifier_industry | entity/fileHashInfo/classifiers/industry | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_CylanceFileHash_classifier_human | entity/fileHashInfo/classifiers/human | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootFileHash_category | 实体/类别 | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootFileHash_malwareCategory | entity/malwareCategory | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootFileHash_fileSizeBytes | entity/fileSizeBytes | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootFileHash_fileLastSeen | entity/fileLastSeen | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootFileHash_sourceUrls | entity/sourceUrls | 如果 JSON 结果中有数据,空列表应被忽略。 |
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"content": [
{
"entity": {
"requestedHash": "617f7301fd67e8b5d8ad42d4e94e02cb313fe5ad51770ef93323c6115e52fe98",
"status": 0,
"fileHashInfo": {
"status": "COMPLETE",
"statusCode": 1,
"generalScore": -1.0,
"classifiers": {
"ml": 1.0,
"industry": -1.0,
"human": -1.0
},
"hashes": {
"sha256": "617F7301FD67E8B5D8AD42D4E94E02CB313FE5AD51770EF93323C6115E52FE98",
"sha1": "CF0743ED381ADE69BBA3D1DD3D357A8300BCD4AE",
"md5": "8FE94843A3E655209C57AF587849AC3A"
}
}
},
"type": "CYLANCE_FILE_HASH"
},
{
"entity": {
"id": "7ab729ab-2176-4072-8fcc-483410e7949d",
"uri": "http://example.com",
"title": "Malware hashes",
"pasted": "2019-12-07T04:01:21.000Z",
"observableCounts": {
"ipV4": {
"count": 0,
"exceededMaximum": false
},
"email": {
"count": 0,
"exceededMaximum": false
},
"md5": {
"count": 0,
"exceededMaximum": false
},
"sha1": {
"count": 0,
"exceededMaximum": false
},
"sha256": {
"count": 45,
"exceededMaximum": false
},
"host": {
"count": 0,
"exceededMaximum": false
},
"cve": {
"count": 0,
"exceededMaximum": false
}
},
"screenshot": {
"id": "a358a7fd-ce76-4ac0-a338-7a17c5affcca",
"link": "https://example.com"
},
"screenshotThumbnail": {
"id": "2a98b417-1846-47ca-835f-b4be580cfdc2",
"link": "https://example.com"
}
},
"type": "PASTE",
"snippet": "617f7301fd67e8b5d8ad42d4e94e02cb313fe5ad51770ef93323c6115e52fe98\n137e17ed0c693f5ba23c3f3bf252f7edc29548d97f426625a4e0c5fea0558e45",
"sortDate": "2019-12-07T04:01:21.000Z"
},
{
"entity": {
"id": "e05f1f61-5996-4ff9-b656-5d7fe856e459",
"uri": "http://example.com",
"pasted": "2017-12-27T08:53:14.000Z",
"observableCounts": {
"ipV4": {
"count": 0,
"exceededMaximum": false
},
"email": {
"count": 0,
"exceededMaximum": false
},
"md5": {
"count": 0,
"exceededMaximum": false
},
"sha1": {
"count": 0,
"exceededMaximum": false
},
"sha256": {
"count": 100,
"exceededMaximum": true
},
"host": {
"count": 0,
"exceededMaximum": false
},
"cve": {
"count": 0,
"exceededMaximum": false
}
},
"screenshot": {
"id": "d41fd1d9-aa0c-411d-87f5-824d036e9843",
"link": "https://example.com"
},
"screenshotThumbnail": {
"id": "ab91eba6-f8fd-4a7e-a3b4-6b100ee50789",
"link": "https://example.com"
}
},
"type": "PASTE",
"snippet": "617F7301FD67E8B5D8AD42D4E94E02CB313FE5AD51770EF93323C6115E52FE98",
"sortDate": "2017-12-27T08:53:14.000Z"
}
],
"currentPage": {
"offset": 0,
"size": 25
},
"total": 4,
"facets": {}
}
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败或停止 playbook 执行: 如果未返回错误,并且返回了实体的数据:
如果未发生错误,且未返回任何实体数据: 操作应失败并停止 playbook 执行: 如果出现错误: 输出“执行‘丰富哈希’操作时出错”。 Reason: {0}''.format(error.Stacktrace) |
常规 |
| 链接 | 对于返回数据的所有实体: Title: Full Digital Shadows Search Result 链接:
https://portal-digitalshadows.com/search?q= |
实体 |
丰富 IP - 已弃用
使用 Digital Shadows 信息丰富 IP。
使用场景
分析师可以使用此操作来获取有关 IP 地址的更多信息,这有助于调查。
运行时间
此操作在 IP 地址实体上运行。
操作执行结果
实体丰富化
| 扩充项字段名称 | 来源(JSON 密钥) | 逻辑 - 适用情形 |
|---|---|---|
| DigitalShadows_WebrootIP_reputationScore | entity/reputationScore | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_asn | entity/asn | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_currentlyClassifiedAsThreat | entity/currentlyClassifiedAsThreat | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_ipThreatHistory | entity/ipThreatHistory | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_country | entity/ipGeoInfo/国家/地区 | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_region | entity/ipGeoInfo/区域 | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_state | entity/ipGeoInfo/state | 如果 JSON 结果中包含此信息。 |
| DigitalShadows_WebrootIP_city | entity/ipGeoInfo/city | 如果 JSON 结果中包含此信息。 |
脚本结果
| 脚本结果名称 | “值”选项 | 示例 |
|---|---|---|
| is_success | True/False | is_success:False |
JSON 结果
{
"content": [
{
"entity": {
"ipAddress": "192.0.2.1",
"updatedDateTime": "2020-02-21T01:10:01.000Z",
"reputationScore": 18,
"asn": 13335,
"currentlyClassifiedAsThreat": false,
"threatCategories": [],
"ipThreatHistory": [],
"ipReputationHistory": [
{
"timestamp": "2020-02-21T01:10:01.000Z",
"reputation": 18
},
{
"timestamp": "2020-02-07T01:10:02.000Z",
"reputation": 29
}
],
"ipIncidentHistory": [
{
"classifiedAsThreat": false,
"startDateTime": "2019-07-15T00:37:12.000Z",
"durationSeconds": 0,
"numberOfAttempts": 0,
"eventType": "Phishing IPs",
"threatType": "Phishing",
"eventDescription": "IP hosts phishing sites",
"applications": [],
"hostingPhishUrls": [
"example.net"
],
"scanDetails": [],
"attackDetails": []
},
{
"classifiedAsThreat": false,
"startDateTime": "2018-07-21T00:23:27.000Z",
"durationSeconds": 0,
"numberOfAttempts": 0,
"eventType": "Phishing IPs",
"threatType": "Phishing",
"eventDescription": "IP hosts phishing sites",
"applications": [],
"hostingPhishUrls": [
"example.net"
],
"scanDetails": [],
"attackDetails": []
}
],
"ipGeoInfo": {
"country": "united states",
"region": "mid atlantic",
"state": "new jersey",
"city": "newark",
"latitude": "40.73873",
"longitude": "-74.19453",
"organization": "example inc.",
"carrier": "example",
"tld": "",
"sld": "",
"asn": "example_isn"
}
},
"type": "WEBROOT_IP"
},
{
"entity": {
"id": "0007b64b-ef21-4b5f-a0c2-1e469ceb6896",
"uri": "http://example.com",
"pasted": "2019-10-23T13:32:46.000Z",
"observableCounts": {
"ipV4": {
"count": 100,
"exceededMaximum": true
},
"email": {
"count": 0,
"exceededMaximum": false
},
"md5": {
"count": 0,
"exceededMaximum": false
},
"sha1": {
"count": 0,
"exceededMaximum": false
},
"sha256": {
"count": 0,
"exceededMaximum": false
},
"host": {
"count": 0,
"exceededMaximum": false
},
"cve": {
"count": 0,
"exceededMaximum": false
}
},
"screenshot": {
"id": "b019cfcf-2d36-4bcd-9bf3-69fa67b5ec6d",
"link": "https://example.com"
},
"screenshotThumbnail": {
"id": "57af6550-6690-478f-8ba5-640a5560311a",
"link": "https://example.com"
}
},
"type": "PASTE",
"snippet": "192.0.2.1\n192.0.2.2\n192.0.2.3\n192.0.2.4\n192.0.2.5\n192.0.2.6\n192.0.2.7",
"sortDate": "2019-10-23T13:32:46.000Z"
}
],
"currentPage": {
"offset": 0,
"size": 50
},
"total": 10,
"facets": {}
}
案例墙
| 结果类型 | 值 / 说明 | 类型 |
|---|---|---|
| 输出消息* | 操作不应失败或停止 playbook 执行: 如果未返回错误,并且返回了实体的数据: 如果未发生错误,且未返回任何实体数据:
操作应失败并停止 playbook 执行: 如果出现错误: 输出“执行‘丰富 IP’操作时出错。原因:{0}”。 format(error.Stacktrace) |
常规 |
| 链接 | 对于返回数据的所有实体: Title: Full Digital Shadows Search Result 链接:https://portal-digitalshadows.com/search?q=
|
实体 |
扩充网址
使用 Digital Shadows 信息扩充网址。
分析师可以使用此操作来获取有关特定网址地址的更多信息,这有助于调查。
实体
此操作在网址实体上运行。
操作输入
不适用
操作输出
| 操作输出类型 | |
|---|---|
| 案例墙附件 | 不适用 |
| 案例墙链接 | 可用 |
| 案例墙表格 | 不适用 |
| 丰富化表 | 可用 |
| JSON 结果 | 可用 |
| 脚本结果 | 可用 |
实体丰富化
| 扩充项字段 | 来源(JSON 密钥) | 逻辑 |
|---|---|---|
DigitalShadows_WebrootDomain_timesLabeledAsThreat |
entity/threatHistory |
如果 JSON 结果中包含此信息。 |
DigitalShadows_WebrootDomain_age |
entity/age |
如果 JSON 结果中包含此信息。 |
DigitalShadows_WebrootIP_popularity |
entity/popularity |
如果 JSON 结果中包含此信息。 |
DigitalShadows_WebrootIP_reputation |
entity/reputation |
如果 JSON 结果中包含此信息。 |
DigitalShadows_WebrootIP_threatCategories |
entity/threatCategories |
如果 JSON 结果中包含此信息。 |
脚本结果
| 脚本结果名称 | 值 |
|---|---|
| is_success | True/False |
JSON 结果
{
"content": [
{
"entity": {
"domainOrUrl": "www.example.com",
"lastUpdated": "2020-02-25T12:08:20.944Z",
"threatCategories": [
{
"confidence": 93,
"group": "Security",
"name": "Malware Sites"
}
],
"reputation": 10,
"popularity": "UNRANKED",
"age": 82,
"threatHistory": 1,
"webrootCrawlHistory": [],
"domainHostedHashes": []
},
"type": "WEBROOT_DOMAIN"
}
],
"currentPage": {
"offset": 0,
"size": 50
},
"total": 66,
"facets": {}
}
案例墙
该操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
|
操作成功。 |
Error executing action "Enrich URL".
Reason: ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
案例墙链接
对于返回数据的所有实体:
标题:Full Digital Shadow 搜索结果
链接:https://portal-digitalshadows.com/search?q=ENTITY
Ping
使用 Google SecOps Content Hub 页面中的集成配置页面上提供的参数,测试与 Digital Shadows 的连接。
此操作可以手动执行,不使用 playbook。
实体
此操作不会对实体执行。
操作输入
不适用
操作输出
| 操作输出类型 | |
|---|---|
| 案例墙附件 | 不适用 |
| 案例墙链接 | 可用 |
| 案例墙表格 | 不适用 |
| 丰富化表 | 不适用 |
| JSON 结果 | 不适用 |
| 脚本结果 | 可用 |
脚本结果
| 脚本结果名称 | 值 |
|---|---|
| is_success | True/False |
案例墙
该操作会提供以下输出消息:
| 输出消息 | 消息说明 |
|---|---|
Successfully connected to the Digital Shadows with the provided
connection parameters! |
操作成功。 |
Error executing action "Ping".
Reason: ERROR_REASON |
操作失败。 请检查与服务器的连接、输入参数或凭据。 |
案例墙链接
对于返回数据的所有实体:
标题:Full Digital Shadow 搜索结果
链接:https://portal-digitalshadows.com/search?q=ENTITY
连接器
如需详细了解如何在 Google SecOps 中配置连接器,请参阅配置连接器。
Digital Shadows - Incident Connector
将 Digital Shadows 中的突发事件注入 Google SecOps。
连接器输入
如需配置连接器,请使用以下参数:
| 参数 | |
|---|---|
Product Field Name |
必需
输入要检索 默认值为 |
Event Field Name |
必需
输入要检索 默认值为 |
Environment Field Name |
可选
存储环境名称的字段的名称。 如果未找到环境字段,则使用默认环境。 默认值为 |
Environment Regex Pattern |
可选
要在 默认值 该参数可让您使用正则表达式逻辑来操纵环境字段。 如果正则表达式模式为 null 或为空,或者环境值为 null,则使用默认环境。 |
Script Timeout (Seconds) |
必需 运行当前脚本的 Python 进程的超时限制。 默认值为 180 秒。 |
API Key |
必需
Digital Shadow API 密钥。 |
API secret |
必需
Digital Shadow API 密钥。 |
Client Secret |
必需
CrowdStrike 账号的客户端密钥。 |
Fetch Max Hours Backwards |
可选
从当前时间往前推,要检索多少小时内的突发事件。 默认值为 1 小时。 |
Lowest Severity To Fetch |
必需
要提取的突发事件的最低严重程度得分。 可能的值包括:
默认值为 |
Incident Type Filter |
可选
应注入 Google SecOps 的突发事件类型的逗号分隔列表。 默认情况下,连接器会检索所有突发事件类型。 可能的值包括:
|
Max Incidents To Fetch |
可选
每次连接器迭代要处理的突发事件数量。 默认值为 50。 |
Use whitelist as a blacklist |
必需
如果选中,则动态列表将用作屏蔽名单。 默认情况下处于未选中状态。 |
Verify SSL |
必需
如果选中此选项,系统会验证与 CrowdStrike 服务器连接的 SSL 证书是否有效。 默认情况下处于未选中状态。 |
Proxy Server Address |
可选
要使用的代理服务器的地址。 |
Proxy Username |
可选
用于进行身份验证的代理用户名。 |
Proxy Password |
可选
用于进行身份验证的代理密码。 |
连接器规则
连接器支持代理。
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。