DaLaw2 a7837af9d7 feat: Phase 2-5 — architecture, detection, security, SOAR, operations
Architecture:
- Hexagonal port traits (10 modules migrated from Arc<Database>)
- Domain model types moved to model/ directory
- Constants centralized + 7 made runtime-configurable via DB
- Dead Error/Log variants cleaned up, SystemLog split

Detection (Phase 5):
- Detection orchestrator with dedup + enrichment + source attribution
- Cross-flow correlation engine: botnet, scan, lateral movement (T9)
- Temporal beaconing detector: CV-based C2 periodicity (T10)
- LRU flow eviction replacing O(n) min_by_key scan (T12)

Security hardening:
- 7 fixes: alg:none, config secret leak, HTTPS open redirect,
  log traversal, HKDF salt, SOAR whitelist+cooldown, operator validation
- 4 memory safety fixes: LRU dedup, frequency cleanup, drift cap, clock
- Envelope encryption for secrets (AES-256-GCM + HKDF)
- 17 new tests (SecretStore + SOAR conditions)

SOAR (Phase 3):
- Multi-condition playbooks (5 condition types, AND logic)
- Playbook update API (PUT + toggle endpoints)

Operations (Phase 4):
- Dynamic log level, system control APIs (shutdown/restart)
- HTTP config hot reload, spawn_blocking for CPU-bound work
- CLI encrypt-db / decrypt-db commands
- Audit log API

Log level audit:
- 16 variants adjusted (noisy hot-path → TRACE/DEBUG)
- 5 dead variants removed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:01:08 +08:00

47 lines
927 B
Plaintext

#cloud-config
autoinstall:
version: 1
locale: en_US.UTF-8
keyboard:
layout: us
identity:
hostname: netguardia
username: netguardia
# Password: netguardia (mkpasswd --method=SHA-512)
password: "$6$rounds=4096$randomsalt$PLACEHOLDER_HASH"
ssh:
install-server: true
allow-pw: true
storage:
layout:
name: lvm
sizing-policy: all
network:
version: 2
ethernets:
ens3:
dhcp4: true
packages:
- curl
- net-tools
- iproute2
- linux-tools-common
late-commands:
# Create required directories
- mkdir -p /target/opt/netguardia/bin
- mkdir -p /target/var/log/netguardia
# Enable serial console for headless access
- >-
curtin in-target -- systemctl enable serial-getty@ttyS0.service
final_message: |
NetGuardia image provisioning complete.
The HTTP setup wizard starts automatically on port 8080.