Security Documentation Index

July 10, 2026 · View on GitHub

A single entry point to everything security-relevant in Perseus: the documents, the processes, and who holds which privileges. This satisfies OSTIF best-practices step 6 (an updated knowledgebase tracking security efforts and access privileges) and is the map an auditor or contributor should start from.

Last reviewed: 2026-07-10.


1. Document map

DocumentWhat it covers
../SECURITY.mdReporting policy, supported versions, security model, attack surface, trust boundaries
vuln-response.mdInternal vulnerability-response runbook: handler roles, CVSS severity rubric, embargo, CVE/disclosure flow
security-review-2026-07-05.mdPre-launch internal security review and findings
../sbom.cdx.jsonCycloneDX software bill of materials for dependency transparency
SECURITY-MILESTONES.mdPredefined triggers for escalating security effort (OSTIF step 7)

2. Automated security controls (CI)

ControlWherePosture
Runtime dependency CVE scanning.github/workflows/audit.yml (pip-audit, requirements-runtime.txt)Gating on push/PR + weekly — the shipped surface must be CVE-free
Dev/CI toolchain CVE scanning.github/workflows/audit.yml (osv-scanner, static lockfile scan of requirements.txt)Non-gating, for visibility
Static analysis (SAST).github/workflows/codeql.yml (CodeQL, Python, security-extended)Non-gating, weekly + push/PR; findings in the Security tab
Private vulnerability reportingGitHub Security → Private Vulnerability ReportingEnabled — reports arrive as private advisories

3. Access & privileges register

Governance transparency, not secrets. This tracks who holds which privilege so access can be reviewed and revoked. No keys or tokens appear here.

PrivilegeHolder(s)Notes
Repository adminThomas Connally (tcconnally), Mark ThrailkillBoth hold repo admin as of 2026-07-10.
Merge to protected mainvia PR + required test (3.12) check✅ Verified 2026-07-10: main is protected and requires the test (3.12) status check. No direct pushes.
Release / publish (PyPI)[CONFIRM] — PyPI trusted publishingPublishing via OIDC trusted-publisher, not long-lived tokens
Release signing / provenancenone yetSLSA provenance / signed releases are a tracked milestone (§ SECURITY-MILESTONES)
Security disclosure — primary handlerThomas Connally (perseus@perseus.observer)See vuln-response.md
Security disclosure — backup handlerMark Thrailkill (mark@perseus.observer)Covers when primary is unavailable

Review cadence: revisit this register whenever a team member joins/leaves, a new publishing target is added, or a signing key is created. Update the Last reviewed date above on each pass.

4. How the pieces fit