agentsclimarketplace

Security

Skill vanducng/skills/skills/security

A daily-driver collection of skills for agentic coding — a portable, agent-agnostic catalog managed with the vd CLI.

Install
npx -y skills add vanducng/skills --skill security

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

  • 2 stars2 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

Threat-modeled security audit using STRIDE + OWASP (incl. the OWASP LLM Top-10 lens for AI/agent code), scanning code from multiple attacker perspectives, with optional red-team discovery loop and an autoresearch-style fix loop. Use for defensive security review, vulnerability discovery, threat modeling, prompt-injection / LLM security, and authorized remediation. Triggers: 'security audit', 'STRIDE', 'OWASP', 'find vulnerabilities', 'threat model', 'red-team this', 'is this secure', 'prompt injection', 'LLM security'.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.6 KB, as published. Nobody here has run it

security

STRIDE + OWASP, from multiple attacker perspectives → severity-ranked findings, optionally auto-fixed.

Scope & posture

Defensive / authorized use only. Run against code you own or are authorized to audit. This skill performs review and authorized remediation; it does not produce weaponized exploits, mass-targeting tooling, or detection-evasion for malicious use.

Credential masking is mandatory - even when the secret is the finding. Mask per the table in vd:optimize-loop's SKILL.md (API keys → <REDACTED_TOKEN>, connection strings → …:<REDACTED_PASSWORD>@…, env values → reference the name). No report or PoC may contain a live secret or a copy-paste-ready exploit with real credentials - write PoCs as templates the user fills in.

What this is - and isn't

This is an LLM-driven threat-modeled review + bounded fix loop - not a replacement for a SAST scanner, dependency CVE database, or pentest engagement. Use it to reason about this codebase's threat surface and remediate findings; pair with real scanners for breadth.

Modes

ModeBehaviour
(default)One-shot scan: STRIDE + OWASP pass over <scope> → severity-ranked findings report.
--red-teamIterative persona-driven discovery loop - see references/red-team-personas.md.
--fixRemediate findings using the autoresearch loop (below).

Workflow

  1. Scope - resolve <scope> glob (or full = whole repo). List the files/surfaces in play.
  2. Threat pass - walk STRIDE × OWASP per references/stride-owasp.md: for each category, grep/inspect the relevant sinks. If the scope calls an LLM, drives an agent, or builds a prompt from user/tool data, also run the LLM lens in references/llm-owasp.md.
  3. Categorize - each finding: title, STRIDE category, OWASP ref, severity (Critical/High/Med/Low), location (file:line), masked PoC, remediation.
  4. --red-team (optional) - run attacker personas iteratively; dedupe vs seen; stop on a dry round or --iterations cap (default 5). Bounded.
  5. --fix (optional) - see Fix loop.
  6. Report - write to the injected Reports: path. Filename: security-{date}-{slug}.md. Final handoff must include an openable report location, such as [security-report.md](/absolute/path/to/security-report.md) or file:///absolute/path/to/security-report.md, not just the basename.

Fix loop (--fix)

Reuses the vd:optimize-loop discipline (see ../optimize-loop/references/loop-protocol.md) - do not duplicate it:

  • One finding per iteration. Atomic change.
  • Commit before verify (loop(iter-N): fix <finding-id>).
  • Verify = the specific finding no longer reproduces (its detection check now passes).
  • Guard = the project's test suite (do not regress behavior). Guard files are read-only.
  • Keep if verify passes and guard holds; else git revert and try a different remediation (max 2 reworks), then defer the finding to the report.

Output shape

### [Critical] SQL injection in users query - STRIDE: Tampering · OWASP: A03 Injection
- Location: src/db/users.ts:42
- PoC (masked): GET /users?id=1';DROP… (param reaches string-concatenated query)
- Remediation: use parameterized query / prepared statement.
- Fix status: applied (loop iter-3) | deferred

End with: Findings: C/H/M/L counts · personas run: N · fixes applied: K.

Limitations (honest)

  • Reasoning-based - can miss what a dedicated SAST/CVE scanner catches; pair with those for breadth.
  • --red-team and --fix are bounded by --iterations; logs when a cap truncates discovery.
  • Cannot assess runtime/infra config it can't see (secrets managers, WAF rules, network policy).

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.