Security

Noxen is a security tool. Its own posture matters. This page documents what we ship, what we sign, what data leaves your Mac, and what doesn't. It is written for the engineer or evaluator running Noxen through a procurement or InfoSec checklist, not as marketing copy. Everything below describes the app as it currently ships.

Distribution and signing

Noxen is a universal binary (Apple Silicon and Intel) for macOS 26 and later, distributed as a notarised Developer ID build. It is not on the Mac App Store: the App Sandbox blocks the raw socket and ~/.ssh/config access Noxen needs to do its job — see Why Developer ID, not the Mac App Store for the full reasoning. Gatekeeper still verifies every build through Apple's notarisation service on first launch.

Updates ship through Sparkle. The appcast at https://noxen.app/appcast.xml is served over TLS and every release entry carries an Ed25519 signature. The corresponding public key is bundled inside the app bundle at build time, which means a malicious appcast — even one served from our own infrastructure — cannot push a Noxen update without the matching private signing key.

What data leaves your Mac

Exactly two things, and they are both opt-out-by-uninstall rather than opt-out-by-toggle so they are worth being precise about:

No analytics SDK runs inside the app. No telemetry payloads, no third-party trackers, no crash reporter that forwards stack traces to a vendor. The website at noxen.app uses Google Analytics with IP-truncation forced on — that is browser-side, not app-side, and is documented in /privacy.

What stays on your Mac

Everything else:

iCloud sync, when you turn it on, covers the SwiftData store only. Keychain items stay device-local regardless of the sync setting.

CVE feed integrity

The feed is a signed SQLite snapshot. On every download, Noxen verifies an Ed25519 signature against a public key bundled with the app — using Apple's CryptoKit, not a third-party crypto library — before swapping the new snapshot in atomically. A tampered or truncated download is rejected; the previous good snapshot keeps serving until the next successful verified fetch.

Sources for the feed are VulnCheck NVD++ (primary), OSV.dev (secondary, used for Debian / Ubuntu / Rocky / AlmaLinux distro triage), and GHSA (tertiary, in scope but currently not surfaced in the marketing dashboard until Noxen scans language ecosystems). The pipeline is deliberately boring: pure mirror plus a CPE index. We never enrich, never re-score, never re-rate. Severity buckets come from the upstream advisories.

App permissions

Noxen requests the minimum macOS authorisations needed to do its job, and no more:

App Sandbox is disabled at build time, because the sandbox forbids both raw-socket port scanning and reading ~/.ssh/config from outside the container. This is the same reason Noxen is not on the Mac App Store.

What we don't do

Reporting vulnerabilities in Noxen

Email snyman.ps@icloud.com with a description of the issue and steps to reproduce. PGP key available on request — reply will arrive from the same address within one UTC business day. We work on a 90-day coordinated disclosure window from the day the report is acknowledged, with flexibility either way when circumstances warrant.

If a fix lands inside the disclosure window, it ships through the normal Sparkle appcast — so any user running a current Noxen build receives it as a standard auto-update without any separate out-of-band channel.

See pricing

Related reading: Privacy policy · Terms of service · Why Developer ID, not MAS · Flag only, never authenticate