Security
Security Release Checklist
Use this checklist before cutting any new release (e.g., v0.x.x) to ensure supply-chain integrity.
1. Supply Chain & Installer
- Pinned Version: Update
install.shVERSIONvariable to match the release tag. - Docs Sync: Ensure
README.mdand.github/PULL_REQUEST_TEMPLATE.mdinstaller URLs point to the new tag (notmain). - Clean Build: Verify
install.shdoes not curl random scripts from third parties without pinning. - SOUP Register: Review SOUP_REGISTER.md and confirm all active external components have an owner and validation path.
2. Secrets & Leak Prevention
- SSH Keys: Scan
dot_ssh/to ensure no private keys (id_rsa,id_ed25519) are committed. - Env Vars: Check for hardcoded API tokens in
dot_config/(useageencryption or environment variables instead). - Git History: Run
git secretsor similar to scan for accidental commits of credentials.
3. Platform Safety
- WSL Check: Verify
install.shdetects WSL and does not try to install systemd services or macOS defaults. - Root usage: Ensure no script requires
sudounnecessarily (Principle of Least Privilege).
4. Toolchain
- Binary Integrity: Check that
dot_local/bin/scripts are pure shell/executable and match expected checksums (no binary blobs). - Dependency Scan: Run
npm audit/cargo auditif applicable (currently Node.js legacy is removed).
5. MCP (Model Context Protocol) Hardening
- Launcher Policy: Verify
dot mcpshows only allowlisted launchers (npx,node,uvx). - Filesystem Scope: Ensure no MCP server has broad access (
/,/home,/Users). - Default Profile: Confirm only the
strict-localserver set is enabled by default. - Token Validation: Confirm required API tokens are set (
GITHUB_TOKEN,BRAVE_API_KEY). - Arg Policy: No wildcard (
*) or--unsafearguments in MCP server configs. - Env Placeholders: All
${VAR}references in MCP config have corresponding environment variables.
Run dot mcp --strict --json to validate all MCP server configurations and capture an audit artifact.
6. Release Attestation
- SBOM Generation: Verify
dotfiles-sbom.spdx.jsonis generated in release workflow. - Attestation Signing: Confirm
actions/attest-build-provenancesigns the release artifacts. - Attestation Verification: Verify with
gh attestation verify <artifact> --repo sebastienrousseau/dotfiles. - Branch Protection: Ensure
security-attestationis a required status check on main. - Automation Keying: Confirm
ACTIONS_BOT_SIGNING_KEYexists and matches the signer indot_config/git/allowed_signers.
7. Final Verification
- Docker Test: Run
docker build -f Dockerfile.test .to verify clean install. - Doctor: Run
dot doctorlocally. - MCP Check: Run
dot mcpto verify MCP configuration.