The Threatbook component wraps ThreatBook APIs to bring threat intelligence into Agentic SOC playbooks. Use it to retrieve file analysis reports or assess threats from IP addresses and domain names.
Three actions are available:
| Action | Use when |
|---|---|
| fileReport | You have a file hash and need static and dynamic analysis results |
| iocReport | You need to check whether an IP address or domain name involved in outbound traffic is malicious |
| ipReport | You need to assess the reputation and geographic details of an inbound IP address |
Prerequisites
Before you begin, ensure that you have:
Access to System Settings > Feature Settings > Multi-cloud Configuration Management in Security Center
A ThreatBook account with an API key
Authorize ThreatBook in Security Center
Go to System Settings > Feature Settings > Multi-cloud Configuration Management.
In the Multi-cloud Assets module, click Add authorization and select IDC.
In the asset access panel, configure the following parameters:
By default, ThreatBook is authorized for Agentic SOC only. Other features are not supported.
Parameter Description Vendor ThreatBook Product Threat Intelligence Cloud API Account ID Your ThreatBook account ID API key Your ThreatBook API key Click Next to configure the policy. Turn on AK Service Status Check to prevent an invalid AccessKey from disrupting your playbooks.
After authorization, your ThreatBook account ID becomes the cloudUserId value required by all three actions.
Configuration example
The following playbook configuration covers all three actions. Import it as a test playbook in the visual editor to explore the parameters for each action. For import instructions, see Import a playbook.
Save the sample data as a JSON file before importing.
{
"cells": [{
"position": {
"x": -400,
"y": -155
},
"size": {
"width": 36,
"height": 36
},
"attrs": {
"body": {
"fill": "white",
"strokeOpacity": 0.95,
"stroke": "#63ba4d",
"strokeWidth": 2
},
"label": {
"text": "start",
"fontSize": 12,
"refX": 0.5,
"refY": "100%",
"refY2": 4,
"textAnchor": "middle",
"textVerticalAnchor": "top"
},
"path": {
"stroke": "#63ba4d"
}
},
"visible": true,
"shape": "circle",
"id": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4",
"zIndex": 1,
"data": {
"nodeType": "startEvent",
"appType": "basic",
"nodeName": "start",
"icon": "icon-circle",
"description": "The start node of the playbook. A playbook must have one and only one start node. You must configure input data for the playbook.",
"cascaderValue": []
},
"markup": [{
"tagName": "circle",
"selector": "body"
}, {
"tagName": "text",
"selector": "label"
}],
"isNode": true
}, {
"shape": "custom-edge",
"attrs": {
"line": {
"stroke": "#63ba4d",
"targetMarker": {
"stroke": "#63ba4d"
}
}
},
"zIndex": 1,
"id": "5293c3f9-e1c9-4a49-b0eb-635067dc67e8",
"data": {
"nodeType": "sequenceFlow",
"appType": "basic",
"icon": "icon-upper-right-arrow",
"isRequired": true
},
"isNode": false,
"source": {
"cell": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4"
},
"target": {
"cell": "19fca1bc-4cf1-491e-9ae4-ee5d3f0c2f61"
},
"router": {
"name": "normal"
},
"visible": true,
"vertices": [{
"x": -382,
"y": -247
}]
}, {
"position": {
"x": 140,
"y": -155
},
"size": {
"width": 36,
"height": 36
},
"attrs": {
"body": {
"fill": "white",
"strokeOpacity": 0.95,
"stroke": "#d93026",
"strokeWidth": 2
},
"path": {
"r": 12,
"refX": "50%",
"refY": "50%",
"fill": "#d93026",
"strokeOpacity": 0.95,
"stroke": "#d93026",
"strokeWidth": 4
},
"label": {
"text": "end",
"fontSize": 12,
"refX": 0.5,
"refY": "100%",
"refY2": 4,
"textAnchor": "middle",
"textVerticalAnchor": "top"
}
},
"visible": true,
"shape": "circle",
"id": "317dd1be-2d20-460e-977e-1fc936ffb583",
"zIndex": 1,
"data": {
"nodeType": "endEvent",
"appType": "basic",
"nodeName": "end",
"icon": "icon-radio-off-full",
"description": "end"
},
"markup": [{
"tagName": "circle",
"selector": "body"
}, {
"tagName": "circle",
"selector": "path"
}, {
"tagName": "text",
"selector": "label"
}],
"isNode": true
}, {
"position": {
"x": -190,
"y": -280
},
"size": {
"width": 137,
"height": 66
},
"view": "react-shape-view",
"attrs": {
"label": {
"text": "file_report"
}
},
"shape": "activity",
"id": "19fca1bc-4cf1-491e-9ae4-ee5d3f0c2f61",
"zIndex": 1,
"data": {
"isDebug": false,
"nodeType": "action",
"appType": "component",
"nodeName": "file_report",
"valueData": {
"userId": "",
"resource": "${event.file}",
"cloudUserId": "7f7cd2ebedc544f7bf9be74dab7fcca4"
},
"description": "Gets detailed static and dynamic analysis reports for a file. The reports include a summary, network behavior, behavioral signatures, static information, dropped file behavior, process behavior, and antivirus scan engine detection results.",
"advance": {
"inputParamMode": false,
"onError": "stop_cur_flow",
"rspStatusType": 3,
"rspStatusThreshold": 0
},
"componentName": "Threatbook",
"actionName": "fileReport",
"status": "success"
},
"isNode": true
}, {
"position": {
"x": -190,
"y": -170
},
"size": {
"width": 137,
"height": 66
},
"view": "react-shape-view",
"attrs": {
"label": {
"text": "ioc_report"
}
},
"shape": "activity",
"id": "e0082b2e-d82c-464f-a22f-9b67eb47a363",
"zIndex": 1,
"data": {
"isDebug": false,
"nodeType": "action",
"appType": "component",
"nodeName": "ioc_report",
"valueData": {
"cloudUserId": "7f7cd2ebedc544f7bf9be74dab7fcca4",
"resource": "${event.ioc}"
},
"description": "Analyzes IP addresses or domain names for outbound access scenarios, such as office or production networks. It uses rules to accurately determine if an IP address or domain name is malicious, its risk severity level, and its confidence level. It also identifies threats such as C2 servers, malware, and miner pools, and provides related security event or threat actor tags.",
"advance": {
"inputParamMode": false,
"onError": "stop_cur_flow",
"rspStatusType": 3,
"rspStatusThreshold": 0
},
"componentName": "Threatbook",
"actionName": "iocReport",
"status": "failed",
"customInput": false,
"id": 0,
"name": "iocReport",
"operateType": "general",
"parameters": [{
"dataType": "String",
"defaultValue": "",
"description": "",
"enDescription": "",
"name": "userId",
"needCascader": false,
"required": false,
"tags": ""
}, {
"dataType": "String",
"defaultValue": "",
"description": "The account ID configured for Threatbook in Security Center under Feature Settings > Multicloud Configuration Management.",
"enDescription": "",
"name": "cloudUserId",
"needCascader": false,
"required": true,
"tags": ""
}, {
"dataType": "String",
"defaultValue": "",
"description": "An IP address or domain name. You can query up to 100 resources in a batch. Separate them with commas. You can query an IP address with a port to get high-confidence results. Example of IP addresses with ports in a request: 8.8.8.8:143,0.0.0.0:80 ",
"enDescription": "",
"name": "resource",
"needCascader": false,
"required": true,
"tags": ""
}],
"riskLevel": 2,
"actionDisplayName": "iocReport"
},
"isNode": true
}, {
"position": {
"x": -190,
"y": -55
},
"size": {
"width": 137,
"height": 66
},
"view": "react-shape-view",
"attrs": {
"label": {
"text": "ip_reputation"
}
},
"shape": "activity",
"id": "8afdafcc-32aa-4ab2-b8b2-abafc4314e85",
"zIndex": 1,
"data": {
"nodeType": "action",
"appType": "component",
"nodeName": "ip_reputation",
"valueData": {
"cloudUserId": "7f7cd2ebedc544f7bf9be74dab7fcca4",
"resource": "${event.ip}"
},
"description": "Analyzes IP addresses for inbound scenarios. It provides the geographic location and ASN information of the IP address. It uses rules to accurately determine if the IP address is malicious, its risk severity level, and its confidence level. It also identifies threat types, such as exploits and zombies, and provides related security event or threat actor tags.",
"advance": {
"inputParamMode": false,
"onError": "stop_cur_flow",
"rspStatusType": 3,
"rspStatusThreshold": 0
},
"componentName": "Threatbook",
"actionName": "ipReputation"
},
"isNode": true
}, {
"shape": "custom-edge",
"attrs": {
"line": {
"stroke": "#d93026",
"targetMarker": {
"stroke": "#d93026"
}
}
},
"zIndex": 1,
"id": "ae6ca05c-ebd1-41f1-a94d-489fdc308861",
"data": {
"nodeType": "sequenceFlow",
"appType": "basic"
},
"router": {
"name": "manhattan",
"args": {
"padding": 5,
"excludeHiddenNodes": true,
"excludeNodes": ["clone_node_id"]
}
},
"source": {
"cell": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4"
},
"visible": true,
"target": {
"cell": "e0082b2e-d82c-464f-a22f-9b67eb47a363"
}
}, {
"shape": "custom-edge",
"attrs": {
"line": {
"stroke": "#d93026",
"targetMarker": {
"stroke": "#d93026"
}
}
},
"zIndex": 1,
"id": "8f084c6d-9afd-4ecb-8c9d-3c7824f9de2f",
"data": {
"nodeType": "sequenceFlow",
"appType": "basic"
},
"router": {
"name": "normal"
},
"source": {
"cell": "58d87b7d-28d9-4f0e-b135-4adc4f1a70e4"
},
"visible": true,
"target": {
"cell": "8afdafcc-32aa-4ab2-b8b2-abafc4314e85"
},
"vertices": [{
"x": -382,
"y": -22
}]
}, {
"shape": "custom-edge",
"attrs": {
"line": {
"stroke": "#63ba4d",
"targetMarker": {
"stroke": "#63ba4d"
}
}
},
"zIndex": 1,
"id": "e55e80d8-fab6-42ac-91ab-da7697ec80dd",
"data": {
"nodeType": "sequenceFlow",
"appType": "basic"
},
"router": {
"name": "normal"
},
"source": {
"cell": "19fca1bc-4cf1-491e-9ae4-ee5d3f0c2f61"
},
"visible": true,
"target": {
"cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
},
"vertices": [{
"x": 158,
"y": -247
}]
}, {
"shape": "custom-edge",
"attrs": {
"line": {
"stroke": "#d93026",
"targetMarker": {
"stroke": "#d93026"
}
}
},
"zIndex": 1,
"id": "ba2021dc-533b-4ba3-a1a7-69f05f3c7515",
"data": {
"nodeType": "sequenceFlow",
"appType": "basic"
},
"router": {
"name": "manhattan",
"args": {
"padding": 5,
"excludeHiddenNodes": true,
"excludeNodes": ["clone_node_id"]
}
},
"source": {
"cell": "8afdafcc-32aa-4ab2-b8b2-abafc4314e85"
},
"visible": true,
"target": {
"cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
}
}, {
"shape": "custom-edge",
"attrs": {
"line": {
"stroke": "#d93026",
"targetMarker": {
"stroke": "#d93026"
}
}
},
"zIndex": 1,
"id": "c3c22836-585a-4f5e-a3ec-92ecedfad6ba",
"data": {
"nodeType": "sequenceFlow",
"appType": "basic"
},
"router": {
"name": "manhattan",
"args": {
"padding": 5,
"excludeHiddenNodes": true,
"excludeNodes": ["clone_node_id"]
}
},
"source": {
"cell": "e0082b2e-d82c-464f-a22f-9b67eb47a363"
},
"visible": true,
"target": {
"cell": "317dd1be-2d20-460e-977e-1fc936ffb583"
}
}]
}fileReport
Use this action to retrieve detailed static and dynamic analysis reports for a file, identified by its hash.
The report covers: summary, network behavior, behavioral signatures, static information, dropped file behavior, process behavior, and antivirus scan engine detection results.
For the full ThreatBook API specification, see File Reputation Report.
Input parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
userId | No | The Alibaba Cloud account ID. Accepts a member account ID managed by the current account. If left blank, the current account ID is used. For member account setup, see Multi-account security management. | — |
cloudUserId | Yes | Your ThreatBook account ID, obtained when you authorized ThreatBook in Security Center. | 7f7c*************7fcca4 |
resource | Yes | The hash of the file. Supported algorithms: SHA256, SHA1, MD5. | 44d88612*************1278abb02f |
Output parameters
| Parameter | Type | Description |
|---|---|---|
multiengines | JSON object | Detection results from antivirus scan engines. Key fields: result (safe, or a virus tag if a threat is detected) and scan_time (e.g., 2019-10-22 16:17:48). |
summary | JSON object | Comprehensive analysis summary. Key fields described below. |
signature | JSON array | Behavioral signatures. Each item includes severity (integer; higher = more severe), references (JSON array), sig_class, name, description, markcount (mark count), marks (raw signature data, JSON array), families (sample families, JSON array), attck_id, and attck_info (ATT&CK details, JSON array). |
static | JSON object | Static analysis information. For a full example, see Complete example of a file static information report response. |
pstree | JSON object | Process behavior tree. |
network | JSON object | Network behavior. Sub-fields include: fingerprint (fingerprint information, JSON array), tls (TLS protocol, JSON array), udp (UDP protocol, JSON array), dns_servers (DNS service, JSON array), http (HTTP protocol, JSON array), irc (IRC protocol, JSON array), smtp (SMTP protocol, JSON array), tcp (TCP protocol, JSON array), smtp_ex (extended SMTP protocol data, JSON array), mitm (man-in-the-middle, JSON array), hosts (network hosts, JSON array), dns (Domain Name System, JSON array), http_ex (extended HTTP protocol data, JSON array), domains (domain names, JSON array), dead_hosts (dead hosts, JSON array), icmp (ICMP protocol, JSON array), and https_ex (extended HTTPS protocol data, JSON array). |
dropped | JSON array | Dropped file behavior. Each item includes: sha1, sha256, md5 (file hashes), urls (extracted URLs, JSON array), size (file size, integer), filepath (file path), name (file name), crc32 (CRC32 hash), ssdeep (SSDeep hash), type (file type), and yara (YARA results, JSON array). |
strings | JSON object | Extracted strings: sha256 (static file strings) and pcap (traffic strings). |
permalink | String | URL of the web sandbox report page. |
`summary` field details:
| Field | Description |
|---|---|
threat_level | Comprehensive threat level: malicious, suspicious, safe, or unknown. Determined from static analysis, multi-engine antivirus scans, and sandbox dynamic analysis. |
malware_type | Threat classification. See Complete list of sample threat classifications. |
malware_family | Virus family (e.g., Xorddos). |
is_whitelist | true if the file is on the whitelist; false otherwise. |
submit_time | Time the file was submitted (e.g., 2019-01-22 17:36:21). |
file_name | File name. |
file_type | File type. |
sample_sha256 | SHA256 hash. |
md5 | MD5 hash. |
sha1 | SHA1 hash. |
scenes | Detected scenario: Cybercrime, CS_Detect (Cobalt Strike), RT_Tools (red team tool), Exploit, or HW202X (major event support). |
tag.s | Static tags (JSON array), e.g., "abnormal timestamp". See some common sample tags. |
tag.x | Antivirus engine detection tags. |
threat_score | Numerical threat score. |
sandbox_type | Sandbox environment used for this analysis. See complete list of sandbox runtime environments. |
sandbox_type_list | All sandbox environments where the sample was successfully analyzed. |
multi_engines | Detection rate across antivirus scan engines. |
iocReport
Use this action to check whether an IP address or domain name involved in outbound connections — such as traffic from office networks or production environments — is malicious.
The action determines maliciousness, risk level, and confidence level. It also identifies threat types such as command and control (C2) servers, malware, and Miner Pools, and returns related security event and threat actor tags.
For the full ThreatBook API specification, see Compromise Detection.
Input parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
userId | No | The Alibaba Cloud account ID. Accepts a member account ID managed by the current account. If left blank, the current account ID is used. | — |
cloudUserId | Yes | Your ThreatBook account ID, obtained when you authorized ThreatBook in Security Center. | 7f7c*************7fcca4 |
resource | Yes | An IP address or domain name. Query up to 100 resources per batch, separated by commas. To get higher-confidence results for an IP address, include the port (e.g., 0.0.0.0:80). | test.com or 0.0.0.0:80 |
Output parameters
The response is keyed by resource type (ip or domain).
Fields shared by both `ip` and `domain`:
| Parameter | Description |
|---|---|
is_malicious | true (malicious) or false (not malicious). |
confidence_level | Confidence level of the assessment: high, medium, or low. |
severity | Threat severity: critical, high, medium, low, or info (no threat). |
judgments | Threat type, based on the Indicator of Compromise (IOC) assessment. Malicious types: Command and Control (C2): Remote Control, Sinkhole C2 (C2 server sinkholed by a security organization), MiningPool (Miner Pool), CoinMiner (private miner pool), Malware. Non-malicious types: Whitelist, Info. For child classes, see all threat types. |
tags_classes | Related threat actors or security events (JSON array). Each item includes tags_type (e.g., industry, gangs, virus_family) and tags (e.g., APT, OceanLotus). |
permalink | URL of the complete threat intelligence analysis page for the IP address or domain name. |
Additional field for `domain`:
| Parameter | Description |
|---|---|
categories | Domain name categorization (JSON object): first_cats (level 1 category, array) and second_cats (level 2 category, string). |
ipReport
Use this action to assess the reputation of an inbound IP address — for example, source IPs from external connections hitting your infrastructure.
The action returns geographic location, ASN information, maliciousness, risk level, and confidence level. It also identifies threat types such as spam, zombies, and scanners, and returns related security event and threat actor tags.
For the full ThreatBook API specification, see IP Reputation.
Input parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
userId | No | The Alibaba Cloud account ID. Accepts a member account ID managed by the current account. If left blank, the current account ID is used. | — |
cloudUserId | Yes | Your ThreatBook account ID, obtained when you authorized ThreatBook in Security Center. | 7f7c*************7fcca4 |
resource | Yes | An IP address or a comma-separated list of up to 100 IP addresses. | 0.0.0.0 |
Output parameters
| Parameter | Description |
|---|---|
basic | Geographic and carrier information (JSON object): carrier, and location (with country, country_code, province, city, lng, lat). |
is_malicious | true (malicious) or false (not malicious). |
confidence_level | Confidence level, determined by the intelligence source and confidence model: high, medium, or low. |
severity | Threat severity: critical, high, medium, low, or info (no threat). |
judgments | Comprehensive threat type (JSON array). Malicious types: Spam, Zombie (compromised computer under remote control), Scanner, Exploit (vulnerability exploit), botnet, Brute Force. Non-malicious types: Whitelist, Info. For child classes, see full set of threat types. |
tags_classes | Related threat actors or security events (JSON array). Each item includes tags_type (e.g., industry, gangs, virus_family) and tags (e.g., Mirai). |
asn | Autonomous System Number (ASN) information (JSON object): number (ASN), info (AS name), and rank (risk value from 0 to 4; higher = higher risk). |
update_time | Last update time of the intelligence. |
scene | Application scenario of the IP address (e.g., leased line, data center). See application scenario classification. |
feature | Asset features (JSON array). Each item includes category, tag_name, and tag_desc. See IP Reputation advanced field classification. |
entity | Attributed entity (JSON array). Each item includes category, type, tag_name, and tag_desc. |
hist_behavior | Attack behavior history (JSON array). Each item includes category, tag_name, tag_desc, and vuln_id (when category is "Vulnerability Exploit"). |
evaluation | Impact assessment (JSON object): active (popularity: high, medium, or low) and honeypot_hit (true if captured by a honeypot). |
fraud | Fraudulent behavior (JSON array). Each item includes tag_name and tag_desc. |
permalink | URL of the intelligence query result page for the IP address. |
Reference
For ThreatBook response status codes and message descriptions, see Response status codes and message descriptions.