VICE: The Open-Source Security Swiss Army Knife That Audits Web Apps Like a Real Attacker + Video

Listen to this Post

Featured Image

Introduction:

Modern web applications are complex beasts—frontend frameworks, backend APIs, cloud databases, authentication systems, and third-party integrations all intertwined. Security auditing traditionally required piecing together dozens of separate tools: a crawler here, a secrets scanner there, a SQL injection tester somewhere else. VICE (Vulnerability Identification and Compliance Engine) changes that paradigm by bundling 15 remote attack modules and 7 white-box code analysis modules into a single CLI tool that thinks like an attacker. Whether you’re a penetration tester racing against a deadline or a DevOps engineer embedding security into your CI/CD pipeline, VICE delivers comprehensive coverage without the usual toolchain chaos.

Learning Objectives:

  • Master both black-box (remote) and white-box (local) security auditing workflows using a single CLI tool
  • Integrate automated security scanning into GitHub Actions for continuous vulnerability detection on every pull request
  • Understand how to interpret VICE’s scoring system (0–100, A–F) and enforce security gates in deployment pipelines
  • Learn to customize scans via configuration files and ignore patterns for targeted auditing
  • Gain hands-on experience with real-world vulnerability detection including secrets exposure, SQL injection, XSS, misconfigured CORS, and Supabase RLS policy gaps

1. Getting Started: Installation and First Scan

VICE is distributed as an npm package, making installation straightforward across Linux, macOS, and Windows (via WSL). The tool requires Node.js 16+ and uses Puppeteer for headless browser automation during remote scans.

Installation:

 Global installation
npm install -g vice-security

Verify installation
vice --version

First Interactive Scan:

 Launch interactive mode with menu-driven interface
vice

Quick remote scan against a live URL
vice scan https://your-target.com

Local audit of your project directory
vice audit .

The first launch displays a legal disclaimer reminding users that VICE is intended for authorized security testing only.

What This Does:

  • Global installation makes the `vice` command available system-wide
  • Interactive mode presents a menu for selecting scan types and viewing history
  • Remote scan launches a headless browser, crawls the target, and runs all 15 security modules
  • Local audit analyzes source code, dependencies, and configuration files without touching production
  1. Remote Scan (Black-Box): Thinking Like an External Attacker

The remote scan mode is VICE’s crown jewel—it audits your web application from the outside, exactly as an attacker would. Using a headless Puppeteer browser, it crawls your site, captures every JavaScript bundle, network request, and cookie, then runs 15 specialized security modules.

Running a Remote Scan:

 Basic remote scan
vice scan https://example.com

Scan with custom output and CI mode
vice scan https://example.com --ci --min-score 80

Generate HTML report
vice scan https://example.com --report

The 15 Remote Modules in Action:

| Module | What It Tests |

|–||

| Crawl & JS Analysis | Launches Puppeteer, captures all scripts including lazy-loaded chunks, extracts DOM |
| Secrets Detection | API keys (Supabase, Stripe, AWS, Firebase, GitHub), tokens, hardcoded passwords in client bundles |
| IP Detection | Server IPs exposed in code with network context analysis to filter false positives |
| Exposed Files | .env, .git/config, package.json, .DS_Store, source maps |
| HTTP Headers | Missing CSP, HSTS, X-Frame-Options, X-Content-Type-Options |
| Supabase Audit | RLS policies on every table, read/write access with anon key |
| Auth Injection | Signup abuse, direct injection into auth.users, service_role key detection |
| VPS Port Scan | 20 common ports (SSH, databases, Redis, admin panels), banner grabbing |
| Attack Tests | XSS reflected (6 payloads × 14 params), clickjacking, CORS, open redirect, path traversal |
| Login Audit | CSRF tokens, brute force (5 attempts), user enumeration, SQL injection (5 phases with UNION extraction) |

| Stack Detection | 40+ technologies fingerprinted |

| Subdomain Scan | DNS enumeration of 80+ common subdomains |
| DNS & Email | SPF, DKIM (12 selectors), DMARC, dangling CNAME detection |
| API Endpoints | Discovery from JS bundles, auth testing, rate limiting, SQL injection, CORS per endpoint |
| Storage Buckets | Supabase Storage bucket enumeration, file listing, upload testing |
| WebSocket | Realtime channel eavesdropping, Supabase Realtime, Socket.IO |

Linux Command for Headless Environment:

 For headless servers without a display, ensure Puppeteer dependencies are installed
