Skip to content

Security: strix-tool/strix-sentinel

SECURITY.md

Security Policy — Strix Sentinel

Reporting a vulnerability

Report privately via GitHub Security Advisories (the repo's Security tab) or the Strix Advanced Tools maintainer contacts — not a public issue.

Threat model

Sentinel is a read-only, offline monitor on both platforms. It:

  • makes no network connection of its own — the network guard only pings the local subnet and reads the neighbor table when you explicitly run it;
  • spawns no shell — every system tool (schtasks/wevtutil/ping/arp on Windows, ip/systemctl/journalctl/crontab/ping on Linux) is invoked with a fixed argument list;
  • uses no dynamic code — no eval/exec/pickle;
  • writes only to its own config dir (%APPDATA%\SentinelMonitor / ~/.config/SentinelMonitor), atomically, and validates JSON on load.

Privilege

  • Windows: only the Login audit reads the Security event log, which needs Administrator. The app never self-elevates; it shows a notice and degrades.
  • Linux: only the login audit needs read access to system logs (run with sudo). All other checks run as a normal user.

Hardening

  • Fail-closed tool resolution. System tools are resolved to absolute paths in trusted directories (Windows System32; Linux /usr/bin, /bin, /sbin, /usr/sbin). If the expected binary is missing, the call fails closed rather than falling back to a bare-name %PATH%/$PATH lookup that a hijacked path could exploit.
  • Private-range scanning only. The network guard restricts sweeps to RFC-1918 ranges (10. / 192.168. / 172.16-31.) and only runs on demand.
  • Pure, tested parsers. The Linux log/table parsers (parse_auth_log, parse_ip_neigh, parse_ip_addr, parse_desktop_entry, …) are pure functions with unit tests (tests/test_linux_parsers.py) — they never execute their input.

Privacy

Nothing leaves your machine. Baselines and trusted-device lists are stored locally in your config directory and contain only what you approve.

There aren't any published security advisories