AgentSkillsCN

Security Review Skill

在攻击者发现漏洞之前,提前做好防御准备。

SKILL.md
--- frontmatter
name: "Security Review Skill"
description: "Defend before attackers find the gaps."
applyTo: "**/*security*,**/*auth*,**/*password*,**/*token*,**/*credential*,**/*vulnerability*"

Security Review Skill

Defend before attackers find the gaps.

Core Principle

Security is not a feature—it's a property. Review code with adversarial thinking.

OWASP Top 10 Checklist

#VulnerabilityWhat to Check
1InjectionSQL, NoSQL, LDAP, OS commands—parameterize everything
2Broken AuthSession management, credential storage, MFA
3Sensitive DataEncryption at rest/transit, PII exposure, logging secrets
4XXEXML parsers disabled external entities?
5Broken AccessIDOR, privilege escalation, missing authZ checks
6MisconfigDefault credentials, error messages, headers
7XSSInput sanitization, output encoding, CSP
8Insecure DeserializationUntrusted data → object creation
9Vulnerable Dependenciesnpm audit, Dependabot, known CVEs
10Logging & MonitoringAudit trails, alerting, incident detection

Threat Modeling (STRIDE)

ThreatQuestionMitigation
SpoofingCan attacker impersonate?Strong authentication
TamperingCan data be modified?Integrity checks, signatures
RepudiationCan actions be denied?Audit logging
Information DisclosureCan secrets leak?Encryption, access control
Denial of ServiceCan system be overwhelmed?Rate limiting, quotas
Elevation of PrivilegeCan attacker gain access?Least privilege, authZ

Code Review Security Lens

Authentication

code
□ Passwords hashed with bcrypt/argon2 (not MD5/SHA1)
□ No hardcoded credentials
□ Session tokens are random, rotated, and expire
□ Failed login attempts are rate-limited
□ MFA supported where appropriate

Authorization

code
□ Every endpoint has explicit access control
□ No security through obscurity (hidden URLs)
□ Resource ownership verified before access
□ Admin functions require elevated auth
□ Deny by default, allow explicitly

Input Validation

code
□ All input validated on server (not just client)
□ Allowlist validation preferred over blocklist
□ File uploads restricted by type and size
□ URL redirects validated against allowlist
□ JSON/XML parsing has size limits

Data Protection

code
□ Sensitive data encrypted at rest
□ TLS 1.2+ for data in transit
□ API keys/secrets in env vars, not code
□ PII minimized and retention limited
□ Logs don't contain passwords/tokens/PII

Dependencies

code
□ npm audit / pip audit / cargo audit clean
□ No deprecated or unmaintained packages
□ Dependabot or Renovate enabled
□ Lock files committed
□ Known CVE check before release

Quick Security Questions

Before shipping, ask:

  1. What's the worst thing an attacker could do?
  2. What data could leak if this endpoint is exposed?
  3. Who should NOT have access to this?
  4. What happens if input is malicious?
  5. Are we trusting anything we shouldn't?

Common Vulnerabilities by Language

LanguageWatch For
JavaScriptPrototype pollution, eval(), innerHTML
TypeScriptType assertions bypassing validation
Pythonpickle deserialization, format strings
SQLString concatenation in queries
ShellCommand injection, unquoted variables

Security Headers Checklist

code
Content-Security-Policy: default-src 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000
X-XSS-Protection: 0 (deprecated, use CSP)

Incident Response Connection

When vulnerability found:

  1. Assess: What's the blast radius?
  2. Contain: Can we disable the feature?
  3. Fix: Patch the vulnerability
  4. Verify: Confirm fix works
  5. Learn: Update review checklist

Synapses

See synapses.json for connections.