Security Runbook
This runbook explains how to triage and respond to Mutant runtime security events using current code behavior.
1. Purpose#
This runbook explains how to triage and respond to Mutant runtime security events using current code behavior.
1.1 Source-of-Truth Alignment#
This runbook is operational guidance. When any statement here conflicts with low-level design, treat the following as authoritative and update this file:
- SECURITY_LLD
- SECURITY_LLD_TRACEABILITY
- ANTITAMPER_PROBE_ENABLEMENT_LLD
- BINARY_ARTIFACT_SECURITY_DEEP_DIVE
- REMOTE_PROCESS_SCAN_DEEP_DIVE
Alignment rules:
- Keep mode and policy semantics identical to LLD definitions.
- Keep environment variable names and defaults identical to implementation.
- Avoid introducing undocumented flags or implied capabilities.
2. Primary Runtime Events#
- signature_failed
- debugger_detected
- sandbox_detected
- process_protection_detected
- integrity_failed
- anti_tamper_probe_error
- remote_process_scan_error
- remote_process_suspicious
- remote_process_critical
- command_blocked
- command_failed
3. Key Controls#
3.1 Policy Controls#
MUTANT_TAMPER_RESPONSE=warn|delay|terminateMUTANT_TAMPER_DELAY_MS= delay duration (0..5000)MUTANT_PROTECTION_PROFILE=minimal|standard|paranoid--signer-authenables trusted signer verification in secure mode.
3.2 Probe Controls#
MUTANT_ENABLE_ANTITAMPER_PROBE=1enables anti-tamper probe execution.MUTANT_ENABLE_PROCESS_PROTECTIONcontrols runner process-protection enforcement when probes are enabled.MUTANT_ENABLE_REMOTE_PROCESS_SCAN=1enables remote scan manager execution.MUTANT_REMOTE_SCAN_MODE=off|observe|enforcecontrols block vs observe behavior.MUTANT_REMOTE_SCAN_MAX_PROCESSESandMUTANT_REMOTE_SCAN_ALLOWLISTtune scan scope.
3.3 Telemetry Controls#
MUTANT_SECURITY_AUDIT=1emits audit lines to stderr.MUTANT_SECURITY_TELEMETRY_FILE=<path>exports JSON telemetry snapshot on exit.
4. First 10 Minutes Checklist#
- Capture stderr output including
[security]and[security-audit]lines. - Save telemetry JSON if enabled.
- Record mode/profile/env values (
MUTANT_*). - Record artifact hash and executable hash.
- Identify whether event is isolated or fleet-wide.
5. Event-by-Event Triage#
5.1 signature_failed#
- Verify trusted signer key configuration.
- Confirm artifact source and release pipeline integrity.
- In production, keep terminate posture until signer chain is trusted.
5.2 debugger_detected#
- Check whether debugger activity is expected for host role.
- Correlate with signature/integrity/process-protection events.
- If unexpected in production, isolate and redeploy trusted artifact.
5.3 sandbox_detected#
- Confirm host classification (real host vs test sandbox).
- Validate if sandbox execution was intended.
- For production, treat unexplained sandbox signals as suspicious.
5.4 process_protection_detected#
- Confirm anti-tamper probe gate was enabled.
- Review probe signal details and confidence values.
- On repeated high-confidence hits, isolate host and inspect instrumentation/hooking context.
5.5 integrity_failed#
- Treat as potential active tampering.
- Isolate host and preserve evidence.
- Re-run artifact on known-clean host to differentiate artifact vs environment compromise.
6. Severity Guidance#
- integrity_failed: critical baseline
- signature_failed: high baseline
- process_protection_detected: high baseline
- debugger_detected: medium baseline
- sandbox_detected: medium baseline
- anti_tamper_probe_error: low to medium (depends on environment)
Production guidance:
- Never downgrade integrity failures below high severity.
- Keep explicit exceptions narrow, temporary, and documented.
7. Evidence Collection Snippets#
7.1 PowerShell#
$ts = Get-Date -Format "yyyyMMdd-HHmmss"
$dir = "./incident-$ts"
New-Item -ItemType Directory -Path $dir | Out-Null
Get-ChildItem Env:MUTANT_* | Out-File "$dir/env.txt"
Get-FileHash .\mutant.exe -Algorithm SHA256 | Out-File "$dir/hashes.txt"
if (Test-Path .\telemetry.json) { Copy-Item .\telemetry.json "$dir/telemetry.json" }
7.2 Linux#
ts=$(date +%Y%m%d-%H%M%S)
dir=incident-$ts
mkdir -p "$dir"
env | grep '^MUTANT_' > "$dir/env.txt"
sha256sum ./mutant > "$dir/hashes.txt"
[ -f ./telemetry.json ] && cp ./telemetry.json "$dir/telemetry.json"
8. Recovery Rules#
- Recover only from trusted, re-verified artifacts.
- Do not globally relax policy to solve one false positive.
- Prefer scoped allowlists and short-lived exceptions.
- Track post-incident hardening actions in backlog.
9. Common Policy and Environment Combinations#
Use these presets as starting points. Prefer short-lived overrides and document every change in incident notes.
9.1 Production Strict (Fail Closed)#
Use when running trusted release artifacts in production.
$env:MUTANT_TAMPER_RESPONSE = "terminate"
$env:MUTANT_PROTECTION_PROFILE = "paranoid"
$env:MUTANT_ENABLE_ANTITAMPER_PROBE = "1"
$env:MUTANT_ENABLE_PROCESS_PROTECTION = "1"
$env:MUTANT_SECURITY_AUDIT = "1"
$env:MUTANT_SECURITY_TELEMETRY_FILE = ".\telemetry.json"
9.2 Production Standard (Balanced)#
Use for broad production rollout with strong defaults and lower friction.
$env:MUTANT_TAMPER_RESPONSE = "terminate"
$env:MUTANT_PROTECTION_PROFILE = "standard"
$env:MUTANT_ENABLE_ANTITAMPER_PROBE = "1"
$env:MUTANT_ENABLE_PROCESS_PROTECTION = "1"
$env:MUTANT_SECURITY_AUDIT = "1"
9.3 Investigation Mode (Delay + Observe)#
Use during controlled triage when you need more evidence before termination.
$env:MUTANT_TAMPER_RESPONSE = "delay"
$env:MUTANT_TAMPER_DELAY_MS = "1500"
$env:MUTANT_PROTECTION_PROFILE = "standard"
$env:MUTANT_ENABLE_ANTITAMPER_PROBE = "1"
$env:MUTANT_ENABLE_PROCESS_PROTECTION = "1"
$env:MUTANT_SECURITY_AUDIT = "1"
$env:MUTANT_SECURITY_TELEMETRY_FILE = ".\telemetry.json"
9.4 Compatibility Triage (Temporary)#
Use only for short-lived false-positive isolation and root-cause analysis.
$env:MUTANT_TAMPER_RESPONSE = "warn"
$env:MUTANT_PROTECTION_PROFILE = "minimal"
$env:MUTANT_ENABLE_ANTITAMPER_PROBE = "1"
$env:MUTANT_ENABLE_PROCESS_PROTECTION = "0"
$env:MUTANT_SECURITY_AUDIT = "1"
9.5 Probe Off (Debug Baseline)#
Use to separate probe-related signals from other runtime controls.
$env:MUTANT_ENABLE_ANTITAMPER_PROBE = "0"
$env:MUTANT_ENABLE_PROCESS_PROTECTION = "0"
$env:MUTANT_TAMPER_RESPONSE = "warn"
9.6 Linux Example (Strict)#
export MUTANT_TAMPER_RESPONSE=terminate
export MUTANT_PROTECTION_PROFILE=paranoid
export MUTANT_ENABLE_ANTITAMPER_PROBE=1
export MUTANT_ENABLE_PROCESS_PROTECTION=1
export MUTANT_SECURITY_AUDIT=1
export MUTANT_SECURITY_TELEMETRY_FILE=./telemetry.json
9.7 Reset to Defaults#
Remove-Item Env:MUTANT_TAMPER_RESPONSE -ErrorAction SilentlyContinue
Remove-Item Env:MUTANT_TAMPER_DELAY_MS -ErrorAction SilentlyContinue
Remove-Item Env:MUTANT_PROTECTION_PROFILE -ErrorAction SilentlyContinue
Remove-Item Env:MUTANT_ENABLE_ANTITAMPER_PROBE -ErrorAction SilentlyContinue
Remove-Item Env:MUTANT_ENABLE_PROCESS_PROTECTION -ErrorAction SilentlyContinue
Remove-Item Env:MUTANT_SECURITY_AUDIT -ErrorAction SilentlyContinue
Remove-Item Env:MUTANT_SECURITY_TELEMETRY_FILE -ErrorAction SilentlyContinue