Rules of Engagement¶
The Rules of Engagement (ROE) define the safety envelope for an engagement.
They live in hydrasight.roe.json; if absent, a permissive default is used
(wildcard scope, no approval gates, two-hour runtime limit).
Fields¶
| Field | Meaning |
|---|---|
allowed_targets |
List of IPs / CIDRs, or ["*"] for wildcard |
blocked_ports |
Ports that must never be touched |
blocked_modules |
Substring-matched module names that are blocked |
require_approval_for |
Phases (e.g. EXPLOIT, POST_EXPLOIT) requiring approval |
max_runtime_minutes |
Engagement runtime cap (default 120) |
max_threads |
Concurrency limit |
kill_switch |
When true, all dispatch stops immediately |
ROE ∩ authorization¶
The effective scope is the intersection of the ROE allowed_targets and the
operator attestation scope:
- An attestation cannot widen the ROE. If ROE allows
10.0.0.0/8and the operator attests10.0.0.0/8+192.168.0.0/16, a192.168.xtarget is still blocked by ROE. - The ROE cannot widen the attestation. If ROE is wildcard but the operator
only attested
10.0.0.0/8, a192.168.xtarget is denied by authorization. - The
kill_switchoverrides everything.
Use the roe REPL command to view the active envelope and its source file.