Skip to main content

A powerful Python tool that scans your codebase for security vulnerabilities using Claude AI

Project description

🔒 Security Code Scanner

A powerful Python tool that scans your codebase for security vulnerabilities using Claude AI. This tool analyzes your code files and provides detailed security findings with suggested fixes.

✨ Features

  • Multi-language Support: Scans Python, JavaScript, TypeScript, Java, C/C++, PHP, Ruby, Go, Rust, and many more
  • AI-Powered Analysis: Uses Claude AI to identify security vulnerabilities with high accuracy
  • Parallel Processing: Fast scanning with configurable parallel workers
  • Detailed Reports: Provides vulnerability type, severity, location, and suggested fixes
  • Smart File Filtering: Automatically skips irrelevant files and directories
  • JSON Output: Option to save results in JSON format for further processing
  • Inline Comments: Add vulnerability comments directly to source files for easy review
  • Enhanced Comments: Include suggested fix code as comments, making it easy to implement fixes

🚀 Installation

  1. Clone or download the tool:

    git clone <repository-url>
    cd AI-code-sec-reviewer
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Set up your Anthropic API key:

    export ANTHROPIC_API_KEY='your-api-key-here'
    

    Or add it to your .bashrc or .zshrc:

    echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.bashrc
    source ~/.bashrc
    

📋 Usage

Basic Usage

Scan a project directory:

python security_scanner.py /path/to/your/project

Scan current directory:

python security_scanner.py .

Advanced Options

Increase parallel workers for faster scanning:

python security_scanner.py /path/to/project --max-workers 8

Save results to JSON file:

python security_scanner.py /path/to/project --output scan_results.json

Combine options:

python security_scanner.py /path/to/project --max-workers 6 --output results.json

📊 Output Format

The tool provides detailed output including:

  • Summary Statistics: Files analyzed, vulnerability rate, files modified with comments
  • Per-file Analysis: Each file with vulnerabilities is listed separately
  • Vulnerability Details:
    • Type and severity (High/Medium/Low)
    • Line number or code section
    • Description of the issue
    • Vulnerable code snippet
    • Suggested fix with commented code

Example Output

🔒 SECURITY SCAN RESULTS
================================================================================

📊 Summary:
   Files analyzed: 15
   Files with vulnerabilities: 3
   Files modified with comments: 3
   Vulnerability rate: 20.0%

🔍 /path/to/project/app.py
------------------------------------------------------------

🔴 HIGH - SQL Injection
   Line/Section: 45
   Description: User input directly concatenated into SQL query
   Vulnerable Code:
   query = f"SELECT * FROM users WHERE id = {user_id}"
   
   Suggested Fix:
   # Use parameterized queries to prevent SQL injection
   query = "SELECT * FROM users WHERE id = %s"
   cursor.execute(query, (user_id,))

💬 Added vulnerability comments to 3 files
   Review the comments in your source files for detailed information

📈 VULNERABILITY SUMMARY
================================================================================
   Total vulnerabilities found: 5
   High severity: 2
   Medium severity: 2
   Low severity: 1

🔍 Supported File Types

The scanner automatically detects and analyzes files with these extensions:

  • Web Development: .py, .js, .ts, .jsx, .tsx, .php, .rb
  • Backend: .java, .cs, .go, .rs, .swift, .kt
  • Systems: .c, .cpp, .cxx, .h, .hpp
  • Scripts: .sh, .bash, .ps1, .vbs, .pl
  • Data: .sql, .r, .m
  • Functional: .scala, .clj, .hs, .ml, .fs
  • Others: .scm, .lisp, .el

🚫 Skipped Directories and Files

The tool automatically skips:

  • Version Control: .git, .svn, .hg
  • Dependencies: node_modules, venv, .venv, env
  • Build Artifacts: build, dist, target, bin, obj
  • IDE Files: .idea, .vscode, .vs
  • Cache: __pycache__, .pytest_cache, coverage
  • Lock Files: package-lock.json, yarn.lock, poetry.lock
  • Documentation: README.md, LICENSE

⚙️ Configuration

Environment Variables

  • ANTHROPIC_API_KEY: Your Anthropic API key (required)

Command Line Options

  • project_path: Path to the project directory to scan (required)
  • --max-workers: Maximum number of parallel workers (default: 4)
  • --output: Output file to save results as JSON
  • --add-comments: Add vulnerability comments directly to source files

🔧 Troubleshooting

Common Issues

1. API Key Error:

❌ Error: ANTHROPIC_API_KEY environment variable not set

Solution: Set your API key as shown in the installation section.

2. No Files Found:

⚠️  No files found to scan

Solution: Check if the project path is correct and contains code files.

3. Permission Errors:

❌ Error: [Errno 13] Permission denied

Solution: Ensure you have read permissions for the project directory.

4. API Rate Limits:

❌ Error: Rate limit exceeded

Solution: Reduce the number of parallel workers or wait before retrying.

5. Comment Addition Failed:

⚠️  Failed to add comments to filename.py

Solution: Check if the file is writable and not locked by another process.

🛡️ Security Considerations

  • API Key Security: Never commit your API key to version control
  • Code Privacy: Your code is sent to Claude API for analysis
  • Rate Limits: Be mindful of API rate limits for large projects
  • False Positives: Review all findings manually before implementing fixes
  • File Modifications: The --add-comments flag modifies your source files. Consider backing up your code before running

🤝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai-code-scanner-1.0.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_code_scanner-1.0.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file ai-code-scanner-1.0.0.tar.gz.

File metadata

  • Download URL: ai-code-scanner-1.0.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for ai-code-scanner-1.0.0.tar.gz
Algorithm Hash digest
SHA256 897e6dd6e2854a0ff110cdfad03f983710b075126ef3b09bb20ddb639d6b7aee
MD5 efaf0b3ac6f07c9854e5978eb34cb3cd
BLAKE2b-256 a4f30f574c78d6c022f4274307f38e5cf0385c5305c542db5dc0b861f6798eb5

See more details on using hashes here.

File details

Details for the file ai_code_scanner-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_code_scanner-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6657421b414c1d4dc6e8c653e6594e99620dc0991aa6ef1f2106388262d88cb4
MD5 e78441d4cf4376f8a0027c90c686e71b
BLAKE2b-256 5b63436ba6e40b2959f6500c1dcb9ed2775f923fa1db82583a2a288f0c9f1d30

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page