Skip to content

FAQ

Do I have to authorize every time? Yes — HydraSight is deny by default. Use the authorize <ip|cidr> REPL command for interactive work, or drop a hydrasight.authorization.json file in the working directory for CI/CTF runs (auto-loaded at startup).

What happens if I target an IP outside my attested scope? The command is blocked at the Dispatcher chokepoint, a [BLOCKED] message is returned, and a command_blocked record is written to the audit log. Nothing reaches Kali.

What's the difference between ROE and authorization? ROE (hydrasight.roe.json) is the engagement envelope; authorization is the operator's attestation. The effective scope is their intersection — neither can widen the other. The ROE kill-switch blocks everything.

Can I tamper with the audit log? The log is hash-chained. AuditLogger.verify() replays the chain and detects altered lines (hash mismatch) and deleted lines (broken prev_hash link).

Does plain English ever run a tool? No. Conversational input (/ask or bare text) is routed to the chat model and never dispatches. Only explicit /run actions, confirmed plans, and builtins (scan/autopwn) dispatch — and only after the scope gate passes.

Where are secrets handled? Secrets in commands (e.g. sshpass -p, URL credentials, password=) are redacted to [REDACTED] before being written to the audit log.

Does the Docker image contain attack tools? No. The image runs as a non-root user and contains only the orchestrator; all offensive execution happens against the separate Kali bridge service.

Which Python versions are supported? Python 3.10, 3.11, and 3.12, all tested in CI.