bugnitor-security-scanner
Version:
AI-Era Security Scanner: Intelligent automated security review agent specializing in AI-generated vulnerability patterns
572 lines (468 loc) ⢠18.6 kB
Markdown
# š¤ Bugnitor Security Scanner
**AI-Era Security Scanner: Intelligent automated security review agent specializing in AI-generated vulnerability patterns**
[](https://badge.fury.io/js/bugnitor-security-scanner)
[](https://opensource.org/licenses/MIT)
[](https://github.com/ZunoBotics/bugnitor/actions)
## šÆ Why Bugnitor?
In the AI-driven development era, traditional security scanners fall short. **Bugnitor** is the first security scanner specifically designed to detect vulnerabilities commonly introduced by AI coding assistants like GitHub Copilot, ChatGPT, Claude, and others.
### The AI Security Challenge
When developers use AI assistants, they often get functional code that works but contains security vulnerabilities:
- š **Missing Authorization Checks** - AI generates CRUD operations without access control
- š **Injection Vulnerabilities** - AI uses string concatenation instead of parameterized queries
- š **Hardcoded Secrets** - AI incorporates example credentials from training data
- ā ļø **Missing Input Validation** - AI focuses on functionality, skips security validation
- š **Weak Cryptography** - AI suggests outdated algorithms from legacy examples
**Bugnitor solves this by understanding AI code generation patterns and detecting these specific vulnerability classes.**
## ⨠Key Features
### š¤ AI-Specific Vulnerability Detection
- **Missing Authorization Checks** on DELETE/Admin operations
- **Direct Database Queries** with user input concatenation
- **Hardcoded Secrets** from AI examples and prompts
- **Unsanitized Input Processing** (CSV, JSON, file uploads)
- **Detailed Error Exposure** in catch blocks
- **Weak Cryptographic Algorithms** from outdated AI training data
- **Unvalidated Redirects** and missing input validation
### š Enhanced Secret Detection
- **Context-Aware Analysis** - Higher confidence for real secrets vs. test data
- **Advanced Pattern Matching** - Database URLs, JWT secrets, API keys
- **AI Training Data Detection** - Identifies secrets from AI examples
- **Binary File Exclusion** - Eliminates false positives in images/assets
- **Confidence Scoring** - Reduces noise with intelligent filtering
### š”ļø Comprehensive Security Analysis
- **OWASP Top 10 Coverage** - All major vulnerability categories
- **CWE Mapping** - Industry-standard vulnerability classification
- **Dependency Analysis** - Vulnerable package detection
- **CI/CD Security** - GitHub Actions, GitLab CI, Docker analysis
- **Code Quality Scoring** - Maintainability and complexity analysis
### š Intelligent Reporting
- **Security Grading** (A-F) with detailed breakdowns
- **File-by-file Analysis** with exact line numbers
- **Confidence Scoring** to prioritize real threats
- **Actionable Remediation** with code examples
- **Multiple Output Formats** (Text, JSON, SARIF)
## š Quick Start
### Installation
```bash
# Global installation (recommended)
npm install -g bugnitor-security-scanner
# Local installation
npm install --save-dev bugnitor-security-scanner
```
### Basic Usage
```bash
# Scan current directory
bugnitor scan
# Scan specific directory
bugnitor scan /path/to/project
# Focus on secrets only
bugnitor scan --secrets-only
# Focus on AI-generated vulnerabilities
bugnitor scan --ai-vulnerabilities
# High-severity issues only
bugnitor scan --min-severity high
# JSON output for CI/CD integration
bugnitor scan --format json --output security-report.json
```
## š Command Reference
### Core Scanning Commands
```bash
# Basic project scan
bugnitor scan [path]
# Scan with specific focus
bugnitor scan --secrets-only # Only secrets and credentials
bugnitor scan --vulnerabilities-only # Only code vulnerabilities
bugnitor scan --ai-vulnerabilities # AI-specific patterns
bugnitor scan --dependencies-only # Only dependency issues
bugnitor scan --cicd-only # Only CI/CD configurations
# Filtering and output
bugnitor scan --min-severity <level> # critical, high, medium, low
bugnitor scan --format <format> # text, json, sarif
bugnitor scan --output <file> # Save to file
bugnitor scan --exclude <patterns...> # Exclude file patterns
bugnitor scan --include <patterns...> # Include file patterns
# Advanced options
bugnitor scan --detailed # Detailed file analysis
bugnitor scan --show-grade # Display security grade
bugnitor scan --no-color # Disable colored output
```
### Information Commands
```bash
# List all detection capabilities
bugnitor patterns
# Show version information
bugnitor --version
# Show help
bugnitor --help
```
## šÆ Specialized Scanning Modes
### 1. AI Vulnerability Focus
```bash
bugnitor scan --ai-vulnerabilities
```
Specifically targets vulnerabilities commonly introduced by AI coding assistants:
- Missing authorization on admin/delete routes
- SQL injection via string concatenation
- Hardcoded credentials from AI examples
- Missing input validation on generated endpoints
### 2. Enhanced Secret Detection
```bash
bugnitor scan --secrets-only
```
Advanced secret detection with context analysis:
- AWS keys, GitHub tokens, API keys
- JWT signing secrets, database URLs
- Context-aware confidence scoring
- Reduced false positives
### 3. Comprehensive Security Audit
```bash
bugnitor scan --detailed --show-grade
```
Full security assessment including:
- All vulnerability categories
- Dependency analysis
- CI/CD security review
- Code quality metrics
- Security grading (A-F)
## š Output Formats
### 1. Human-Readable Text (Default)
```bash
bugnitor scan
```
Colored, formatted output perfect for developers:
- Clear categorization by severity
- Exact file locations and line numbers
- Code context and remediation advice
- Security grade and next steps
### 2. JSON for Automation
```bash
bugnitor scan --format json --output results.json
```
Structured data for CI/CD integration:
```json
{
"projectPath": "/path/to/project",
"scanTime": "2024-01-15T10:30:00Z",
"securityGrade": {
"overall": "B",
"score": 82
},
"findings": [
{
"type": "injection",
"severity": "critical",
"title": "Missing Authorization Check",
"file": "routes/admin.js",
"line": 15,
"confidence": 0.95,
"cwe": "CWE-862",
"owasp": "A01:2021 ā Broken Access Control"
}
]
}
```
### 3. SARIF for Security Tools
```bash
bugnitor scan --format sarif --output results.sarif
```
Static Analysis Results Interchange Format for integration with:
- GitHub Security tab
- Azure DevOps
- SonarQube
- Other SARIF-compatible tools
## š ļø CI/CD Integration
### GitHub Actions
```yaml
name: Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install Bugnitor
run: npm install -g bugnitor-security-scanner
- name: Run Security Scan
run: |
bugnitor scan --format json --output security-results.json
bugnitor scan --min-severity high
- name: Upload Results
uses: actions/upload-artifact@v3
with:
name: security-results
path: security-results.json
```
### GitLab CI
```yaml
security_scan:
stage: test
image: node:18
before_script:
- npm install -g bugnitor-security-scanner
script:
- bugnitor scan --format json --output security-results.json
- bugnitor scan --min-severity high
artifacts:
reports:
junit: security-results.json
expire_in: 1 week
```
### Jenkins Pipeline
```groovy
pipeline {
agent any
stages {
stage('Security Scan') {
steps {
sh 'npm install -g bugnitor-security-scanner'
sh 'bugnitor scan --format json --output security-results.json'
// Fail build on critical issues
script {
def result = sh(
script: 'bugnitor scan --min-severity critical',
returnStatus: true
)
if (result != 0) {
error("Critical security vulnerabilities found!")
}
}
}
post {
always {
archiveArtifacts artifacts: 'security-results.json'
}
}
}
}
}
```
## š Detection Capabilities
### š¤ AI-Generated Vulnerability Patterns
- **Missing Authorization Checks** on DELETE/Admin Operations
- **Direct Database Queries** with User Input
- **Unsanitized CSV/File Processing**
- **Hardcoded Secrets** from AI Examples
- **Detailed Error Information Exposure**
- **Weak Cryptographic Algorithms** from AI Suggestions
- **Unvalidated Redirects**
- **Missing Input Validation** on Endpoints
### š Enhanced Secret Detection
- **AWS Access Keys & Secret Keys** (Context-Aware)
- **GitHub Personal Access Tokens**
- **OpenAI API Keys**
- **Stripe API Keys**
- **Google API Keys**
- **Firebase Tokens**
- **JWT Signing Secrets**
- **SSH Private Keys**
- **Database Connection Strings** with Credentials
- **Slack & Discord Tokens**
- **Generic API Keys** with Context Analysis
### š Injection & Syntax Attacks
- **SQL Injection** (concatenation & interpolation)
- **NoSQL Injection**
- **Cross-Site Scripting** (XSS) - DOM & Stored
- **Command Injection** / Shell Injection
- **Server-Side Template Injection**
- **Code Injection** via eval()
### š Broken Access & Authorization
- **Missing Authorization Checks**
- **Insecure Direct Object References**
- **Privilege Escalation Vulnerabilities**
### š¦ Deserialization & Remote Code Execution
- **Unsafe Deserialization** (pickle, yaml, JSON)
- **Log4Shell JNDI Lookup** Attacks
- **Object Injection Vulnerabilities**
### š File, Path & Resource Manipulation
- **Directory Traversal** / Path Traversal
- **Unrestricted File Upload**
- **Zip-Slip** / Archive Traversal
### š§ Memory & Language-Specific
- **Buffer Overflow** (C/C++)
- **Format String Vulnerabilities**
- **Integer Overflow/Underflow**
### š Cryptography & Configuration
- **Weak Cryptographic Algorithms** (MD5, SHA1, DES)
- **Insecure Random Number Generation**
- **Improper SSL/TLS Configuration**
- **Missing Encryption** for Sensitive Data
### š Dependency & Supply-Chain
- **Vulnerable Dependencies** (Log4j, Lodash, etc.)
- **Outdated Package Versions**
- **Suspicious Package Names**
- **Insecure Package Sources** (HTTP)
### š CI/CD & Infrastructure
- **GitHub Actions Security Issues**
- **GitLab CI Configuration Problems**
- **Jenkins Pipeline Vulnerabilities**
- **Docker Security Misconfigurations**
- **Secrets in CI/CD Files**
- **Excessive Permissions**
## š Version History
### v3.1.0 (Latest) - AI-Era Security Scanner
**š¤ Major AI Vulnerability Detection Update**
- ā
**NEW**: AI-specific vulnerability patterns for code generated by assistants
- ā
**NEW**: Missing authorization detection on DELETE/Admin operations
- ā
**NEW**: Direct database query vulnerability detection
- ā
**NEW**: Hardcoded secrets from AI examples detection
- ā
**NEW**: Enhanced error exposure analysis
- ā
**NEW**: AI context-aware confidence scoring
- ā
**NEW**: `--ai-vulnerabilities` CLI flag
- ā
**IMPROVED**: Pattern descriptions with AI context explanations
- ā
**IMPROVED**: Detection accuracy for AI-generated code patterns
### v3.0.0 - Enhanced Security Analysis
**š Major Security Enhancement Update**
- ā
**NEW**: Enhanced secret detection with context analysis
- ā
**NEW**: Dangerous API usage detection (eval, exec, etc.)
- ā
**NEW**: Code quality and maintainability scoring
- ā
**NEW**: AST-based analysis for deeper code understanding
- ā
**NEW**: Binary file detection to reduce false positives
- ā
**NEW**: Context-aware confidence scoring
- ā
**IMPROVED**: Better cryptographic algorithm detection
- ā
**IMPROVED**: Reduced false positives in test files
### v2.1.0 - Accuracy Improvements
**šÆ False Positive Reduction Update**
- ā
**FIXED**: Binary file false positives (PNG, JPEG exclusion)
- ā
**FIXED**: Cryptographic algorithm detection accuracy
- ā
**FIXED**: AWS Secret Key pattern specificity
- ā
**IMPROVED**: Context-aware confidence scoring
- ā
**IMPROVED**: File size limits (10MB max) for performance
### v2.0.0 - Comprehensive Analysis
**š Intelligent Security Review Update**
- ā
**NEW**: Advanced vulnerability detection for OWASP Top 10
- ā
**NEW**: Dependency analysis (npm, pip, maven, etc.)
- ā
**NEW**: CI/CD security analysis (GitHub Actions, GitLab CI, Docker)
- ā
**NEW**: Security grading system (A-F grades)
- ā
**NEW**: Intelligence recommendations and next steps
- ā
**NEW**: Multiple output formats (JSON, SARIF)
### v1.1.0 - Enhanced Reporting
**š Detailed Analysis Update**
- ā
**NEW**: File-by-file and folder-by-folder analysis
- ā
**NEW**: Exact file paths and line numbers
- ā
**NEW**: Folder hierarchy breakdown
- ā
**NEW**: Enhanced reporting with metadata
### v1.0.0 - Initial Release
**š Core Security Scanner**
- ā
Basic vulnerability detection patterns
- ā
Secret detection for common API keys and tokens
- ā
CLI interface with scan command
- ā
Text output format
- ā
File analysis with pattern matching
## šļø Architecture
### Core Components
```
bugnitor-security-scanner/
āāā src/
ā āāā scanner.ts # Main scanning engine
ā āāā ai-vulnerability-detector.ts # AI-specific patterns
ā āāā enhanced-secrets.ts # Advanced secret detection
ā āāā dangerous-api-detector.ts # Unsafe API usage
ā āāā code-quality-analyzer.ts # Quality metrics
ā āāā advanced-vulnerabilities.ts # OWASP patterns
ā āāā dependency-analyzer.ts # Package vulnerabilities
ā āāā cicd-analyzer.ts # CI/CD security
ā āāā security-grader.ts # Grading system
ā āāā reporter.ts # Output formatting
ā āāā cli.ts # Command interface
ā āāā types.ts # Type definitions
āāā bin/
ā āāā bugnitor.js # CLI entry point
āāā dist/ # Compiled JavaScript
```
### Detection Flow
1. **File Discovery** - Glob pattern matching with exclusion filters
2. **Binary Detection** - Skip binary files using file signatures
3. **Multi-Layer Analysis**:
- AI-specific vulnerability patterns
- Enhanced secret detection with context
- Dangerous API usage analysis
- Advanced vulnerability patterns (OWASP)
- Code quality metrics
4. **Dependency Analysis** - Package vulnerability scanning
5. **CI/CD Analysis** - Configuration security review
6. **Confidence Scoring** - Context-aware accuracy calculation
7. **Security Grading** - A-F grade calculation
8. **Report Generation** - Multiple output formats
## š¤ Contributing
We welcome contributions! Here's how to get started:
### Development Setup
```bash
# Clone the repository
git clone https://github.com/ZunoBotics/bugnitor.git
cd bugnitor
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Run locally
node dist/index.js scan test-project
```
### Adding New Vulnerability Patterns
1. **Choose the appropriate detector file**:
- `ai-vulnerability-detector.ts` - AI-specific patterns
- `enhanced-secrets.ts` - Secret patterns
- `dangerous-api-detector.ts` - API usage patterns
- `advanced-vulnerabilities.ts` - General vulnerabilities
2. **Add your pattern**:
```typescript
{
id: 'your-vulnerability-id',
name: 'Descriptive Vulnerability Name',
category: 'Vulnerability Category',
description: 'What this vulnerability detects',
patterns: [/your-regex-pattern/gi],
severity: 'critical', // critical, high, medium, low
confidence: 0.9,
fileTypes: ['js', 'ts', 'py'],
cwe: 'CWE-XXX',
owasp: 'AXX:2021 ā Category Name',
impact: 'Description of impact',
remediation: {
description: 'How to fix this',
effort: 'low', // low, medium, high
codeExample: '// Example fix'
}
}
```
3. **Test your pattern**:
```bash
# Create test file with vulnerability
echo 'your test code' > test-vuln.js
# Test detection
node dist/index.js scan test-vuln.js
```
### Submitting Changes
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/new-detection`
3. Make your changes and add tests
4. Ensure all tests pass: `npm test`
5. Submit a pull request with detailed description
## š License
MIT License - see [LICENSE](LICENSE) file for details.
## š Links
- **NPM Package**: https://www.npmjs.com/package/bugnitor-security-scanner
- **GitHub Repository**: https://github.com/ZunoBotics/bugnitor
- **Issue Tracker**: https://github.com/ZunoBotics/bugnitor/issues
- **Documentation**: https://github.com/ZunoBotics/bugnitor/wiki
## š Support
### Getting Help
- š **Documentation**: Check this README and the [Wiki](https://github.com/ZunoBotics/bugnitor/wiki)
- š **Bug Reports**: [Open an issue](https://github.com/ZunoBotics/bugnitor/issues/new?template=bug_report.md)
- š” **Feature Requests**: [Request a feature](https://github.com/ZunoBotics/bugnitor/issues/new?template=feature_request.md)
- š¬ **Discussions**: [Join the discussion](https://github.com/ZunoBotics/bugnitor/discussions)
### Common Issues
**Q: Too many false positives in my scan results?**
A: Use `--min-severity high` to focus on critical issues, or `--exclude test/**` to skip test files.
**Q: How do I integrate with my CI/CD pipeline?**
A: Use `--format json` for automation and check the exit code (0=success, 1=issues found, 2=critical issues).
**Q: The scanner is taking too long on large projects?**
A: Use `--include src/**` to focus on source code directories, or `--exclude node_modules/**` to skip dependencies.
**Q: How accurate are the vulnerability detections?**
A: Bugnitor uses confidence scoring. Focus on findings with >80% confidence for highest accuracy.
---
**ā” Powered by Bugnitor - Secure your AI-generated code!**
*Made with ā¤ļø for the AI development era*