name: "SentinelOne SDL Alerts → OCSF" description: "Maps a SentinelOne SDL Unified Alert (GraphQL alerts query, results_path = data — edges flattened to nodes) to OCSF Detection Finding fields." field_mappings: title: "name" description: "description" # toSeverity maps CRITICAL→5, HIGH→3, MEDIUM→2, LOW→1, INFO→1. severity: "severity" source: "detectionSource.vendor" # results_path = data; source_path is JSONata over ONE alert node. ocsf: # ── Finding ─────────────────────────────────────────────────────── - { source_path: "id", ocsf_field: "finding_info.uid" } - { source_path: "name", ocsf_field: "finding_info.title" } - { source_path: "description", ocsf_field: "finding_info.desc" } - { source_path: "detectedAt", ocsf_field: "finding_info.created_time" } - { source_path: "updatedAt", ocsf_field: "finding_info.modified_time" } - { source_path: "firstSeenAt", ocsf_field: "finding_info.first_seen_time" } - { source_path: "lastSeenAt", ocsf_field: "finding_info.last_seen_time" } - { source_path: "externalId", ocsf_field: "finding_info.uid_alt" } # ── Incident state ──────────────────────────────────────────────── - { source_path: "status", ocsf_field: "status" } - { source_path: "analystVerdict", ocsf_field: "disposition" } - { source_path: "classification", ocsf_field: "activity_name" } - { source_path: "confidenceLevel", ocsf_field: "confidence" } - { source_path: "attackSurfaces[0]", ocsf_field: "metadata.labels" } # ── Detection analytic ──────────────────────────────────────────── - { source_path: "analytics.name", ocsf_field: "finding_info.analytic.name" } - { source_path: "analytics.uid", ocsf_field: "finding_info.analytic.uid" } - { source_path: "analytics.category", ocsf_field: "finding_info.analytic.category" } - { source_path: "detectionSource.vendor", ocsf_field: "metadata.product.vendor_name" } - { source_path: "detectionSource.product", ocsf_field: "metadata.product.name" } - { source_path: "detectionSource.engine", ocsf_field: "metadata.product.feature.name" } # ── Affected device ─────────────────────────────────────────────── - { source_path: "asset.name", ocsf_field: "device.hostname" } - { source_path: "asset.id", ocsf_field: "device.uid" } - { source_path: "asset.osType", ocsf_field: "device.os.type" } - { source_path: "asset.osVersion", ocsf_field: "device.os.build" } - { source_path: "asset.agentVersion", ocsf_field: "device.agent.version" } - { source_path: "asset.name", ocsf_field: "src_endpoint.hostname" } - { source_path: "asset.lastLoggedInUser", ocsf_field: "user.name" } # ── Offending process (actor) ───────────────────────────────────── - { source_path: "process.cmdLine", ocsf_field: "actor.process.cmd_line" } - { source_path: "process.parentName", ocsf_field: "actor.process.parent_process.name" } - { source_path: "process.username", ocsf_field: "actor.user.name" } - { source_path: "process.file.name", ocsf_field: "actor.process.file.name" } - { source_path: "process.file.path", ocsf_field: "actor.process.file.path" } - { source_path: "process.file.md5", ocsf_field: "actor.process.file.hashes.md5" } - { source_path: "process.file.sha1", ocsf_field: "actor.process.file.hashes.sha1" } - { source_path: "process.file.sha256", ocsf_field: "actor.process.file.hashes.sha256" } # ── Assignee ────────────────────────────────────────────────────── - { source_path: "assignee.fullName", ocsf_field: "assignee.name" } - { source_path: "assignee.email", ocsf_field: "assignee.email_addr" }