Here we specify the mathematics of a practitioner‑oriented design for a normalized, sound and efficient risk engine that is implemented in our Wazuh Active Response (AR) script and integrates:
We provide a simple formula, explain how it addresses various criteria, show how each subsystem contributes, and propose several enhancements commonly used in modern SOAR/SIEM pipelines that we may implement in future updates.
The final risk engine should:
We combine these as:
\(A = G \times C\)
and use $A$ as an anomaly “intensity” metric. In a later release combining RADAR and SONAR signals for a hybrid detection approach, this will also incorporate similar indicators from the MTAD-GAT algorithm used in our SONAR subsystem.
We assign a likelihood $L \in [0,1]$ and impact value $I \in [0,1]$ to each RADAR scenario, which can be combined as:
\(S = L \times I.\)
This simply mirrors standard (e.g. ISO‑based) risk concepts (risk ≈ likelihood × impact).
The DECIPHER subsystem of SATRAP-DL will provide RADAR with boolean indicators such as:
is_ip_blacklistedis_domain_maliciousis_user_compromised_flaggedis_hash_maliciousEach boolean can be mapped to a weight or severity multiplier.
Let $T \in [0,1]$ denote our CTI score, defined as follows:
Example mapping:
| CTI flag | Weight |
|---|---|
| Blacklisted IP | 0.6 |
| Known malicious hash | 0.7 |
| Domain in threat feed | 0.4 |
| User flagged suspicious | 0.5 |
We define a simple aggregator over $n$ CTI indicator weights: \(T = 1 − \prod_i^n (1 − w_i)\)
This produces 0 if no CTI hits, and approaches 1 as more indicators pile up.
where:
We can define and adjust these weighting and normalization terms, with a possible starting point for weights given below (used as default values in our implementation):
We can tune these based on operational experience and SOC requirements.
The tiering mechanism in RADAR revolves around our risk score, which can be empirically studied and adapted.
Low risk $(0.0 \le R < 0.33)$
→ Email only
Medium risk $(0.33 \le R < 0.66)$
→ Email + case creation + light response
High risk $(0.66 \le R \le 1.0)$
→ Notifications + case + strong action (block, isolate, disable credential)
These thresholds can also be calibrated using historical logs and adjusted in the ar.yaml file.
Suppose:
Then:
\[T = 1 - (1 - 0.6)(1 - 0.4) = 1 - 0.4 \times 0.6 = 1 - 0.24 = 0.76\]Finally:
\[R = 0.4 A + 0.4 S + 0.2 T = 0.4 (0.4588) + 0.4 (0.36) + 0.2 (0.76)\] \[= 0.1835 + 0.144 + 0.152 = 0.4795\]which allows to determine the risk tier as medium.
System response → email + case + light containment.
The proposed design provides a model that is mathematically sound, SOC-friendly, and CTI-aware. Moreover:
Features that may be implemented in future releases are discussed in a dedicated page.
The advantages of our model include:
We maintain an ar.yaml configuration file, which implements the above-mentioned parameters.