name: "VirusTotal Livehunt Files → OCSF" description: "Maps a VirusTotal Livehunt notification file (intelligence/hunting_notification_files, results_path = data) to OCSF Detection Finding fields. Each item is a file that matched a Livehunt YARA ruleset." field_mappings: title: "attributes.meaningful_name" # Bucket the number of malicious AV detections onto the 1-5 incident scale. # No parentheses (right-associative); the lowest band uses '>= 0 ? 1' so the literal sits in a then-branch. severity: "attributes.last_analysis_stats.malicious >= 20 ? 5 : attributes.last_analysis_stats.malicious >= 10 ? 4 : attributes.last_analysis_stats.malicious >= 5 ? 3 : attributes.last_analysis_stats.malicious >= 1 ? 2 : attributes.last_analysis_stats.malicious >= 0 ? 1 : 1" # results_path = data; source_path is JSONata over ONE file object. ocsf: # ── Finding ─────────────────────────────────────────────────────── - { source_path: "id", ocsf_field: "finding_info.uid" } - { source_path: "attributes.meaningful_name", ocsf_field: "finding_info.title" } - { source_path: "context_attributes.notification_date", ocsf_field: "finding_info.created_time" } - { source_path: "attributes.first_submission_date", ocsf_field: "finding_info.first_seen_time" } - { source_path: "attributes.last_submission_date", ocsf_field: "finding_info.last_seen_time" } - { source_path: "attributes.reputation", ocsf_field: "risk_score" } - { source_path: "attributes.last_analysis_stats.malicious", ocsf_field: "count" } # ── Matching Livehunt rule (analytic) ───────────────────────────── - { source_path: "context_attributes.rule_name", ocsf_field: "finding_info.analytic.name" } - { source_path: "context_attributes.ruleset_name", ocsf_field: "finding_info.analytic.uid" } - { source_path: "context_attributes.ruleset_name", ocsf_field: "malware.name" } # ── Matched file ────────────────────────────────────────────────── - { source_path: "attributes.meaningful_name", ocsf_field: "file.name" } - { source_path: "attributes.type_description", ocsf_field: "file.type" } - { source_path: "attributes.size", ocsf_field: "file.size" } - { source_path: "attributes.sha256", ocsf_field: "file.hashes.sha256" } - { source_path: "attributes.sha1", ocsf_field: "file.hashes.sha1" } - { source_path: "attributes.md5", ocsf_field: "file.hashes.md5" } - { source_path: "attributes.ssdeep", ocsf_field: "file.hashes.ssdeep" }