What does an AI security audit check?
Threat surface
Every route, job, webhook, and storage bucket reachable from outside, enumerated rather than assumed.
Authentication
Session and token handling, expiry, revocation, and the password and OTP flows around them.
Authorization
Object-level access checks on every endpoint, including the ones the UI never links to.
Tenant isolation
Whether separation is enforced at the database with row-level security or only by an application filter.
Secrets management
Committed keys, client-bundled keys, shared credentials, and whether rotation is possible at all.
Injection
SQL, NoSQL, command, and template injection paths where input reaches an interpreter unescaped.
Rate limiting
Brute force, credential stuffing, and enumeration protection on login, reset, and OTP endpoints.
Dependency exposure
Known CVEs in direct and transitive packages, with judgment on which are actually reachable.
Transport and headers
TLS configuration, CORS policy, CSP, and the security headers a generated scaffold usually omits.
File handling
Upload validation, storage permissions, signed URLs, and path traversal on download.
Data protection
Encryption at rest and in transit, PII handling, and what ends up in logs and error reports.
LLM attack surface
Prompt injection, tool permission scope, provider key exposure, and unvalidated model output rendered as trusted.
Infrastructure
Network exposure, IAM roles, environment separation, and publicly readable buckets.
Audit trail
Whether privileged actions are logged, and whether the log would survive an incident.
Incident readiness
Backups, restore testing, key rotation, and a path to revoke access under pressure.
Other audits
Each audit answers a different question. Most engagements combine two or three.
Build with
confidence.
AI builds the product. Vibecop makes sure it won’t break in production, fail under scale, or expose your users to risk. One audit. Fewer expensive surprises.
