Files
riposte-marketplace/integrations/sentinelone-sdl/manifest.yaml
T
f3nris 9605e1f0dc feat(agents): operator sheets for 33 integrations (lot 4)
EDR: Wraith (SentinelOne), Talon (CrowdStrike), Nyx (HarfangLab), Bastion
(Defender), Synapse (Cortex XDR), Kestrel (Sophos). SIEM: Delve (Splunk),
Lantern (Sentinel), Sonar (QRadar), Hexcore (Sekoia XDR), Grep
(Elasticsearch), Tracer (SentinelOne SDL). Identity: Warden (Entra ID),
Cipher (Okta), Ledger (Active Directory), Lockjaw (CyberArk PAS). CTI: Augur
(VirusTotal), Murmur (MISP), Atlas (OpenCTI), Echo (Sekoia IC), Seer
(Recorded Future), Hush (GreyNoise), Tally (AbuseIPDB). Sandbox: Scalpel (Joe),
Gauntlet (ANY.RUN), Prism (VMRay). Email: Hook (Proofpoint TAP), Drift
(Mimecast), Riptide (Vade). Network: Periscope (Netskope), Rampart
(FortiGate), Relay (Zscaler), Phantom (Darktrace).

Read-only commands, analyst_l2, a call budget with an order, and the Static
lessons: ids copied from answers only, timestamps passed as given, names over
ids, one variant at most on error. Each sheet passes Riposte's validator;
none is field-tested yet. Each integration gets a patch bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015RhL2gy6Sx6Y3FEsyBE3mZ
2026-10-11 23:00:15 +00:00

120 lines
5.5 KiB
YAML

id: sentinelone_sdl
name: SentinelOne SDL
version: 1.0.1
description: "SentinelOne SDL (Security Data Lake) Unified Alerts via the GraphQL API — alert ingestion with rich filtering, full alert details, status/verdict/assignee updates, analyst notes and mitigation actions."
changelog: "1.0.0 — Initial release: unified alert ingestion (get_alerts) with an exhaustive OCSF mapper, alert details, update (status/verdict/assignee), add note and trigger mitigation action."
category: endpoint
# Per-instance configuration. The Unified Alerts GraphQL endpoint is on the
# tenant console URL; authentication uses an API token (ApiToken scheme).
config_schema:
properties:
url:
type: string
description: "SentinelOne console URL, e.g. https://tenant.sentinelone.net"
api_token:
type: string
description: "SentinelOne API token"
x-soar-sensitive: true
required:
- url
- api_token
auth:
- id: apitoken
type: api_key
in: header
name: Authorization
value_template: "ApiToken {{secret}}"
secret_field: api_token
commands:
# ── Ingestion ───────────────────────────────────────────────────────────────
- id: get_alerts
name: sentinelone-sdl-get-alerts
description: "Fetch Unified Alerts with optional filters. Used for ingestion: results path = data (edges are flattened to alert nodes)."
risk: read
inputs_schema:
properties:
severity: { type: string, description: "Comma-separated severities (CRITICAL,HIGH,MEDIUM,LOW,INFO)" }
status: { type: string, description: "Comma-separated statuses (NEW,IN_PROGRESS,RESOLVED)" }
classification: { type: string, description: "Comma-separated classifications (MALWARE,RANSOMWARE,TROJAN,...)" }
os_type: { type: string, description: "Comma-separated OS types (WINDOWS,LINUX,MACOS)" }
attack_surface: { type: string, description: "Comma-separated attack surfaces (ENDPOINT,CLOUD,IDENTITY,NETWORK,EMAIL)" }
analyst_verdict: { type: string, description: "Comma-separated analyst verdicts" }
asset_id: { type: string, description: "Filter by asset ID" }
external_id: { type: string, description: "Filter by external ID" }
search_text: { type: string, description: "Full-text search on the alert name" }
start_time: { type: string, description: "Lower bound on detectedAt (ISO-8601, epoch, or relative like '24 hours'). Incremental fetch watermark." }
end_time: { type: string, description: "Upper bound on detectedAt (ISO-8601, epoch, or relative)" }
unassigned_only: { type: string, description: "Only unassigned alerts (true/false)" }
unmitigated_only: { type: string, description: "Only unmitigated alerts (true/false)" }
limit: { type: number, description: "Maximum number of alerts (default 50, max 200)" }
required: []
outputs_schema: { properties: {} }
ingest:
results_path: data
dedup_key: id
incremental_field: start_time
- id: get_alert_details
name: sentinelone-sdl-get-alert-details
description: "Get the full details of a single alert, including indicators, observables and related alerts."
risk: read
inputs_schema:
properties:
alert_id: { type: string, description: "Alert ID" }
required: [alert_id]
outputs_schema: { properties: {} }
- id: update_alert
name: sentinelone-sdl-update-alert
description: "Update an alert: status, analyst verdict and/or assignee."
risk: safe_write
inputs_schema:
properties:
alert_id: { type: string, description: "Alert ID" }
status: { type: string, description: "New status (NEW, IN_PROGRESS, RESOLVED)" }
analyst_verdict: { type: string, description: "Analyst verdict (TRUE_POSITIVE_MALWARE, FALSE_POSITIVE_BENIGN, UNDEFINED, ...)" }
assignee_user_id: { type: string, description: "User ID to assign (leave empty to skip)" }
required: [alert_id]
outputs_schema: { properties: {} }
- id: add_note
name: sentinelone-sdl-add-note
description: "Add an analyst note to an alert."
risk: safe_write
inputs_schema:
properties:
alert_id: { type: string, description: "Alert ID" }
note_text: { type: string, description: "Note content" }
required: [alert_id, note_text]
outputs_schema: { properties: {} }
- id: trigger_action
name: sentinelone-sdl-trigger-action
description: "Trigger a mitigation action on an alert (e.g. QUARANTINE, KILL, REMEDIATE)."
risk: destructive
inputs_schema:
properties:
alert_id: { type: string, description: "Alert ID" }
action_id: { type: string, description: "Action ID to trigger" }
action_type: { type: string, description: "Action type (QUARANTINE, UNQUARANTINE, KILL, REMEDIATE, BLOCKLIST_ADD, EXCLUSION_ADD)" }
required: [alert_id, action_id]
outputs_schema: { properties: {} }
# ── Connectivity test ─────────────────────────────────────────────────────
- id: test_connection
name: sentinelone-sdl-test-connection
description: "Verify connectivity and credentials (used by the Test button)."
risk: read
inputs_schema:
properties: {}
required: []
outputs_schema: { properties: {} }
ingestion:
command: get_alerts
mapper: get_alerts
default_incident_type: "SentinelOne SDL Alert"