Security Checklist
A pre-release security checklist ordered by what actually gets exploited — identity and access first, then data, then dependencies, then the AI-specific surface.
No sign-up. No email. Markdown — edit it in anything.
When to use it
Before any release that touches authentication, data, or external interfaces.
Who fills it in
Engineer completing it, reviewed by someone who did not write the code.
Works alongside: Release Checklist · QA Checklist · Incident Report
The template
Instruction lines are marked with > — delete them
once the document is filled in.
System / release: _______________ Date: _______________ Completed by: _______________ Reviewed by: _______________ (not the author)
Ordered by what actually gets exploited, not by framework section number. Mark N/A with a reason — a blank is not an answer.
1. Identity and access#
- [ ] Multi-factor authentication enforced for all administrative access
- [ ] No shared accounts; every action attributable to a person
- [ ] Least privilege applied — reviewed, not assumed
- [ ] Service accounts scoped to one purpose, not reused
- [ ] Access review completed within the last quarter
- [ ] Leaver process removes access same-day
- [ ] Default credentials changed everywhere
- [ ] Session timeout and invalidation on logout verified
2. Secrets#
- [ ] No credentials, keys or tokens in source control (history checked, not just HEAD)
- [ ] Secrets held in a secret store, not environment files committed by accident
- [ ] Rotation possible without downtime, and someone knows how
- [ ] Secrets not written to logs, error messages or crash dumps
3. Data#
- [ ] Personal data identified and its lawful basis recorded
- [ ] Encrypted in transit (TLS 1.2 minimum; 1.3 preferred)
- [ ] Encrypted at rest where the platform supports it
- [ ] Retention period defined and enforced, not aspirational
- [ ] Test environments use masked or synthetic data
- [ ] Backups tested by restoring, within the last quarter
- [ ] At least one backup copy offline or immutable
4. Input and output#
- [ ] All input validated server-side (client-side validation is UX, not security)
- [ ] Parameterised queries throughout — no string-built SQL
- [ ] Output encoded for its context
- [ ] File uploads: type, size and content checked; stored outside the web root
- [ ] Error messages reveal nothing about internals to end users
5. Interfaces and dependencies#
- [ ] Every external interface authenticated and rate-limited
- [ ] Dependencies scanned for known vulnerabilities; criticals resolved
- [ ] Dependency versions pinned
- [ ] Third-party services reviewed for what data they receive
- [ ] Unused endpoints, ports and services removed
6. Configuration#
- [ ] Debug modes and verbose errors disabled in production
- [ ] Security headers present: HSTS, CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy
- [ ] Directory listing disabled
- [ ] Administrative interfaces not reachable from the public internet, or MFA-gated
- [ ] Non-existent pages return a real 404, not a soft 200
7. Logging and detection#
- [ ] Authentication successes and failures logged
- [ ] Privileged actions logged with actor, time and before/after
- [ ] Logs stored where an attacker with system access cannot edit them
- [ ] Logs contain no passwords, tokens or full personal records
- [ ] Someone is responsible for looking at them
8. AI-specific surface#
Complete this section if any component uses a language model. Aligned to the OWASP Top 10 for LLM Applications (2025) and the OWASP Top 10 for Agentic Applications (2026).
Model layer
- [ ] Prompt injection considered: what happens if retrieved or user content contains instructions?
- [ ] Untrusted content clearly delimited and never concatenated into the instruction block
- [ ] System prompt treated as non-secret — assume it can be extracted
- [ ] Output validated before it reaches another system, a database or a user
- [ ] Model and prompt versions pinned and recorded
- [ ] Model supply chain reviewed: where the model and any third-party components come from
- [ ] Sensitive information cannot be echoed back — outputs screened for credentials and personal data
Agent layer (complete if the system takes actions, not just produces text)
- [ ] Tools are narrow and specific, not general-purpose (
get_customer_orders, notrun_query) - [ ] Model cannot reach systems beyond its declared tools
- [ ] Any destructive, financial or outbound action requires human approval
- [ ] Runs with the requesting user's permissions, not an admin service account
- [ ] No single component holds both broad read access and broad write access
- [ ] Step, time and spend caps enforced per task
- [ ] Stored memory and context can be inspected and cleared — poisoned context persists silently
- [ ] Every tool call logged with actor, arguments and result
Governance
- [ ] Named owner accountable for the system's behaviour, and a person who can switch it off
- [ ] Model inputs and outputs retained for audit, for a defined period
- [ ] EU AI Act Art. 50 transparency (in force since 2 Aug 2026): users are told they are interacting with an AI system; generated content is labelled
- [ ] Assessed whether the system falls in a high-risk category (employment, credit, insurance, education, critical infrastructure, biometrics) — obligations deferred to 2 Dec 2027 for Annex III, 2 Aug 2028 for Annex I, but the assessment should be done now
- [ ] Staff have an approved AI tool whose terms exclude training on your data
9. Incident readiness#
- [ ] Named incident decision-maker with authority to disconnect systems
- [ ] Contact list stored somewhere that does not depend on these systems
- [ ] Regulatory notification window known
- [ ] Rollback tested, not assumed
Sign-off#
| Name | Date | |
|---|---|---|
| Completed by | ||
| Reviewed by | ||
| Accepted risks approved by |
Accepted risks:
| # | Item not met | Why accepted | Accepted by | Revisit by |
|---|---|---|---|---|
Standards this is based on#
Checked 2026-08-04. Re-verify before relying on any date below.
| Reference | Status |
|---|---|
| ISO/IEC 27001:2022 Annex A | Current |
| NIST Cybersecurity Framework 2.0 | Current |
| OWASP Top 10 for LLM Applications | 2025 edition |
| OWASP Top 10 for Agentic Applications | 2026 edition, published Dec 2025 |
| EU AI Act Art. 50 (transparency) | Applies from 2 Aug 2026 |
| EU AI Act high-risk (Annex III) | Deferred to 2 Dec 2027 by the Digital Omnibus, approved 29 Jun 2026 |
| EU AI Act high-risk (Annex I, product-embedded) | Deferred to 2 Aug 2028 |
| ISO/IEC 42001:2023 (AI management systems) | Current; increasingly requested in procurement |
This checklist is a working aid, not a compliance certification, and not legal advice. Obligations depend on your role and jurisdiction.