seb1n/security-audit
Perform a comprehensive security audit of applications and infrastructure to identify vulnerabilities, assess risk, and recommend mitigations aligned with industry standards.
npx skills add https://github.com/seb1n/awesome-ai-agent-skills --skill security-audit
This skill enables the agent to conduct a thorough security audit across web applications, APIs, cloud infrastructure, and backend services. The agent systematically examines authentication mechanisms, authorization controls, input validation, encryption practices, logging configurations, and deployment settings. Findings are mapped to industry frameworks such as the OWASP Top 10, CWE identifiers, and compliance standards including SOC 2 and PCI-DSS.
Provide the agent with access to the application source code, infrastructure configuration, or a target URL along with the desired compliance scope. The agent will execute the full audit workflow and deliver a prioritized findings report.
Prompt example:
Perform a security audit of the Node.js Express application in /app. Focus on OWASP Top 10 coverage and SOC 2 compliance. Include CWE IDs and remediation steps for every finding.
Target: E-commerce API built with Express.js, Sequelize ORM, and JWT authentication.
Findings Report (excerpt):
| # | Severity | Title | CWE | OWASP Category |
|---|----------|-------|-----|----------------|
| 1 | Critical | SQL injection in product search endpoint | CWE-89 | A03:2021 Injection |
| 2 | High | JWT secret stored in plaintext in .env committed to repo | CWE-798 | A07:2021 Identification and Authentication Failures |
| 3 | High | Missing rate limiting on /api/login | CWE-307 | A07:2021 Identification and Authentication Failures |
| 4 | Medium | Verbose error messages expose stack traces in production | CWE-209 | A04:2021 Insecure Design |
| 5 | Medium | CORS policy allows wildcard origin with credentials | CWE-942 | A05:2021 Security Misconfiguration |
| 6 | Low | HTTP security headers missing (X-Content-Type-Options, CSP) | CWE-693 | A05:2021 Security Misconfiguration |
Remediation for Finding #1:
// BEFORE — vulnerable to SQL injection
app.get('/api/products', async (req, res) => {
const results = await sequelize.query(
`SELECT * FROM products WHERE name LIKE '%${req.query.search}%'`
);
res.json(results);
});
// AFTER — parameterized query
app.get('/api/products', async (req, res) => {
const results = await sequelize.query(
'SELECT * FROM products WHERE name LIKE :search',
{ replacements: { search: `%${req.query.search}%` }, type: QueryTypes.SELECT }
);
res.json(results);
});
Target: Production AWS account running a three-tier web application.
Prowler scan command:
prowler aws --compliance soc2 pci_dss --output-formats json html --output-directory ./audit-report
Findings Report (excerpt):
| # | Severity | Finding | AWS Service | Compliance Control |
|---|----------|---------|-------------|-------------------|
| 1 | Critical | S3 bucket prod-user-uploads has public read access enabled | S3 | PCI-DSS 7.1, SOC 2 CC6.1 |
| 2 | High | IAM user deploy-bot has inline AdministratorAccess policy | IAM | SOC 2 CC6.3 |
| 3 | High | RDS instance prod-db has encryption at rest disabled | RDS | PCI-DSS 3.4, SOC 2 CC6.1 |
| 4 | Medium | CloudTrail logging is not enabled for all regions | CloudTrail | SOC 2 CC7.2 |
| 5 | Medium | Security group sg-0abc123 allows SSH (port 22) from 0.0.0.0/0 | EC2 | PCI-DSS 1.3 |
Remediation for Finding #2:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ecr:GetAuthorizationToken", "ecs:UpdateService", "ecs:DescribeServices"],
"Resource": "arn:aws:ecs:us-east-1:123456789012:service/prod-cluster/web-service"
}
]
}
Take seb1n/security-audit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.