ecc301d95d
ThreatConnect API v3, 9 commands: list/get/create/delete indicators, list/get/ create groups, add indicator tag. HMAC-SHA256 signed auth, stdlib-only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
114 lines
4.3 KiB
YAML
114 lines
4.3 KiB
YAML
id: threatconnect
|
|
name: ThreatConnect
|
|
version: 1.0.0
|
|
description: "ThreatConnect (API v3) — threat intelligence: query and read indicators and groups (TQL), create and delete indicators, create groups, and tag indicators. HMAC-SHA256 signed authentication; stdlib-only, no extra Python dependencies."
|
|
changelog: "1.0.0 — Initial release: list/get/create/delete indicators, list/get/create groups, add indicator tag."
|
|
category: threat_intel
|
|
|
|
# Per-instance configuration. Requests are signed with HMAC-SHA256 using the
|
|
# access ID + secret key (header 'Authorization: TC <accessId>:<signature>').
|
|
config_schema:
|
|
properties:
|
|
base_url:
|
|
type: string
|
|
description: "ThreatConnect base URL (e.g. https://app.threatconnect.com)"
|
|
access_id:
|
|
type: string
|
|
description: "API access ID"
|
|
api_secret_key:
|
|
type: string
|
|
description: "API secret key"
|
|
x-soar-sensitive: true
|
|
required:
|
|
- base_url
|
|
- access_id
|
|
- api_secret_key
|
|
|
|
commands:
|
|
- id: list_indicators
|
|
name: tc-list-indicators
|
|
description: "Query indicators using a TQL expression."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
tql: { type: string, description: "ThreatConnect Query Language expression (e.g. summary contains \"1.2.3.4\")" }
|
|
limit: { type: number, description: "Max indicators (default 50)" }
|
|
required: []
|
|
outputs_schema: { properties: {} }
|
|
- id: get_indicator
|
|
name: tc-get-indicator
|
|
description: "Get a single indicator by ID."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
indicator_id: { type: string, description: "Indicator ID" }
|
|
required: [indicator_id]
|
|
outputs_schema: { properties: {} }
|
|
- id: create_indicator
|
|
name: tc-create-indicator
|
|
description: "Create an indicator (e.g. Address, Host, File, URL, EmailAddress)."
|
|
inputs_schema:
|
|
properties:
|
|
type: { type: string, description: "Indicator type: Address, Host, File, URL, or EmailAddress" }
|
|
summary: { type: string, description: "Indicator value (IP, domain, hash, URL, email)" }
|
|
owner_name: { type: string, description: "Owner (organization) name" }
|
|
rating: { type: number, description: "Threat rating 0-5 (optional)" }
|
|
confidence: { type: number, description: "Confidence 0-100 (optional)" }
|
|
required: [type, summary]
|
|
outputs_schema: { properties: {} }
|
|
- id: delete_indicator
|
|
name: tc-delete-indicator
|
|
description: "Delete an indicator by ID."
|
|
inputs_schema:
|
|
properties:
|
|
indicator_id: { type: string, description: "Indicator ID" }
|
|
required: [indicator_id]
|
|
outputs_schema: { properties: {} }
|
|
- id: list_groups
|
|
name: tc-list-groups
|
|
description: "Query groups (incidents, threats, campaigns, ...) using a TQL expression."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
tql: { type: string, description: "TQL expression" }
|
|
limit: { type: number, description: "Max groups (default 50)" }
|
|
required: []
|
|
outputs_schema: { properties: {} }
|
|
- id: get_group
|
|
name: tc-get-group
|
|
description: "Get a single group by ID."
|
|
risk: read
|
|
inputs_schema:
|
|
properties:
|
|
group_id: { type: string, description: "Group ID" }
|
|
required: [group_id]
|
|
outputs_schema: { properties: {} }
|
|
- id: create_group
|
|
name: tc-create-group
|
|
description: "Create a group (Incident, Threat, Campaign, Adversary, ...)."
|
|
inputs_schema:
|
|
properties:
|
|
type: { type: string, description: "Group type: Incident, Threat, Campaign, Adversary, Document, ..." }
|
|
name: { type: string, description: "Group name" }
|
|
owner_name: { type: string, description: "Owner (organization) name" }
|
|
required: [type, name]
|
|
outputs_schema: { properties: {} }
|
|
- id: add_indicator_tag
|
|
name: tc-add-indicator-tag
|
|
description: "Add a tag to an indicator."
|
|
inputs_schema:
|
|
properties:
|
|
indicator_id: { type: string, description: "Indicator ID" }
|
|
tag: { type: string, description: "Tag name" }
|
|
required: [indicator_id, tag]
|
|
outputs_schema: { properties: {} }
|
|
|
|
- id: test_connection
|
|
name: tc-test-connection
|
|
description: "Verify connectivity and the signed credentials (used by the Test button)."
|
|
risk: read
|
|
inputs_schema:
|
|
properties: {}
|
|
required: []
|
|
outputs_schema: { properties: {} }
|