원클릭으로
security-audit
Automated security audit skill for detecting secrets, tokens, and security vulnerabilities in code
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Automated security audit skill for detecting secrets, tokens, and security vulnerabilities in code
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when a change must be made in an upstream repo that is mirrored into this control repo as a sibling checkout. Covers the required sequence: fix and push the upstream repo first, then verify the control repo references the pushed upstream commit, then commit and push the control-plane metadata change.
Use when a user asks to detect secrets in git commit history, clean tracked sensitive data, rewrite history with git-filter-repo, or verify cleanup with gitleaks. Covers gitleaks detect -v, replacement mapping, path removal, ref inventory, history rewrites, force-push planning, and post-cleanup coordination.
Use when Codex App with GPT 5.4 should act as the chief engineer and dispatch low-cost or isolated sub-tasks to ollama, opencode, or gemini CLIs instead of doing all execution itself. Best for migration verification, batch checks, document fixes, and controlled multi-model delegation.
Execute and verify the lightweight single-VPS migration path for accounts + rag-server + APISIX standalone + shared stunnel-client. Use for cheap-model test runs, preview verification, and Docker Compose smoke checks.
Use when Codex or another manager needs to hand off a concrete subtask to opencode, ollama, or gemini through scripts/orchestration/run_worker.sh. Defines the worker execution contract, prompt shape, handoff rules, and fallback behavior.
Standardize a single scripts/setup.sh across Cloud-Neutral Toolkit repos (curl | bash), with safe cloning, dependency install, and next-step printing. Use when adding or updating setup.sh in any repo.
| name | Security Audit |
| description | Automated security audit skill for detecting secrets, tokens, and security vulnerabilities in code |
| version | 1.0.0 |
| author | Cloud Neutral Toolkit |
| tags | ["security","audit","secrets","tokens","best-practices"] |
This skill provides automated security auditing capabilities for detecting secrets, tokens, API keys, and other security vulnerabilities in your codebase.
The Security Audit Skill helps you:
Run a quick security audit on your repository:
./skills/security-audit/scripts/quick-audit.sh
Run a comprehensive security audit with detailed reporting:
./skills/security-audit/scripts/full-audit.sh
Specifically audit service token transmission:
./skills/security-audit/scripts/audit-token-transmission.sh
Install as a pre-commit hook to prevent secrets from being committed:
./skills/security-audit/scripts/install-pre-commit-hook.sh
Scans for:
Verifies:
Checks:
Detects:
Validates:
Create a .security-audit.yml file in your repository root:
# Security Audit Configuration
version: 1.0
# Patterns to detect (regex)
secret_patterns:
- name: "AWS Access Key"
pattern: "AKIA[0-9A-Z]{16}"
severity: "critical"
- name: "Generic API Key"
pattern: "api[_-]?key['\"]?\\s*[:=]\\s*['\"][a-zA-Z0-9]{32,}['\"]"
severity: "high"
- name: "Private Key"
pattern: "-----BEGIN (RSA |EC |OPENSSH )?PRIVATE KEY-----"
severity: "critical"
# Files to exclude from scanning
exclude_paths:
- "node_modules/"
- ".git/"
- "*.test.js"
- "*.test.ts"
- "test/fixtures/"
# Custom token names to check
custom_tokens:
- "INTERNAL_SERVICE_TOKEN"
- "JWT_SECRET"
- "DATABASE_PASSWORD"
# Logging patterns to detect
logging_patterns:
- "console.log.*password"
- "console.log.*token"
- "console.log.*secret"
- "logger.*apiKey"
Use Environment Variables
const apiKey = process.env.API_KEY
Transmit Tokens via Headers
headers: {
'X-Service-Token': process.env.INTERNAL_SERVICE_TOKEN
}
Generic Error Messages
return { error: 'Authentication failed' }
Sanitize Logs
console.log(`Request to ${url.replace(/token=.+/, 'token=***')}`)
Use Secrets Management
Hardcode Secrets
// ❌ NEVER DO THIS
const apiKey = "your-api-key..."
Tokens in URLs
// ❌ NEVER DO THIS
fetch(`/api/data?token=${serviceToken}`)
Log Sensitive Data
// ❌ NEVER DO THIS
console.log('Token:', serviceToken)
Expose in Error Messages
// ❌ NEVER DO THIS
return { error: `Invalid token: ${token}` }
Commit .env Files
# ❌ NEVER DO THIS
git add .env
name: Security Audit
on: [push, pull_request]
jobs:
security-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Security Audit
run: |
chmod +x ./skills/security-audit/scripts/full-audit.sh
./skills/security-audit/scripts/full-audit.sh
- name: Upload Audit Report
if: always()
uses: actions/upload-artifact@v3
with:
name: security-audit-report
path: security-audit-report.txt
steps:
- name: 'bash'
args:
- '-c'
- |
chmod +x ./skills/security-audit/scripts/full-audit.sh
./skills/security-audit/scripts/full-audit.sh
Audit reports include:
$ ./skills/security-audit/scripts/quick-audit.sh
❌ CRITICAL: Hardcoded API key detected
File: src/config.ts:15
Pattern: api_key = "sk_live_..."
Fix: Use environment variable instead
const apiKey = process.env.API_KEY
$ ./skills/security-audit/scripts/audit-token-transmission.sh
❌ HIGH: Token in URL parameter
File: src/api/client.ts:42
Code: fetch(`/api?token=${token}`)
Fix: Use HTTP header instead
headers: { 'Authorization': `Bearer ${token}` }
$ ./skills/security-audit/scripts/quick-audit.sh
⚠️ MEDIUM: Potential sensitive data logging
File: src/auth/middleware.ts:28
Code: console.log('User token:', userToken)
Fix: Remove or redact sensitive data
console.log('User authenticated')
Add custom secret patterns to detect:
./skills/security-audit/scripts/quick-audit.sh \
--pattern "custom[_-]secret['\"]?\\s*[:=]\\s*['\"][^'\"]+['\"]" \
--severity critical
Scan specific files or directories:
./skills/security-audit/scripts/quick-audit.sh \
--path src/auth/ \
--path src/api/
Generate reports in different formats:
# JSON output
./skills/security-audit/scripts/full-audit.sh --format json > audit.json
# Markdown report
./skills/security-audit/scripts/full-audit.sh --format markdown > AUDIT.md
# HTML report
./skills/security-audit/scripts/full-audit.sh --format html > audit.html
If the audit detects false positives, add them to .security-audit-ignore:
# .security-audit-ignore
src/test/fixtures/sample-key.txt:5 # Test fixture, not a real key
docs/examples/api-example.md:12 # Documentation example
For large repositories, use incremental scanning:
# Only scan changed files
./skills/security-audit/scripts/quick-audit.sh --incremental
# Only scan files changed in last commit
./skills/security-audit/scripts/quick-audit.sh --since HEAD~1
For issues or questions:
MIT License - See LICENSE file for details