oc-security-audit
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Basarisiz
- eval() — Dynamic code execution via eval() in plugins/oc-security-audit/skills/oc-security-audit/scripts/scan.sh
- new Function() — Dynamic code execution via Function constructor in plugins/oc-security-audit/skills/oc-security-audit/scripts/scan.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Full-stack security audit skill for AI coding agents. OWASP WSTG testing + infrastructure, deployment, and privacy checks. Works with Claude Code, Codex, Cursor, Gemini CLI, Copilot.
OC Security Audit -- OWASP-grounded pre-launch security audit for web apps
Dedicated to Ohad Cohen, a brave Israeli soldier who gave his life protecting Kibbutz Be'eri on October 7, 2023.
Install
Step 1 — add the marketplace (run this first, then wait for it to finish):
/plugin marketplace add miclivne/oc-security-audit
Step 2 — install the plugin:
/plugin install oc-security-audit
Then run in any project:
/oc-security-audit
or just ask: "run a security audit on this project"
What it checks
14 categories mapped to OWASP standards. Each answers a plain-language security question:
| # | Category | User question answered | OWASP source |
|---|---|---|---|
| 1 | DDoS / API abuse | Can someone take my app down or run up my bill? | API4:2023, WSTG-DOS |
| 2 | Hosting bypass | Can someone bypass my security layer? | WSTG-CONF-01, CONF-10 |
| 3 | User data exposure | Can someone see data they shouldn't? | API3:2023, ASVS V14 |
| 4 | Broken access control (IDOR) | Can someone access other users' data? | API1:2023, A01:2025 |
| 5 | Code injection (safety net) | Is code safe from injection? | A05:2025, WSTG-INPV |
| 6 | Supply chain | Are dependencies safe? | A03:2025 |
| 7 | Session / auth security | Can someone steal a session? | A07:2025, WSTG-SESS |
| 8 | Secret leakage | Are secrets exposed? | WSTG-CONF-04, CONF-09 |
| 9 | SSRF | Can server be tricked to fetch internal resources? | A01:2025 |
| 10 | AI/LLM risks | Is AI integration leaking user data? | LLM Top 10 2025 |
| 11 | Infrastructure config | Is production configured securely? | A02:2025, WSTG-CONF |
| 12 | Privacy / legal | Am I legally covered for user data? | ASVS V14, GDPR |
| 13 | Error handling | Does the app fail securely? | A10:2025 |
| 14 | Logging & monitoring | Will I know if someone is attacking? | A09:2025 |
How it works
The audit runs in 6 steps with progress indicators:
Step 1: DISCOVER Step 2: SELECT TESTS Step 3: SCAN
[shell script] [shell script] [shell script]
discover.sh Read profile, count: scan.sh
- Detect framework - 66 test types to run - Profile-driven dispatch
- Detect hosting - 11 LLM judgment calls - grep code patterns
- Detect ORM - 33 skipped (not - curl live domain
- Find 12+ API routes applicable to stack) - npm audit
- Find production domain - 12 deferred to - Check security headers
- Detect features /security-review - Output TOTALS + Audit Details
Step 4: ANALYZE Step 5: REPORT Step 6: CLOSE
[LLM] [LLM] [LLM]
LLM reads route files Positive-first report: Remind about /security-review
for 8 judgment calls: 1. What's secure Offer to save report
- IDOR ownership 2. Executive Summary
- Privilege escalation 3. What needs attention
- Feature misuse (issues by category,
- Data exposure severity-tagged)
- Prompt injection 4. Audit Details table
- Workflow bypass
Lightweight — shell scripts handle mechanical checks, LLM only activates for judgment calls and report writing. Steps 1-3 use zero LLM tokens. Token usage varies by model and project size.
Profile-driven execution (v2.2 architecture)
The profile (profiles/nextjs-prisma.md) is the single source of truth. It declares every OWASP WSTG test case with a decision: RUN (script), RUN (llm), SKIP, or DEFER. scan.sh reads the profile at startup and dispatches to named functions. If a RUN check has no matching function, scan.sh emits a FAIL row -- no silent skipping.
This follows industry-standard patterns used by OWASP ZAP, Nessus, and Checkov -- the profile drives execution, not hardcoded check lists.
Report structure
The report leads with the positive and uses clear severity tags:
- What's secure -- categories where your app is fundamentally solid (generous: includes LLM judgment passes and categories with minor WARNs)
- Executive Summary -- posture emoji + exact pass/warn/fail counts + distinct findings count
- What needs attention -- issues grouped by category, ordered by priority:
- Each issue has a severity tag: :red_circle: FIX / :yellow_circle: INVESTIGATE / :green_circle: MONITOR/ACCEPT
- Each FIX issue includes 7 sections: WSTG Reference, Threat, What's wrong, What could happen, What could go wrong when fixing, How others solve this, Recommended action
- Audit Details -- script-computed category summary table with OWASP test IDs (numbers guaranteed accurate)
What it doesn't check
These checks are deferred to Anthropic's /security-review skill, which does deep code-level analysis:
| Check | Why deferred | Where to check instead |
|---|---|---|
| INFO-07: Map app execution paths | Code-level control flow analysis | /security-review |
| IDNT-01: Role definitions | Code-level role logic | /security-review |
| ATHN-04: Bypass authentication schema | Logic-level bypass analysis | /security-review |
| SESS-03: Session fixation | Code-level token rotation logic | /security-review |
| SESS-06: Logout functionality | Token invalidation logic | /security-review |
| SESS-08: Session puzzling | Multiple session token analysis | /security-review |
| ATHZ-01: Path traversal | Code-level file path logic | /security-review |
| CRYP-04: Weak hash algorithms | Code-level crypto review | /security-review |
| BUSL-02: Ability to forge requests | Code-level analysis | /security-review |
| BUSL-03: Integrity checks | Code-level analysis | /security-review |
| FILE-03: File inclusion | Code-level analysis | /security-review |
| LLM02: Insecure output handling | Output rendering code analysis | /security-review |
Supported stacks
| Stack | Status |
|---|---|
| Next.js + Prisma | Supported |
| Next.js + Supabase | Planned |
| Next.js + Drizzle | Planned |
Each stack has its own profile (profiles/{stack}.md) with WSTG-mapped checks, grep patterns, and judgment call definitions tailored to that stack's patterns and conventions.
Unsupported stacks
Note (April 2026): We currently only support the
nextjs-prismaprofile. Adding a new profile is straightforward — copy the existing profile, adjust the RUN/SKIP/DEFER decisions for your stack, and add matching grep patterns. PRs welcome, or open an issue to request a profile for your stack.
If your stack is not yet supported, partial stack-independent checks still run (security headers, TLS, exposed files, DNS, npm audit, secret patterns) with a message noting which stack-specific checks were skipped.
Security model
- Read-only. This skill does not modify any files in your project.
- No secret values read or output. Scripts check for key existence only (e.g., "does
STRIPE_SECRET_KEYexist in.env.production?") -- never reads or prints the value. - Network: GET/HEAD to user's own domain only. The only outbound HTTP requests go to the production domain discovered from your env files. No requests to third-party servers.
- No POST to any server. All network checks use GET or HEAD methods.
- No eval. Patterns are sourced from a companion
.shfile, not eval'd from markdown. - stdout only. No files are written. The report is presented in the conversation.
- Every command is commented. Every
curl,grep,dig, andfindcall has a# WHY:comment explaining what it checks and why. 102 WHY comments in scan.sh, 27 in discover.sh. - Minimal allowed-tools. Only Read, Grep, Glob, and two pattern-restricted Bash calls (discover.sh and scan.sh). No unrestricted shell access.
Safe for review by Gen Trust Hub, Socket, and Snyk.
Legal disclaimer
This skill is provided as-is, for informational purposes only. It does not constitute security advice, and its output should not be treated as a professional security assessment. A passing audit does not guarantee the absence of vulnerabilities.
The security of your project is solely the responsibility of the project owner and builders. The authors of this skill are not responsible for any security issues, breaches, damages, or losses that may arise from the use or misuse of this tool, or from acting (or failing to act) on its output.
Do not run against systems you do not own or have written permission to test.
This skill sends GET/HEAD requests to your production domain to check security headers, exposed files, and error handling behavior. These are lightweight, non-destructive requests equivalent to loading your site in a browser. No exploitation, brute-forcing, or load testing is performed.
Standards cited
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi