- Log Stream Overview
- Parser Manager
- Parsers Overview
- View Parser Details
- Create a Custom Parser
- Import Sample Logs
- Define a Subset of the Sample Logs
- Add Conditions
- Add Basic Parser Information
- Extract Event Fields
- Extract Mapped JSON Fields
- Select JSON Fields from a List of Key/Value Pairs
- Select Tokenized JSON Fields from the Values in the Sample Log
- Manually Enter JSON Path Expressions
- Sample JSON Path Expressions for Manual Entry
- Reorder Mapped JSON Fields
- Review the Matching JSON Fields and Values
- Add Logic to JSON Field Extraction
- Expressions for Parser Field Extractions and Enrichment Mapping
- Array Log Sample
- Extract Fields Using Regular Expressions
- Reserved Fields
- Extract Mapped JSON Fields
- Add Event Builder Rules
- Review and Save Parser
- Manage Existing Custom Parsers
- Tokenize Non-Standard Log Files
- Customize a Default Parser
- Duplicate a Parser
- Enable or Disable Parsers
- Parser Updates
- Live Tail
- Enrichments
- Event Filtering
Sample JSON Path Expressions for Manual Entry
Most of the sample JSON path expressions listed in the subsequent sections are based on the following sample JSON payload. Click the arrow to expand the JSON sample.
{
"id": "ac2a0b32-bab7-46f1-9ec2-f0fc4da9f243",
"approx_log_time": 1662749160000,
"subscription_code": "4cvpro",
"rules": [
{
"rule_source": "CR",
"rule_id": "r1",
"rule": "rule name",
"rule_reason": "resolved rule reason",
"rule_severity": "correction prority",
"type": "CR",
"severity": "high",
"rule_usecases": [
"use case1",
"use case2"
],
"tags": [
"t1",
"t2"
],
"mitre_labels": [
{
"technique_key": "T1071",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0001"
},
{
"technique_key": "T1072",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0002"
}
]
},
{
"rule_source": "BEAM",
"rule_id": "r2",
"rule": "rule name",
"rule_reason": "resolved rule reason",
"rule_severity": "correction prority",
"type": "BEAM",
"severity": "medium",
"rule_usecases": [
"use case1",
"use case2"
],
"tags": [
"t1",
"t2"
],
"mitre_labels": [
{
"technique_key": "T1073",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0003"
},
{
"technique_key": "T1074",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0004"
}
]
},
{
"rule_source": "CR",
"rule_id": "r3",
"rule": "rule name",
"rule_reason": "resolved rule reason",
"rule_severity": "correction prority",
"type": "CR",
"severity": "low",
"rule_usecases": [
"use case1",
"use case2"
],
"tags": [
"t1",
"t2"
],
"mitre_labels": [
{
"technique_key": "T1071",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0001"
},
{
"technique_key": "T1072",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0002"
}
]
}
],
"activity_type": "rule-trigger",
"vendor": "Exabeam",
"src_vendor": "crowdstrike",
"product": "Correlation Rule",
"src_product": "falcon",
"metadata_tags": [
"Tag1",
"Tag2",
"Tag3"
],
"entities": [
{
"entity_type": "User",
"entity_key": "user_name",
"event_field": "domain_user_name",
"field_value": "foo@acme"
}
]
}Extract a Value Using an Absolute JSON Path Expression
In each example below, the explicit value of a field is extracted using an absolute JSON path expression. These values are mapped to whichever field you select from the Maps to Field column in the UI.
JSON Path Expression | Description | Sample Outcome |
|---|---|---|
| Extracts the value from the |
|
| Extracts the value from the |
|
| Extracts the first |
|
with the following Extraction Condition: | Extracts the value that matches a specific condition. In this example, the value of the |
|
| Extracts a field value based on a specific filter condition. In this example, the |
|
| Extracts a |
|
| Extracts a |
|
| Extracts the entire dynamic object as a single field. |
|
| Extracts all values from a dynamic object |
|
Extract a a Substring or a Recursive Value from Any Level
In each example below, recursive values are extracted from all occurrences of a specific field, at any level of the JSON structure. These values are mapped to whichever field you select from the Maps to Field column in the UI.
JSON Path Expression | Description | Sample Outcome |
|---|---|---|
| Extracts recursive values from all occurrences of the |
|
| Extracts recursive values from all occurrences of the |
|
| Extracts recursive values from all occurrences of the |
|
| Extracts recursive values from all occurrences of the |
|
| Extracts recursive values from all occurrences of the |
|
| Extracts recursive values from all occurrences of the |
|
Extract a Value Using RegeX
In each example below, a value is extracted and mapped using a specific regex definition in the Substring Regex column of the UI. The regex expression defines both how to identify the value to extract and how to map it.
Hybrid Expression | Description | Sample Outcome |
|---|---|---|
with the following Regex Substring: | Extracts the value of a substring from the first |
|
with the following Regex Substring: | Extracts the value a substring from the first |
|
with the following Regex Substring: | Extracts a value from a nested field. In this example, the first |
|
Extract Values from an Array Object
In each example below, a list of values, a field value, or a sub-string value is extracted from an array object. The syntax of the JSON expression determines which nested values in the array to extract. The extracted values are mapped to whichever field you select from the Maps to Field column in the UI.
JSON Path Expression | Description | Sample Outcome |
|---|---|---|
| Extracts the entire | [
{
"rule_source": "CR",
"rule_id": "r1",
"rule": "rule name",
"rule_reason": "resolved rule reason",
"rule_severity": "correction prority",
"type": "Brute Force",
"rule_usecases": [
"use case1",
"use case2"
],
"tags": [
"t1",
"t2"
],
"mitre_labels": [
{
"technique_key": "T1071",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0004"
},
{
"technique_key": "T1072",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0001"
}
]
},
{
"rule_source": "BEAM",
"rule_id": "r2",
"rule": "rule name",
"rule_reason": "resolved rule reason",
"rule_severity": "correction prority",
"type": "Brute Force",
"rule_usecases": [
"use case1",
"use case2"
],
"tags": [
"t1",
"t2"
],
"mitre_labels": [
{
"technique_key": "T1073",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0004"
},
{
"technique_key": "T1074",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0001"
}
]
}
] |
| Extracts the first |
|
| Extracts a list of all |
|
| Extracts the first |
|
| Extracts a list of |
|
| Extracts the nested values of all the fields in the | [
[
{
"technique_key": "T1071",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0004"
},
{
"technique_key": "T1072",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0001"
}
],
[
{
"technique_key": "T1073",
"technique": "Valid Accounts",
"tactic": "Privilege Escalation",
"tactic_key": "TA0004"
},
{
"technique_key": "T1074",
"technique": "Valid Accounts",
"tactic": "Initial Access",
"tactic_key": "TA0001"
}
]
] |
| Extracts the value of all |
|
| Extracts the value of each |
|
| Extracts the value of each |
|
| Extracts the value of all |
|