agentsclimarketplace

Security audit standard

Skill 0xMassi/claude-skills/security-audit-standard

Twelve Claude Code skills enforcing strict code quality, security, and modern language patterns across TypeScript, Rust, Swift, Go, JavaScript, and PostgreSQL.

Install
npx -y skills add 0xMassi/claude-skills --skill security-audit-standard

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Security audit methodology and checklist for codebases. Use when performing security reviews, auditing a project for vulnerabilities, or hardening an application before deployment. Covers secret scanning, input validation, authentication/authorization, cryptographic practices, dependency auditing, CSP configuration, rate limiting, OWASP Top 10 checks, and audit report format. Derived from production audit work.

SKILL.md

6.5 KB, as published. Nobody here has run it

Security Audit Standard

Methodology derived from production security audits.

Audit Process

Phase 1: Secret Scanning

Scan for hardcoded credentials in tracked source files.

Targets:
- API keys, tokens, passwords in source (not .env)
- Webhook URLs with tokens
- Database connection strings
- Private keys, certificates
- obfstr!() usage (Rust): still in binary, just obfuscated

Check patterns:

grep -rn "sk-" "pk_" "ghp_" "token" "secret" "password" "apikey"
grep -rn "https://discord.com/api/webhooks/"
grep -rn "https://hooks.slack.com/"
grep -rn "mongodb://" "postgresql://" "redis://"

Verify .gitignore covers: .env*, *.pem, *.key, credentials*, secrets*, auth*.json, config.json (if it contains secrets).

Phase 2: Input Validation

For every endpoint/command that accepts user input:

  1. Where does input enter the system? (HTTP body, query params, WebSocket messages, IPC commands, CLI args, file uploads)
  2. Is it validated before processing? (type checking, length limits, format validation)
  3. Is it sanitized before output? (HTML escaping, SQL parameterization)
  4. Are error messages safe? (no stack traces, no internal paths, no credential hints)

Checklist:

  • SQL queries use parameterized statements (never string concatenation)
  • HTML output is escaped (no raw user content in templates)
  • File paths are validated (no path traversal ../)
  • JSON parsing has try/catch (malformed input doesn't crash)
  • Integer inputs have range checks (no overflow/underflow)
  • String inputs have max length limits
  • File uploads validate type, size, and content (not just extension)

Phase 3: Authentication & Authorization

  • Passwords hashed with bcrypt/argon2 (not MD5/SHA1)
  • JWT tokens have expiration (exp claim)
  • JWT secret is strong (>32 bytes, not "secret")
  • Session tokens rotated on privilege change
  • OAuth flows validate state parameter (CSRF protection)
  • OAuth flows validate all required response fields
  • API keys transmitted via headers (not query params: logged in access logs)
  • Admin endpoints require authentication + authorization
  • Rate limiting on login/auth endpoints (brute force protection)
  • Account lockout after N failed attempts

Phase 4: Data Protection

  • Secrets stored in OS keychain / encrypted store (not plain files)
  • Sensitive data not logged (mask tokens, passwords, PII)
  • HTTPS enforced (no mixed content)
  • CORS configured restrictively (not * in production)
  • CSP headers set (script-src, connect-src restricted)
  • Cookies: HttpOnly, Secure, SameSite flags set
  • Temp files use unpredictable paths (tempfile crate, mkstemp)
  • Sensitive data cleared from memory after use

Phase 5: Dependency Audit

# Node.js
npm audit
pnpm audit

# Rust
cargo audit
cargo deny check

# Python
pip-audit
safety check

# Go
govulncheck ./...

Check for:

  • Known CVEs in dependencies
  • Outdated dependencies (major versions behind)
  • Abandoned packages (no commits in 2+ years)
  • Typosquat packages (similar names to popular packages)

Phase 5b: Supply Chain

CheckCommand / FileWhy
Lockfile committedpackage-lock.json, Cargo.lock, go.sum, Package.resolvedPin transitive dep versions
GitHub Actions pinned to SHAuses: actions/checkout@<sha>@v4 tag can be moved by attacker
Install scripts disabled in CInpm ci --ignore-scriptsPrevents postinstall RCE
Provenance or signingnpm publish --provenance, sigstore for releasesLets consumers verify origin
Allow-list of registries.npmrc registry=, cargo indexBlocks dependency confusion
  • Typosquat packages (similar names to popular packages)

Phase 6: Infrastructure

  • No debug endpoints in production
  • Error pages don't leak stack traces
  • Server headers don't expose technology versions
  • Rate limiting on all public endpoints
  • Process runs as non-root user
  • File permissions are restrictive (600 for secrets, 755 for executables)
  • Firewall rules minimize exposed ports
  • TLS 1.2+ enforced (no SSLv3, TLS 1.0/1.1)
  • Database not accessible from public internet

OWASP Top 10 Quick Check

#VulnerabilityCheck
A01Broken Access ControlEvery endpoint verifies auth + authz?
A02Cryptographic FailuresUsing strong algorithms? Secrets encrypted at rest?
A03InjectionAll inputs parameterized/escaped?
A04Insecure DesignThreat model exists? Security requirements documented?
A05Security MisconfigurationDefault creds removed? Error handling configured?
A06Vulnerable ComponentsDependencies audited? No known CVEs?
A07Auth FailuresBrute force protected? MFA available?
A08Data Integrity FailuresUpdates verified (checksums)? CI/CD secured?
A09Logging FailuresSecurity events logged? Logs don't contain secrets?
A10SSRFServer-side requests validated? Internal URLs blocked?

Tauri-Specific Security

  • CSP in tauri.conf.json restricts script-src and connect-src
  • IPC commands are enum-constrained (no arbitrary command execution)
  • dangerous-api features disabled unless explicitly needed
  • File system access scoped to app directories
  • Shell commands never constructed from user input

Audit Report Format

# Security Audit: [Project Name]
Date: YYYY-MM-DD

## Summary
- Critical: N findings
- High: N findings
- Medium: N findings
- Low: N findings

## Critical Findings

### [CRIT-01] Hardcoded API key in tracked source
- **Location**: `src/config.json:15`
- **Risk**: Key exposure if repo made public or cloned
- **Fix**: Move to .env, add to .gitignore, rotate key
- **Effort**: 5 minutes

## High Findings
...

## Recommendations
1. [Priority-ordered action items]

Severity levels:

  • Critical: Immediate exploitation possible, data breach risk
  • High: Exploitable with some effort, significant impact
  • Medium: Requires specific conditions, moderate impact
  • Low: Minor risk, defense-in-depth improvement

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.