Creating the Threat Triage Rule Configuration
The goal of threat triage is to prioritize the alerts that pose the greatest threat and need urgent attention. To create a threat triage rule configuration, you must first define your rules. Each rule has a predicate to determine whether or not the rule applies. The threat score from each applied rule is aggregated into a single threat triage score that is used to prioritize high risk threats.
Following are some examples:
- Rule 1
If a threat intelligence enrichment type zeusList is alerted, imagine that you want to receive an alert score of 5.
- Rule 2
If the URL ends with neither .com nor .net, then imagine that you want to receive an alert score of 10.
- Rule 3
For each message, the triage score is the maximum score across all conditions.
These example rules become the following example configuration:
“triageConfig” : { “riskLevelRules” : [ { “name” : “zeusList is alerted" “comment” : “Threat intelligence enrichment type zeusList is alerted." “rule”: "exists(threatintels.hbaseThreatIntel.domain_without_subdomains.zeusList)” “score” : 5 } { “name” : “Does not end with .com or .net" “comment” : “The URL ends with neither .com nor .net." “rule”: “not(ENDS_WITH(domain_without_subdomains, ‘.com’) or ENDS_WITH(domain_without_subdomains, ‘.net’))“ : 10 “score” : 10 } ] ,“aggregator” : “MAX” ,”aggregationConfig” : { } }
You can use the 'reason' field to generate a message explaining why a rule fired. One or more rules may fire when triaging a threat. Having detailed, contextual information about the environment when a rule fired can greatly assist actioning the alert. For example:
- Rule 1
For hostname, the value exceeds threshold of value-threshold, receive an alert score of 10.
This example rule becomes the following example configuration:
“triageConfig” : { “riskLevelRules” : [ { “name” : “Abnormal Value" “comment” : “The value has exceeded the threshold", "reason": "FORMAT('For '%s' the value '%d' exceeds threshold of '%d', hostname, value, value_threshold)" “rule”: "value > value_threshold”, “score” : 10 } ], “aggregator” : “MAX”, ”aggregationConfig” : { } }
If the value threshold is exceeded, Threat Triage will generate a message similar to the following:
"threat.triage.score": 10.0, "threat.triage.rules.0.name": "Abnormal Value", "threat.triage.rules.0.comment": "The value has exceeded the threshold", "threat.triage.rules.0.score": 10.0, "threat.triage.rules.0.reason": "For '10.0.0.1' the value '101' exceeds threshold of '42'"
where
- riskLevelRules
This is a list of rules (represented as Stellar expressions) associated with scores with optional names and comments.
- name
The name of the threat triage rule.
- comment
A comment describing the rule.
- reason
An optional Stellar expression that when executed results in a custom message describing why the rule fired.
- rule
The rule, represented as a Stellar statement.
- score
Associated threat triage score for the rule.
- aggregator
An aggregation function that takes all non-zero scores representing the matching queries from
riskLevelRules
and aggregates them into a single score.You can choose between:
- MAX
The maximum of all of the associated values for matching queries.
- MIN
The minimum of all of the associated values for matching queries.
- MEAN
The mean of all of the associated values for matching queries.
- SUM
The sum of all of the associated values for mtching queries.
- POSITIVE_MEAN
The mean of the positive associated values for the matching queries.