Security Audit Skill
Security audit patterns (OWASP Top 10, LLM Top 10 2025, CWE Top 25 2025, CVSS v4.0), cloud/IaC checks, GitHub security. 80+ PHP/TYPO3 checkpoints (v14.3 LTS in typo3-security.md).
Expertise Areas
- Vulnerabilities: XXE, SQLi, XSS, CSRF, command injection, path traversal, file upload, deserialization, SSRF, SSTI, JWT, type juggling
- Standards: OWASP Top 10 / API / LLM (2025), CWE Top 25, CVSS v3.1/v4.0, OWASP ASVS
- Cloud & IaC: AWS, Azure, GCP; Terraform, Kubernetes, Docker, Helm
- API & Frontend: REST/GraphQL authZ, rate limits, mass assignment, CSP, DOM-XSS
- AI Agents: SKILL.md/AGENTS.md/CLAUDE.md/mcp.json/hooks.json audit; prompt injection; excessive agency
Reference Files (in references/, .md implied)
- Core: owasp-top10, cwe-top25, xxe-prevention, cvss-scoring, api-key-encryption
- Prevention: deserialization-prevention, path-traversal-prevention, file-upload-security, input-validation, error-message-sanitization
- Architecture: authentication-patterns, security-headers, security-logging, cryptography-guide
- Language features (
*-security-features): php, python, javascript-typescript, nodejs, java, csharp, go, rust, ruby
- Frameworks (
*-security): typo3, typo3-fluid, typo3-typoscript, symfony, laravel, django, flask, fastapi, spring, dotnet, blazor, rails, gin, react, vue, angular, nextjs, nuxt, express, nestjs
- Mobile: android-sdk-security, ios-sdk-security
- Cloud & IaC: aws-security, azure-security, gcp-security, iac-security
- API & Frontend: api-security, frontend-security
- AI Agent: llm-security (OWASP LLM Top 10 2025)
- Shared: framework-security
- Threats: modern-attacks, cve-patterns, cve-database
- DevSecOps: ci-security-pipeline, supply-chain-security, automated-scanning, gha-security
- Incident: supply-chain-incident-response
Quick Patterns
XML parsing (prevent XXE):
$doc->loadXML($input, LIBXML_NONET);
SQL (prevent injection):
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$id]);
Output (prevent XSS):
echo htmlspecialchars($input, ENT_QUOTES | ENT_HTML5, 'UTF-8');
API keys, passwords, randomness:
$n = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$enc = 'enc:' . base64_encode($n . sodium_crypto_secretbox($apiKey, $n, $key));
password_hash($pw, PASSWORD_ARGON2ID);
bin2hex(random_bytes(32)); // never mt_rand/rand
Automated scanners: references/automated-scanning.md.
Security Checklist
GitHub Actions Security
- NEVER interpolate
${{ inputs.* }} / ${{ github.event.* }} in run: — use env:
- Dependency triage: upgrade > override > dismiss. Full patterns:
references/gha-security.md.
Verification
./scripts/security-audit-dispatcher.sh /path/to/project # auto-detect stack
./scripts/security-audit.sh /path/to/project # PHP-only
./scripts/github-security-audit.sh owner/repo # GH repo
Dispatcher detects the stack from indicator files and runs matching scripts/scanners/*.sh (17 ecosystems; see references/ index).
Contributing: https://github.com/netresearch/security-audit-skill
1---2name: security-audit3description: Use when conducting security assessments — OWASP Top 10 / API / LLM, CWE Top 25, CVSS scoring — auditing PHP/TYPO3 (v14.3 LTS: #109585, HashService removal, Authorize/RateLimit), APIs, frontend, Terraform/K8s/Docker IaC, AWS/Azure/GCP cloud, AI agent configs, or scanning dependencies.4license: (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.05---67# Security Audit Skill89Security audit patterns (OWASP Top 10, LLM Top 10 2025, CWE Top 25 2025, CVSS v4.0), cloud/IaC checks, GitHub security. 80+ PHP/TYPO3 checkpoints (v14.3 LTS in `typo3-security.md`).1011## Expertise Areas1213- **Vulnerabilities**: XXE, SQLi, XSS, CSRF, command injection, path traversal, file upload, deserialization, SSRF, SSTI, JWT, type juggling14- **Standards**: OWASP Top 10 / API / LLM (2025), CWE Top 25, CVSS v3.1/v4.0, OWASP ASVS15- **Cloud & IaC**: AWS, Azure, GCP; Terraform, Kubernetes, Docker, Helm16- **API & Frontend**: REST/GraphQL authZ, rate limits, mass assignment, CSP, DOM-XSS17- **AI Agents**: SKILL.md/AGENTS.md/CLAUDE.md/mcp.json/hooks.json audit; prompt injection; excessive agency1819## Reference Files (in `references/`, `.md` implied)2021- **Core**: owasp-top10, cwe-top25, xxe-prevention, cvss-scoring, api-key-encryption22- **Prevention**: deserialization-prevention, path-traversal-prevention, file-upload-security, input-validation, error-message-sanitization23- **Architecture**: authentication-patterns, security-headers, security-logging, cryptography-guide24- **Language features** (`*-security-features`): php, python, javascript-typescript, nodejs, java, csharp, go, rust, ruby25- **Frameworks** (`*-security`): typo3, typo3-fluid, typo3-typoscript, symfony, laravel, django, flask, fastapi, spring, dotnet, blazor, rails, gin, react, vue, angular, nextjs, nuxt, express, nestjs26- **Mobile**: android-sdk-security, ios-sdk-security27- **Cloud & IaC**: aws-security, azure-security, gcp-security, iac-security28- **API & Frontend**: api-security, frontend-security29- **AI Agent**: llm-security (OWASP LLM Top 10 2025)30- **Shared**: framework-security31- **Threats**: modern-attacks, cve-patterns, cve-database32- **DevSecOps**: ci-security-pipeline, supply-chain-security, automated-scanning, gha-security33- **Incident**: supply-chain-incident-response3435## Quick Patterns3637**XML parsing (prevent XXE):**38```php39$doc->loadXML($input, LIBXML_NONET);40```4142**SQL (prevent injection):**43```php44$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');45$stmt->execute([$id]);46```4748**Output (prevent XSS):**49```php50echo htmlspecialchars($input, ENT_QUOTES | ENT_HTML5, 'UTF-8');51```5253**API keys, passwords, randomness:**54```php55$n = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);56$enc = 'enc:' . base64_encode($n . sodium_crypto_secretbox($apiKey, $n, $key));57password_hash($pw, PASSWORD_ARGON2ID);58bin2hex(random_bytes(32)); // never mt_rand/rand59```6061Automated scanners: `references/automated-scanning.md`.6263## Security Checklist6465- [ ] `semgrep`/`opengrep`, `trivy fs --severity HIGH,CRITICAL`, `gitleaks` clean66- [ ] bcrypt/Argon2 passwords, CSRF on state changes, TLS 1.2+67- [ ] Server-side input validation; parameterized SQL; XML entities off68- [ ] Output encoding + CSP; no unserialize() on user input69- [ ] API keys encrypted; exception messages sanitized70- [ ] Secrets out of VCS; audit logging on71- [ ] Uploads validated, renamed, outside web root72- [ ] Headers HSTS + X-Content-Type-Options; dependencies scanned7374## GitHub Actions Security7576- **NEVER** interpolate `${{ inputs.* }}` / `${{ github.event.* }}` in `run:` — use `env:`77- Dependency triage: upgrade > override > dismiss. Full patterns: `references/gha-security.md`.7879## Verification8081```bash82./scripts/security-audit-dispatcher.sh /path/to/project # auto-detect stack83./scripts/security-audit.sh /path/to/project # PHP-only84./scripts/github-security-audit.sh owner/repo # GH repo85```8687Dispatcher detects the stack from indicator files and runs matching `scripts/scanners/*.sh` (17 ecosystems; see `references/` index).8889---9091> Contributing: https://github.com/netresearch/security-audit-skill