feat(sentinelone): expand OCSF mappers with hashes, ids, parent process, identity
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
id: sentinelone
|
||||
name: SentinelOne
|
||||
version: 1.2.2
|
||||
version: 1.2.3
|
||||
description: "SentinelOne Singularity (API v2.1) — endpoint detection & response: triage threats, enrich, isolate/reconnect hosts, mitigate, scan."
|
||||
changelog: "1.2.2 — Added pre-built OCSF mappers (get_threats, get_alerts) for the mapper library. 1.2.1 — Added test_connection for the instance Test button. 1.2.0 — Added 13 commands: threat-analysis, threat-download-from-cloud, abort-endpoint-scan, endpoint-fetch-logs, fetch-file, get-remote-script-task-status/results, get-service-users, list-installed-singularity-marketplace-applications, update-uam-alert-status/verdict, run-powerquery and create-tag-rule (83 commands total). 1.1.0 — Command names prefixed with 'sentinelone-' (e.g. sentinelone-isolate-agent) for easier toolbox search; command IDs unchanged. 1.0.0 — Initial release: 70 commands covering agents, threats, alerts, blocklist/exclusions, IOCs, STAR rules, Deep Visibility, remote scripts, tags, firewall and network discovery based on the SentinelOne API v2.1."
|
||||
changelog: "1.2.3 — Expanded the OCSF mappers (get_threats, get_alerts) with more fields: file hashes (sha1/md5), file ext/size, finding/rule ids, confidence, status, parent process and device/user identity. 1.2.2 — Added pre-built OCSF mappers (get_threats, get_alerts) for the mapper library. 1.2.1 — Added test_connection for the instance Test button. 1.2.0 — Added 13 commands: threat-analysis, threat-download-from-cloud, abort-endpoint-scan, endpoint-fetch-logs, fetch-file, get-remote-script-task-status/results, get-service-users, list-installed-singularity-marketplace-applications, update-uam-alert-status/verdict, run-powerquery and create-tag-rule (83 commands total). 1.1.0 — Command names prefixed with 'sentinelone-' (e.g. sentinelone-isolate-agent) for easier toolbox search; command IDs unchanged. 1.0.0 — Initial release: 70 commands covering agents, threats, alerts, blocklist/exclusions, IOCs, STAR rules, Deep Visibility, remote scripts, tags, firewall and network discovery based on the SentinelOne API v2.1."
|
||||
category: endpoint
|
||||
|
||||
# Per-instance configuration. The scripts build the API base as <url>/web/api/v2.1.
|
||||
|
||||
@@ -1,12 +1,34 @@
|
||||
name: "SentinelOne Alerts → OCSF"
|
||||
description: "Maps a SentinelOne v2.1 cloud-detection alert object (data[]) to OCSF endpoint/file/process fields."
|
||||
description: "Maps a SentinelOne v2.1 cloud-detection alert object (data[]) to OCSF endpoint/file/process/rule fields."
|
||||
field_mappings:
|
||||
title: "ruleInfo.name"
|
||||
severity: "ruleInfo.severity = 'Critical' ? 5 : (ruleInfo.severity = 'High' ? 4 : 3)"
|
||||
description: "alertInfo.eventType"
|
||||
# source_path is evaluated against ONE alert object (alert rule results_path = data).
|
||||
# Paths absent from a given alert are skipped at ingestion, so extra entries are safe.
|
||||
ocsf:
|
||||
# Endpoint
|
||||
- { source_path: "agentDetectionInfo.name", ocsf_field: "src_endpoint.hostname" }
|
||||
- { source_path: "agentDetectionInfo.osName", ocsf_field: "src_endpoint.os.name" }
|
||||
- { source_path: "agentDetectionInfo.osRevision", ocsf_field: "device.os.build" }
|
||||
- { source_path: "agentDetectionInfo.uuid", ocsf_field: "device.uid" }
|
||||
# Rule / finding
|
||||
- { source_path: "ruleInfo.name", ocsf_field: "rule.name" }
|
||||
- { source_path: "ruleInfo.id", ocsf_field: "rule.uid" }
|
||||
- { source_path: "ruleInfo.description", ocsf_field: "rule.desc" }
|
||||
- { source_path: "alertInfo.alertId", ocsf_field: "finding_info.uid" }
|
||||
- { source_path: "alertInfo.dvEventId", ocsf_field: "metadata.original_event_uid" }
|
||||
# Source process
|
||||
- { source_path: "sourceProcessInfo.name", ocsf_field: "process.name" }
|
||||
- { source_path: "sourceProcessInfo.pid", ocsf_field: "process.pid" }
|
||||
- { source_path: "sourceProcessInfo.filePath", ocsf_field: "process.file.path" }
|
||||
- { source_path: "sourceProcessInfo.commandline", ocsf_field: "process.cmd_line" }
|
||||
- { source_path: "sourceProcessInfo.user", ocsf_field: "process.user.name" }
|
||||
- { source_path: "sourceProcessInfo.integrityLevel", ocsf_field: "process.integrity" }
|
||||
- { source_path: "sourceProcessInfo.fileHashSha256", ocsf_field: "file.hashes.sha256" }
|
||||
- { source_path: "sourceProcessInfo.fileHashSha1", ocsf_field: "file.hashes.sha1" }
|
||||
- { source_path: "sourceProcessInfo.fileHashMd5", ocsf_field: "file.hashes.md5" }
|
||||
# Parent process
|
||||
- { source_path: "sourceParentProcessInfo.name", ocsf_field: "process.parent_process.name" }
|
||||
- { source_path: "sourceParentProcessInfo.pid", ocsf_field: "process.parent_process.pid" }
|
||||
- { source_path: "sourceParentProcessInfo.commandline", ocsf_field: "process.parent_process.cmd_line" }
|
||||
|
||||
@@ -1,13 +1,33 @@
|
||||
name: "SentinelOne Threats → OCSF"
|
||||
description: "Maps a SentinelOne v2.1 threat object (data[]) to OCSF endpoint/file/process fields."
|
||||
description: "Maps a SentinelOne v2.1 threat object (data[]) to OCSF endpoint/file/process/malware fields."
|
||||
field_mappings:
|
||||
title: "threatInfo.threatName"
|
||||
severity: "threatInfo.confidenceLevel = 'malicious' ? 4 : 3"
|
||||
description: "threatInfo.classification"
|
||||
# source_path is evaluated against ONE threat object (alert rule results_path = data).
|
||||
# Paths absent from a given threat are skipped at ingestion, so extra entries are safe.
|
||||
ocsf:
|
||||
- { source_path: "agentRealtimeInfo.agentComputerName", ocsf_field: "src_endpoint.hostname" }
|
||||
- { source_path: "agentDetectionInfo.externalIp", ocsf_field: "src_endpoint.ip" }
|
||||
- { source_path: "agentDetectionInfo.agentOsName", ocsf_field: "src_endpoint.os.name" }
|
||||
- { source_path: "threatInfo.sha256", ocsf_field: "file.hashes.sha256" }
|
||||
- { source_path: "threatInfo.filePath", ocsf_field: "file.path" }
|
||||
- { source_path: "threatInfo.maliciousProcessArguments", ocsf_field: "process.cmd_line" }
|
||||
# Endpoint
|
||||
- { source_path: "agentRealtimeInfo.agentComputerName", ocsf_field: "src_endpoint.hostname" }
|
||||
- { source_path: "agentRealtimeInfo.agentDomain", ocsf_field: "src_endpoint.domain" }
|
||||
- { source_path: "agentRealtimeInfo.agentOsType", ocsf_field: "src_endpoint.os.type" }
|
||||
- { source_path: "agentRealtimeInfo.agentUuid", ocsf_field: "device.uid" }
|
||||
- { source_path: "agentDetectionInfo.externalIp", ocsf_field: "src_endpoint.ip" }
|
||||
- { source_path: "agentDetectionInfo.agentOsName", ocsf_field: "src_endpoint.os.name" }
|
||||
- { source_path: "agentDetectionInfo.agentLastLoggedInUserName", ocsf_field: "actor.user.name" }
|
||||
# Threat / malware
|
||||
- { source_path: "threatInfo.threatName", ocsf_field: "malware.name" }
|
||||
- { source_path: "threatInfo.classification", ocsf_field: "malware.classifications" }
|
||||
- { source_path: "threatInfo.threatId", ocsf_field: "finding_info.uid" }
|
||||
- { source_path: "threatInfo.confidenceLevel", ocsf_field: "confidence" }
|
||||
- { source_path: "threatInfo.mitigationStatus", ocsf_field: "status" }
|
||||
# Process
|
||||
- { source_path: "threatInfo.processUser", ocsf_field: "process.user.name" }
|
||||
- { source_path: "threatInfo.maliciousProcessArguments", ocsf_field: "process.cmd_line" }
|
||||
# File
|
||||
- { source_path: "threatInfo.filePath", ocsf_field: "file.path" }
|
||||
- { source_path: "threatInfo.fileExtension", ocsf_field: "file.ext" }
|
||||
- { source_path: "threatInfo.fileSize", ocsf_field: "file.size" }
|
||||
- { source_path: "threatInfo.sha256", ocsf_field: "file.hashes.sha256" }
|
||||
- { source_path: "threatInfo.sha1", ocsf_field: "file.hashes.sha1" }
|
||||
- { source_path: "threatInfo.md5", ocsf_field: "file.hashes.md5" }
|
||||
|
||||
Reference in New Issue
Block a user