Security · 1 min read
Security in the AI SDLC: the checks we never skip
AI agents write code faster than anyone can eyeball it. These are the controls that keep speed from becoming exposure.
By [Founder name] · NeoMonarch

The security problems in AI-built software are mostly familiar ones — leaked secrets, weak tenancy checks, risky dependencies — arriving faster and in larger volume. The answer is not slower delivery. It is controls that run on every change, automatically.
1. Secrets never enter the repository
Credentials belong in a secrets manager, injected at runtime. We scan every commit and the full history for keys and tokens, and block the merge on a hit. If a secret does leak, it is rotated first and purged second — removing it from git without rotating it protects nothing.
2. Credentials stay out of remote URLs and logs
Access tokens embedded in git remotes or printed in build logs are a quiet, common leak. Use credential helpers and short-lived tokens, and mask secrets in CI output.
3. Tenancy is enforced, not assumed
Every query in a multi-tenant system is scoped by a tenant resolved from verified identity. Tests prove a user in one tenant cannot read another's data. Internal endpoints require authentication like everything else; "internal" is a network location, not a security control.
4. No hard-coded fallbacks
A default encryption key "for local development" has a way of reaching production. Configuration that is missing should fail loudly at startup.
5. Dependencies are reviewed like code
Agents add packages readily. We scan for known vulnerabilities and licence problems, pin versions, and question every new dependency in review.
6. Agents get least privilege
An agent's tools and tokens are scoped to its task: no production access by default, no ability to push to protected branches, every action logged. Treat an agent like a new contractor on their first day — helpful, capable, and not yet trusted with the keys.
None of this is exotic. What's different in an AI SDLC is that it has to be automatic, because the volume of change no longer leaves room for "we'll catch it in review".