sudo apt-get update
sudo apt-get install -y chromium-browser libgbm1 libasound2
export PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
vice scan https://example.com
  1. Local Audit (White-Box): Source Code Analysis with Fix Suggestions

While remote scanning shows you what an attacker sees, local audit reveals what’s hiding in your source code. Point VICE at your project directory, and it reads your source files, checks `.env` files, runs npm audit, analyzes Supabase migrations, and finds SQL injection and XSS vulnerabilities with line numbers and concrete fix recommendations.

Running a Local Audit:

 Audit current directory
vice audit .

Audit specific project path
vice audit /path/to/project

CI mode with minimum score enforcement
vice audit . --ci --min-score 80

Generate HTML report from local audit
vice audit . --report

The 7 Local Modules:

| Module | What It Checks |

|–|-|

| Code Secrets | Hardcoded API keys and tokens in source files with line numbers and fix suggestions |
| Environment Files | `.env` in .gitignore, real secrets in .env.example, sensitive config files exposed |
| Dependencies | `npm audit` for CVEs, outdated packages with known vulnerabilities |
| Supabase RLS | SQL migrations analyzed for missing ENABLE ROW LEVEL SECURITY, empty policies, unsafe grants |
| Auth & Middleware | Rate limiting, CORS wildcards, CSRF protection, JWT expiration, hardcoded passwords |
| Code Vulnerabilities | SQL injection (template literals in queries), XSS (v-html, dangerouslySetInnerHTML), eval(), command injection |
| Headers Config | CSP and HSTS configuration in Nuxt, Next.js, Vercel, Netlify, Express configs |

Windows PowerShell Commands:

 Install and run on Windows (via WSL recommended for full compatibility)
npm install -g vice-security
vice audit . --ci --min-score 70

For native Windows PowerShell (without WSL)
$env:PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
$env:PUPPETEER_EXECUTABLE_PATH="C:\Program Files\Google\Chrome\Application\chrome.exe"
vice scan https://example.com

4. Scoring System and Security Gates

Every VICE scan produces a security score from 0 to 100, graded A through F. This scoring system helps teams prioritize fixes and track security posture over time.

Severity Impact Table:

| Severity | Score Impact | Meaning |

|-|–||

| Critical | -15 | Exploitable vulnerability, immediate action required |
| High | -8 | Serious risk, fix soon |
| Medium | -3 | Moderate risk, fix when possible |

| Low | -1 | Minor risk |

| Info | 0 | Informational, no action needed |

Enforcing Security Gates:

 Fail the build if score drops below 70
vice audit . --ci --min-score 70

Custom threshold for stricter environments
vice audit . --ci --min-score 85

View historical scores to track progress
vice history

The `–ci` flag makes VICE exit with code 1 if the score falls below the minimum threshold, making it perfect for CI/CD integration.

  1. GitHub Actions Integration: Security on Every Pull Request

VICE ships as a fully-featured GitHub Action that scans your code on every pull request and push, posts findings as a PR comment, and maintains a live security badge in your repository.

Workflow Configuration:

Create `.github/workflows/security.yml` in your repository:

name: Security
on:
push:
branches: [bash]
pull_request:

permissions:
contents: write
pull-requests: write
security-events: write

jobs:
vice:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Webba-Creative-Technologies/vice@v3

What This Action Does:

  • On pull requests: Posts a comment with the security score, severity counts, and top findings grouped by severity. The same comment updates on every commit—no spam.
  • On push to default branch: Refreshes `.github/vice-badge.json` with the current score so your README badge stays up to date.
  • SARIF integration: Uploads findings to GitHub Code Scanning, appearing in the Security tab and as inline annotations on changed lines.
  • Score gating: Fails the workflow if the score drops below `min-score` (default 70), catching regressions before they merge.
  • Diff vs base: When a badge already exists on the base branch, the PR comment shows the score delta (e.g., 87 (-5 vs base)).

Custom Inputs:

- uses: Webba-Creative-Technologies/vice@v3
with:
path: '.'  Project path to audit
min-score: '80'  Minimum score to pass
fail-on-score: 'true'  Fail workflow if below threshold
comment-pr: 'true'  Post comment on pull requests
update-badge: 'true'  Update security badge on push
upload-sarif: 'true'  Upload to GitHub Code Scanning

Security Badge in README:

<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/USERNAME/REPO/main/.github/vice-badge.json" alt="VICE Security" />

The badge updates automatically on every push to your default branch.

6. Configuration and Customization

