Files
splunk-security_content/docs/detections.spec.json
T
2019-10-24 13:05:38 -06:00

1214 lines
36 KiB
JSON

{
"$id": "https://api.splunkresearch.com/schemas/detections.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"phantom": {
"properties": {
"correlation_rule": {
"description": "Various fields to enhance usability in Enterprise Security",
"properties": {
"notable": {
"description": "Various fields associated with creating a notable event",
"properties": {
"nes_fields": {
"description": "A list of suggested fields to be used for notable-event suppression",
"examples": [
"src"
],
"type": "string"
},
"rule_description": {
"description": "Description of the notable event that will display in Incident Review",
"examples": [
"The table represents a list of DNS records and their responses for recently changed corporate domains."
],
"type": "string"
},
"rule_title": {
"description": "Title of the notable event that will display in Incident Review. Add tokenized fieldnames.",
"examples": [
"DNS record changed on $src$"
],
"type": "string"
}
},
"required": [
"rule_description",
"rule_title",
"nes_fields"
],
"type": "object"
},
"risk": {
"description": "Fields associated with assigning risk to objects",
"properties": {
"risk_object": {
"description": "The field to which you are assigning risk",
"examples": [
"src"
],
"type": "string"
},
"risk_object_type": {
"description": "The type of object to which you are assigning risk",
"examples": [
"system"
],
"items": {
"enum": [
"system",
"user",
"other"
],
"type": "string"
},
"maxItems": 1,
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"risk_score": {
"description": "Score assigned to risk_object",
"examples": [
"40"
],
"type": "integer"
}
},
"required": [
"risk_score",
"risk_object",
"risk_object_type"
],
"type": "object"
},
"schedule": {
"description": "Various fields to assist in scheduling the search",
"properties": {
"cron_schedule": {
"description": "Schedule of the search in cron format",
"examples": [
"0 * * * *"
],
"type": "string"
},
"earliest_time": {
"description": "The earliest time the search should run in Splunk format",
"examples": [
"-70m@m"
],
"type": "string"
},
"latest_time": {
"description": "The latest time the search should run again in Splunk format",
"examples": [
"-10m@m"
],
"type": "string"
}
},
"type": "object"
},
"search": {
"description": "The search that will trigger the Phantom playbook",
"examples": [
"| sendalert runphantomplaybook"
],
"type": "string"
},
"suppress": {
"description": "Fields associated with suppressing the creation of multiple alerts",
"properties": {
"suppress_fields": {
"description": "The fields to base the suppression on",
"examples": [
"src"
],
"type": "string"
},
"suppress_period": {
"description": "The length of time the suppression should be in effect",
"examples": [
"28800s"
],
"type": "string"
}
},
"required": [
"suppress_fields",
"suppress_period"
],
"type": "object"
}
},
"required": [
"search",
"schedule"
],
"type": "object"
},
"phantom_server": {
"description": "IP address and username of the Phantom server. Currently, we ship these values as automation (hostname) and encourage users to modify them according to their environments: for example, automation (hostname)",
"examples": [
"automation (hostname)"
],
"type": "string"
},
"playbook_name": {
"description": "Name of the playbook. This name should be the same as the name on the Phantom community repository on github, with underscores, and appended with \"community/<playbook_name>.\" The playbooks are hosted on https://github.com/phantomcyber/playbooks. For example: community/simple_network_enrichment",
"examples": [
"community/dns_hijack_detect_playbook"
],
"type": "string"
},
"playbook_url": {
"description": "URL of the playbook on the Phantom website",
"examples": [
"https://my.phantom.us/4.1/playbook/dns-hijack-investigation/"
],
"type": "string"
},
"sensitivity": {
"description": "TLP colors (White, Green, Amber, Red)",
"examples": [
"green"
],
"type": "string"
},
"severity": {
"description": "Severity in Phantom (High, Medium, Low)",
"examples": [
"high"
],
"type": "string"
}
},
"required": [
"correlation_rule",
"playbook_name",
"phantom_server",
"playbook_url"
],
"type": "object"
},
"splunk": {
"correlation_rule": {
"description": "Various fields to enhance usability in Enterprise Security",
"properties": {
"notable": {
"description": "Various fields associated with creating a notable event",
"properties": {
"nes_fields": {
"description": "A list of suggested fields to be used for notable-event suppression",
"type": "string"
},
"rule_description": {
"description": "Description of the notable event that will display in Incident Review",
"type": "string"
},
"rule_title": {
"description": "Title of the notable event that will display in Incident Review",
"type": "string"
}
},
"required": [
"rule_description",
"rule_title",
"nes_fields"
],
"type": "object"
},
"risk": {
"description": "Fields associated with assigning risk to objects",
"properties": {
"risk_object": {
"description": "TThe field to which you are assigning risk",
"type": "string"
},
"risk_object_type": {
"description": "The type of object to which you are assigning risk",
"items": {
"enum": [
"system",
"user",
"other"
],
"type": "string"
},
"maxItems": 1,
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"risk_score": {
"description": "Score assigned to risk_object",
"type": "integer"
}
},
"required": [
"risk_score",
"risk_object",
"risk_object_type"
],
"type": "object"
},
"schedule": {
"description": "Various fields to assist in scheduling the search",
"properties": {
"cron_schedule": {
"description": "Schedule of the search in cron format",
"type": "string"
},
"earliest_time": {
"description": "The earliest time the search should run in Splunk format",
"type": "string"
},
"latest_time": {
"description": "The latest time the search should run again in Splunk format",
"type": "string"
}
},
"type": "object"
},
"search": {
"description": "The search that will trigger the Phantom playbook",
"type": "string"
},
"suppress": {
"description": "Fields associated with suppressing the creation of multiple alerts",
"properties": {
"suppress_fields": {
"description": "The fields to base the suppression on",
"type": "string"
},
"suppress_period": {
"description": "The length of time the suppression should be in effect",
"type": "string"
}
},
"required": [
"suppress_fields",
"suppress_period"
],
"type": "object"
}
},
"required": [
"search",
"schedule"
],
"type": "object"
},
"type": "object"
},
"uba": {
"properties": {
"correlation_rule": {
"description": "Various fields to enhance usability in Enterprise Security",
"properties": {
"notable": {
"description": "Various fields associated with creating a notable event",
"properties": {
"nes_fields": {
"description": "A list of suggested fields to be used for notable-event suppression",
"type": "string"
},
"rule_description": {
"description": "Description of the notable event that will display in Incident Review",
"type": "string"
},
"rule_title": {
"description": "Title of the notable event that will display in Incident Review",
"type": "string"
}
},
"required": [
"rule_description",
"rule_title",
"nes_fields"
],
"type": "object"
},
"risk": {
"description": "Fields associated with assigning risk to objects",
"properties": {
"risk_object": {
"description": "The field to which you are assigning risk",
"type": "string"
},
"risk_object_type": {
"description": "The type of object to which you are assigning risk",
"items": {
"enum": [
"system",
"user",
"other"
],
"type": "string"
},
"maxItems": 1,
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"risk_score": {
"description": "Score assigned to risk_object",
"type": "integer"
}
},
"required": [
"risk_score",
"risk_object",
"risk_object_type"
],
"type": "object"
},
"schedule": {
"description": "Various fields to assist in scheduling the search",
"properties": {
"cron_schedule": {
"description": "Schedule of the search in cron format",
"type": "string"
},
"earliest_time": {
"description": "The earliest time the search should run in Splunk format",
"type": "string"
},
"latest_time": {
"description": "The latest time the search should run against in Splunk format",
"type": "string"
}
},
"type": "object"
},
"search": {
"description": "The search (in SPL) executed within Splunk Enterprise",
"type": "string"
},
"suppress": {
"description": "Fields associated with suppressing the creation of multiple alerts",
"properties": {
"suppress_fields": {
"description": "The fields to base the suppression on",
"type": "string"
},
"suppress_period": {
"description": "The length of time the suppression should be in effect",
"type": "string"
}
},
"required": [
"suppress_fields",
"suppress_period"
],
"type": "object"
}
},
"required": [
"search",
"schedule"
],
"type": "object"
},
"event_type": {
"description": "An anomaly or threat",
"examples": [
"anomaly"
],
"type": "string"
},
"model": {
"description": "The name of the Splunk UBA model that detected the anomaly.",
"examples": [
"UBA Model"
],
"type": "string"
},
"model_version": {
"description": "URL of the playbook on the Phantom website",
"examples": [
"2.0"
],
"type": "string"
},
"threat_category": {
"description": "The category of a threat in Splunk UBA",
"examples": [
"Malware"
],
"type": "string"
}
},
"required": [
"correlation_rule",
"event_type",
"model",
"model_version",
"threat_category"
],
"type": "object"
}
},
"description": "An object that defines the parameters for detecting things using various Splunk capabilities",
"properties": {
"asset_type": {
"description": "Designates the type of asset being investigated",
"examples": [
"Endpoint"
],
"type": "string"
},
"baselines": {
"description": "An array of the baseline objects to execute before the detection ",
"items": {
"properties": {
"id": {
"description": "UUID of the baseline object",
"examples": [
"c096f721-8842-42ce-bfc7-74bd8c72b7c3"
],
"type": "string"
},
"name": {
"description": "Name of the baseline object",
"examples": [
"Discover DNS records"
],
"type": "string"
},
"type": {
"description": "Type of baseline to execute",
"enum": [
"phantom",
"splunk",
"uba"
],
"examples": [
"splunk"
],
"type": "string"
}
},
"required": [
"type",
"name",
"id"
],
"type": "object"
},
"type": "array"
},
"confidence": {
"description": "Confidence that detected behavior is malicious",
"enum": [
"high",
"medium",
"low"
],
"examples": [
"high"
]
},
"creation_date": {
"description": "The date the story manifest was created",
"examples": [
"2019-02-14"
],
"type": "string"
},
"data_metadata": {
"description": "Information about the data being ingested",
"properties": {
"data_eventtypes": {
"description": "A list of eventtypes, if any, used by this search",
"examples": [
"wineventlog"
],
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"data_models": {
"description": "A list of data models, if any, used by this search",
"examples": [
"Network_Resolution"
],
"items": {
"enum": [
"Alerts",
"Application_State",
"Authentication",
"Certificates",
"Change_Analysis",
"Change",
"Cloud_Infrastructure",
"Malware",
"Email",
"Identity_Management",
"Network_Resolution",
"Network_Traffic",
"Vulnerabilities",
"Web",
"Network_Sessions",
"Updates",
"Risk",
"Endpoint"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"data_source": {
"description": "A high-level description of the type of data needed for this search to complete",
"examples": [
"DNS"
],
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"data_sourcetypes": {
"description": "The list of sourcetypes, if any, used by this search",
"examples": [
"stream:dns"
],
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"providing_technologies": {
"description": "A list of technologies that provide this data",
"examples": [
"Bro"
],
"items": {
"enum": [
"Apache",
"AWS",
"Bro",
"Microsoft Windows",
"Linux",
"macOS",
"Netbackup",
"Splunk Enterprise",
"Splunk Enterprise Security",
"Splunk Stream",
"Active Directory",
"Bluecoat",
"Carbon Black Response",
"Carbon Black Protect",
"CrowdStrike Falcon",
"Microsoft Exchange",
"Nessus",
"Palo Alto Firewall",
"Qualys",
"Sysmon",
"Tanium",
"Ziften",
"OSquery"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
}
},
"required": [
"data_source",
"providing_technologies"
],
"type": "object"
},
"description": {
"description": "A description of what the detection is designed to find",
"examples": [
"The search takes the DNS records and the results of the discovered_dns_records lookup and determines whether any records have changed. It does this by searching DNS response from the Network_Resolution data model within the last day."
],
"type": "string"
},
"detect": {
"anyOf": [
{
"required": [
"splunk"
]
},
{
"required": [
"phantom"
]
},
{
"required": [
"uba"
]
}
],
"properties": {
"phantom": {
"$ref": "#/definitions/phantom"
},
"splunk": {
"$ref": "#/definitions/splunk"
},
"uba": {
"$ref": "#/definitions/uba"
}
},
"type": "object"
},
"eli5": {
"description": "Explain it Like I'm 5: A detailed description of the SPL of the search, written in a style that can be understood by a future Splunk expert",
"examples": [
"Using a lookup \"discover_dns_records\" generated by support search \"Discover DNS records,\" we check previous network traffic and make sure the responses have not changed."
],
"type": "string"
},
"entities": {
"description": "A list of entities outputted by the search",
"examples": [
"dest",
"user"
],
"items": {
"enum": [
"accessKeyId",
"arn",
"awsRegion",
"bucketName",
"City",
"Country",
"dest_port",
"dest",
"event_id",
"instanceId",
"message_id",
"networkAclId",
"process_name",
"process",
"recipient",
"Region",
"resourceId",
"session_id",
"src_ip",
"src_mac",
"src_user",
"src",
"user",
"query"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"how_to_implement": {
"description": "A discussion of how to implement this search, including what needs to be ingested, the config files modified, and suggested per-site modifications",
"examples": [],
"type": "string"
},
"id": {
"description": "The unique identifier for the detection",
"examples": [
"To successfully implement this search, you will need to ensure that DNS data is populating the Network_Resolution data model. It also requires that the \"discover_dns_record\" lookup table be populated by the included support search \"Discover DNS record.\""
],
"type": "string"
},
"investigations": {
"description": "An array of the investigation objects to execute on the detection results ",
"items": {
"properties": {
"id": {
"description": "UUID of the investigation object",
"examples": [
"bc11a8cf-35e7-4bb2-8140-e756cc06fd72"
],
"type": "string"
},
"name": {
"description": "Name of the investigation object ",
"examples": [
"Get DNS Server History for a Host"
],
"type": "string"
},
"type": {
"description": "Type of investigation object",
"enum": [
"phantom",
"splunk",
"uba"
],
"examples": [
"splunk"
],
"type": "string"
}
},
"required": [
"type",
"name",
"id"
],
"type": "object"
},
"type": "array"
},
"known_false_positives": {
"description": "Scenarios in which detected behavior is benign, coupled with suggestions on how to verify the behavior",
"examples": [
"Legitimate DNS changes can be detected in this search. Investigate, verify, and update the list of provided current answers for the domains in question, as appropriate."
],
"type": "string"
},
"maintainers": {
"description": "An array of the current maintainers of the Analytic Story",
"items": {
"properties": {
"company": {
"description": "Company associated with the person maintaining this search",
"examples": [
"Splunk"
],
"type": "string"
},
"email": {
"description": "Email address of the person maintaining this search",
"examples": [
"daftpunk@splunk.com"
],
"type": "string"
},
"name": {
"description": "Name of the person maintaining this search",
"examples": [
"Daft Punk"
],
"type": "string"
}
},
"required": [
"name",
"email",
"company"
],
"type": "object"
},
"type": "array"
},
"mappings": {
"description": "Mappings to various industry standards and frameworks",
"properties": {
"cis20": {
"description": "A list of critical security controls this search helps you implement",
"examples": [
"CIS 12"
],
"items": {
"enum": [
"CIS 1",
"CIS 2",
"CIS 3",
"CIS 4",
"CIS 5",
"CIS 6",
"CIS 7",
"CIS 8",
"CIS 9",
"CIS 10",
"CIS 11",
"CIS 12",
"CIS 13",
"CIS 14",
"CIS 15",
"CIS 16",
"CIS 17",
"CIS 18",
"CIS 19",
"CIS 20"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"emoji": {
"description": "A list of security emojis that will help UBA understand this alert as an external alarm",
"examples": [
"EndPoint"
],
"items": {
"enum": [
"EndPoint",
"AD",
"Firewall",
"ApplicationLog",
"IPS",
"CloudData",
"Correlation",
"Printer",
"Badge"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"kill_chain_phases": {
"description": "A list of kill-chain phases to which the search applies",
"examples": [
"Reconnaissance"
],
"items": {
"enum": [
"Reconnaissance",
"Weaponization",
"Delivery",
"Exploitation",
"Installation",
"Command and Control",
"Actions on Objectives"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"mitre_attack": {
"description": "A list of the techniques and tactics identified by the search",
"examples": [
"Defense Evasion",
"Initial Access"
],
"items": {
"enum": [
"Initial Access",
"Execution",
"Persistence",
"Spearphishing Attachment",
"Spearphishing Link",
"Privilege Escalation",
"Defense Evasion",
"Credential Access",
"Discovery",
"Lateral Movement",
"Collection",
"Exfiltration",
"Command and Control",
"Command and Control Protocol",
"Commonly Used Port",
"Custom Cryptographic Protocol",
"DLL Injection",
"DLL Search Order Hijacking",
"DLL Side-Loading",
"Data Compressed",
"Data Encrypted",
"Data Obfuscation",
"Data Staged",
"Data Transfer Size Limits",
"Data from Local System",
"Data from Network Shared Drive",
"Data from Removable Media",
"Disabling Security Tools",
"Email Collection",
"Execution through API",
"Exfiltration Over Alternative Protocol",
"Exfiltration Over Command and Control Channel",
"Exfiltration Over Other Network Medium",
"Exfiltration Over Physical Medium",
"Exploitation of Vulnerability",
"Fallback Channels",
"File Deletion",
"File System Logical Offsets",
"File System Permissions Weakness",
"File and Directory Discovery",
"Graphical User Interface",
"Hypervisor",
"Indicator Blocking",
"Indicator Removal from Tools",
"Indicator Removal on Host",
"Input Capture",
"InstallUtil",
"Legitimate Credentials",
"Local Network Configuration Discovery",
"Local Network Connections Discovery",
"Local Port Monitor",
"Logon Scripts",
"MSBuild",
"Masquerading",
"Modify Existing Service",
"Modify Registry",
"Multi-Stage Channels",
"Multiband Communication",
"Multilayer Encryption",
"NTFS Extended Attributes",
"Network Service Scanning",
"Network Share Connection Removal",
"Network Sniffing",
"New Service",
"Obfuscated Files or Information",
"Pass the Hash",
"Pass the Ticket",
"Path Interception",
"Peripheral Device Discovery",
"Permission Groups Discovery",
"PowerShell",
"Process Discovery",
"Process Hollowing",
"Query Registry",
"Redundant Access",
"Registry Run Keys / Start Folder",
"Regsvcs/Regasm",
"Regsvr32",
"Remote Desktop Protocol",
"Create Account",
"Remote File Copy",
"Remote Services",
"Remote System Discovery",
"Replication Through Removable Media",
"Rootkit",
"Rundll32",
"Scheduled Task",
"Scheduled Transfer",
"Screen Capture",
"Scripting",
"Security Software Discovery",
"Security Support Provider",
"Service Execution",
"Service Registry Permissions Weakness",
"Shared Webroot",
"Shortcut Modification",
"Software Packing",
"Standard Application Layer Protocol",
"Standard Cryptographic Protocol",
"Standard Non-Application Layer Protocol",
"System Information Discovery",
"System Owner/User Discovery",
"System Service Discovery",
"System Time Discovery",
"Taint Shared Content",
"Third-party Software",
"Timestomp",
"Two-Factor Authentication Interception",
"Uncommonly Used Port",
"Video Capture",
"Valid Accounts",
"Web Service",
"Web Shell",
"Windows Admin Shares",
"Windows Management Instrumentation Event Subscription",
"Windows Management Instrumentation",
"Windows Remote Management",
"Winlogon Helper DLL",
"Exploitation for Privilege Escalation"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"nist": {
"description": "A list of the NIST controls the search helps you implement",
"examples": [
"ID.AM",
"PR.PT"
],
"items": {
"enum": [
"ID.AM",
"ID.RA",
"PR.DS",
"PR.IP",
"PR.AC",
"PR.PT",
"PR.AT",
"PR.MA",
"DE.CM",
"DE.DP",
"DE.AE",
"RS.MI",
"RS.AN",
"RS.RP",
"RS.IM",
"RS.CO",
"RC.IM",
"RC.CO"
]
},
"minItems": 0,
"type": "array",
"uniqueItems": true
}
},
"type": "object"
},
"modification_date": {
"description": "The date of the most recent modification to the search",
"examples": [
"2019-02-14"
],
"type": "string"
},
"name": {
"description": "The name of the detection",
"examples": [
"DNS record changed"
],
"type": "string"
},
"original_authors": {
"description": "A list of the original authors of the search",
"items": {
"properties": {
"company": {
"description": "Company associated with the person who originally authored the search",
"examples": [
"Splunk"
],
"type": "string"
},
"email": {
"description": "Email address of the person who originally authored the search",
"examples": [
"daftpunk@splunk.com"
],
"type": "string"
},
"name": {
"description": "Name of the person who originally authored the search",
"examples": [
"Daft Punk"
],
"type": "string"
}
},
"required": [
"name",
"email",
"company"
],
"type": "object"
},
"type": "array"
},
"references": {
"description": "A list of URLs that give more information about the search",
"examples": [
"https://www.fireeye.com/blog/threat-research/2017/09/apt33-insights-into-iranian-cyber-espionage.html"
],
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"responses": {
"description": "An array of the response objects to exectute on the detection results",
"items": {
"properties": {
"id": {
"description": "UUID of the response object",
"examples": [
"1169w17b-ef78-4b59-aae8-5369073014e1"
],
"type": "string"
},
"name": {
"description": "Name of response object",
"examples": [
"DNS hijack reponse"
],
"type": "string"
},
"type": {
"description": "Type of baseline to execute",
"enum": [
"phantom",
"splunk",
"uba"
],
"examples": [
"phantom"
],
"type": "string"
}
},
"required": [
"type",
"name",
"id"
],
"type": "object"
},
"type": "array"
},
"security_domain": {
"description": "The high-level security area to which the search belongs",
"enum": [
"access",
"endpoint",
"network",
"threat"
],
"examples": [
"endpoint"
]
},
"spec_version": {
"description": "The version of the detection specification this manifest follows",
"examples": [
"2.0"
],
"type": "integer"
},
"type": {
"description": "The type of detection",
"enum": [
"uba",
"splunk",
"phantom"
],
"examples": [
"phantom"
]
},
"version": {
"description": "The version of the detection",
"examples": [
"1"
],
"type": "string"
}
},
"required": [
"confidence",
"creation_date",
"data_metadata",
"eli5",
"how_to_implement",
"known_false_positives",
"maintainers",
"modification_date",
"original_authors",
"description",
"id",
"type",
"security_domain",
"version",
"detect"
],
"title": "Detection Manifest",
"type": "object"
}