VICE supports both JavaScript configuration files and ignore patterns for fine-grained control.

Configuration File (`vice.config.js`):

export default {
url: 'https://your-site.com',
ignore: [
'Supabase Anon Key',
'Firebase API Key'
],
ci: {
minScore: 70,
failOnCritical: true,
},
supabaseMigrations: './supabase/migrations',
}

Ignore File (`.viceignore`):

 Ignore translation files
/i18n/
/locales/

Ignore a specific file
src/config/ui-labels.ts

Ignore by pattern
.locale.

Excluded files are skipped by all local audit modules (secrets, auth, code vulnerabilities, etc.).

HTML Reports:

 Generate HTML report for sharing with your team
vice scan https://example.com --report
vice audit . --report

Browse saved reports
vice history

Reports are saved in the `scans/` directory and can be exported to HTML from the history menu.

7. Extending VICE: Custom Modules for Developers

For security engineers and developers who need specialized checks, VICE’s modular architecture allows adding custom audit modules.

Adding a Local Audit Module:

1. Create `src/local/your-module.js`:

import { addFinding } from '../core/findings.js';

export async function auditYourModule(projectPath, spinner) {
spinner.text = 'Running your check...';

// Your custom logic here

addFinding(
'HIGH', // CRITICAL, HIGH, MEDIUM, LOW, INFO
'Module Name', // Section header in report
'Short title', // One-line summary
'Detailed info with file paths and values',
'How to fix this with concrete code examples'
);
}

2. Register it in `src/local/index.js`:

import { auditYourModule } from './your-module.js';

// Add to LOCAL_MODULES array:
{ name: 'Your module description', value: 'yourmod', fn: auditYourModule }

Adding a Remote Scan Module:

Add your module function in `scan.js` and register it in the `main()` function with a spinner and the module selection menu.

What Undercode Say:

  • VICE eliminates the “tool sprawl” problem—instead of juggling Nuclei, Nmap, OWASP ZAP, and manual code review, security teams get a unified interface that covers the entire attack surface from code to production.

  • The dual-mode architecture is a game-changer for DevSecOps. Remote scanning catches runtime misconfigurations and exposed secrets, while local audit prevents vulnerabilities from ever reaching production. Together, they form a complete security feedback loop.

  • GitHub Actions integration with SARIF means VICE findings appear natively in GitHub’s Security tab alongside CodeQL results—no custom dashboards or third-party tooling required. This lowers the barrier for teams adopting shift-left security.

  • The scoring system with configurable gates transforms security from a subjective art into an objective metric. Teams can track score trends over time and enforce quantitative security requirements in their deployment pipelines.

  • Open-source with MIT license makes VICE accessible to startups, enterprises, and independent security researchers alike. The 400+ stars on GitHub reflect growing community trust in this emerging security tool.

  • False positive reduction is a priority—the v3.2.1 release specifically addresses false positive reduction in remote scan modules, showing active development focused on practical usability.

  • The legal disclaimer on first launch is a responsible touch that reminds users of their ethical and legal obligations when using security testing tools.

Prediction:

  • +1 VICE is positioned to become the “go-to” security auditing tool for the Supabase and modern JavaScript ecosystem, filling a gap left by traditional scanners that don’t understand modern BaaS architectures.

  • +1 The GitHub Action integration will drive viral adoption among developers who want security checks without leaving their existing workflow—expect VICE to appear in thousands of repositories within the next year.

  • +1 As AI-assisted development accelerates, tools like VICE that can automatically detect and suggest fixes for vulnerabilities will become essential companions to AI coding assistants, catching the security gaps that AI models inevitably introduce.

  • -1 The reliance on Puppeteer and headless browsers means remote scans can be resource-intensive and may trigger rate-limiting or WAF blocks on production sites—teams should use staging environments for comprehensive scans.

  • +1 The modular architecture invites community contributions, and we can expect specialized modules for GraphQL, gRPC, and emerging frameworks to appear as the user base grows.

  • +1 VICE’s focus on concrete fix recommendations (not just vulnerability detection) addresses the 1 pain point in security auditing—”I know it’s broken, but how do I fix it?”—making it invaluable for development teams without dedicated security engineers.

▶️ Related Video (78% Match):

https://www.youtube.com/watch?v=CUKeIq1oF8U

🎯Let’s Practice For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

IT/Security Reporter URL:

Reported By: 0xfrost Vice – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow UndercodeTesting & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin | 🦋BlueSky