Skip to main content

AI-powered security scanner for modern development workflows

Project description

๐Ÿ›ก๏ธ GuardRails Security Scanner (Python)

AI-powered security scanner for modern development workflows

GuardRails uses advanced AI (Gemini) to detect security vulnerabilities in your code, providing detailed explanations and fix suggestions.

๐Ÿš€ Quick Start

# Install from PyPI
pip install guardrails-security

# Or install from source
pip install git+https://github.com/guardrails/guardrails-security.git

# Scan your code
guardrails scan .

# Initialize in your project
guardrails init

๐Ÿ“‹ Features

  • โœ… AI-Powered Analysis - Uses Gemini AI for intelligent vulnerability detection
  • โœ… Multi-Language Support - Python, JavaScript, TypeScript, Java, Go, PHP, Ruby, C#
  • โœ… Detailed Fix Suggestions - Get specific code fixes for each vulnerability
  • โœ… CI/CD Integration - Easy integration with GitHub Actions, GitLab CI, etc.
  • โœ… Git Hooks - Automatic scanning before commits
  • โœ… Multiple Output Formats - Text, JSON, table formats
  • โœ… Configurable - Customize scan rules and ignore patterns

๐Ÿ”ง Installation

From PyPI (Recommended)

pip install guardrails-security

From Source

git clone https://github.com/guardrails/guardrails-security.git
cd guardrails-security
pip install -e .

Development Installation

git clone https://github.com/guardrails/guardrails-security.git
cd guardrails-security
pip install -e ".[dev]"

๐Ÿ“– Usage

Basic Scanning

# Scan current directory
guardrails scan .

# Scan specific file
guardrails scan app.py

# Scan with JSON output
guardrails scan . --format json

# Save report to file
guardrails scan . --output security-report.json

CI/CD Integration

# Fail build on critical issues
guardrails scan . --fail-on-critical

# Generate JSON report for CI
guardrails scan . --format json --output guardrails-report.json

Git Hooks

# Install pre-commit hook
guardrails install-hook

# Install hook that blocks commits on critical issues
guardrails install-hook --fail-on-critical

Project Initialization

# Initialize GuardRails in your project
guardrails init

This creates:

  • guardrails.config.json - Configuration file
  • .guardrailsignore - Ignore patterns
  • Updates requirements.txt if it exists

โš™๏ธ Configuration

Create a guardrails.config.json file:

{
  "version": "1.0.0",
  "scan": {
    "extensions": [".py", ".js", ".ts", ".jsx", ".tsx", ".java", ".go"],
    "ignore": ["node_modules/**", ".git/**", "dist/**", "build/**"],
    "failOnCritical": true
  },
  "ci": {
    "enabled": true,
    "output": "guardrails-report.json"
  }
}

๐Ÿ”— CI/CD Integration

GitHub Actions

name: Security Scan
on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.9'
      - name: Install GuardRails
        run: pip install guardrails-security
      - name: Run Security Scan
        run: guardrails scan . --fail-on-critical

GitLab CI

security_scan:
  stage: test
  image: python:3.9
  script:
    - pip install guardrails-security
    - guardrails scan . --format json --output guardrails-report.json
  artifacts:
    reports:
      junit: guardrails-report.json

Makefile Integration

.PHONY: security-scan
security-scan:
	guardrails scan . --fail-on-critical

.PHONY: security-report
security-report:
	guardrails scan . --format json --output security-report.json

๐ŸŽฏ Supported Languages

  • Python - .py
  • JavaScript/TypeScript - .js, .ts, .jsx, .tsx
  • Java - .java
  • Go - .go
  • PHP - .php
  • Ruby - .rb
  • C# - .cs

๐Ÿ” Vulnerability Types

GuardRails detects:

  • SQL Injection - Database query vulnerabilities
  • XSS (Cross-Site Scripting) - Web application vulnerabilities
  • Hardcoded Credentials - Exposed passwords and API keys
  • Insecure Dependencies - Vulnerable third-party packages
  • Authentication Issues - Weak authentication mechanisms
  • Authorization Flaws - Access control problems
  • Data Exposure - Sensitive data leaks
  • Cryptographic Issues - Weak encryption and hashing

๐Ÿ“Š Output Formats

Text Format (Default)

๐Ÿ›ก๏ธ  GuardRails Security Report
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

๐Ÿ“Š Security Score: 75/100
๐Ÿ“ Files Scanned: 15
๐Ÿšจ Total Issues: 3

๐Ÿ“‹ Issues by Severity:
   ๐Ÿ”ด Critical: 1
   ๐ŸŸก High: 1
   ๐Ÿ”ต Medium: 1
   ๐ŸŸข Low: 0

๐Ÿ” Detailed Findings:

1. SQL INJECTION
   ๐Ÿ“ File: src/database.py:25
   โš ๏ธ  Potential SQL injection detected
   ๐Ÿ’ก Fix: Use parameterized queries to prevent SQL injection...

JSON Format

{
  "securityScore": 75,
  "summary": {
    "totalFiles": 15,
    "vulnerabilities": 3,
    "critical": 1,
    "high": 1,
    "medium": 1,
    "low": 0
  },
  "findings": [
    {
      "id": "sql-injection-123",
      "type": "SQL_INJECTION",
      "severity": "CRITICAL",
      "file": "src/database.py",
      "line": 25,
      "message": "Potential SQL injection detected",
      "fix": "Use parameterized queries...",
      "analysis": "Detailed AI analysis..."
    }
  ]
}

๐Ÿ› ๏ธ API Usage

from guardrails import GuardRailsScanner

# Initialize scanner
scanner = GuardRailsScanner(
    api_key="your-api-key",  # Optional for local server
    base_url="https://api.guardrails.dev"  # Or local server
)

# Scan directory
results = scanner.scan("./src")

# Check for critical issues
if scanner.has_critical_issues(results):
    print("Critical security issues found!")
    exit(1)

# Get formatted report
report = scanner.format_report(results, "text")
print(report)

# Check server status
status = scanner.check_server_status()
print(f"Server status: {status['status']}")

๐Ÿ”ง Command Line Options

guardrails scan <target> [options]

Options:
  -f, --format <format>     Output format (text, json, table)
  -o, --output <file>       Output file path
  --fail-on-critical        Exit with error code if critical issues found
  --ignore <patterns>       Ignore patterns (comma-separated)
  --extensions <exts>       File extensions to scan (comma-separated)
  --api-key <key>           GuardRails API key
  --server <url>            GuardRails server URL
  --timeout <seconds>       Request timeout
  -h, --help                Display help
  -V, --version             Display version

๐ŸŒ Server Setup

GuardRails requires a backend server for AI analysis:

# Clone the repository
git clone https://github.com/guardrails/guardrails.git
cd guardrails

# Install dependencies
pip install -r requirements.txt

# Set up environment
cp env.example .env
# Edit .env with your Gemini API key

# Start the server
python -m guardrails.server

๐Ÿ“ˆ Business Model

GuardRails offers multiple pricing tiers:

๐Ÿ†“ Free Tier

  • Individual developers
  • Public repositories
  • 100 scans/month
  • Basic vulnerability detection

๐Ÿ’ผ Team ($49/month)

  • Up to 5 developers
  • Private repositories
  • 1,000 scans/month
  • AI-powered fix suggestions
  • CI/CD integration

๐Ÿข Enterprise ($299/month)

  • Unlimited developers
  • Unlimited scans
  • Advanced reporting
  • Priority support
  • Custom rules

๐Ÿ›๏ธ Enterprise+ ($999/month)

  • On-premise deployment
  • SLA guarantee
  • Dedicated support
  • Custom integrations

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file.

๐Ÿ”— Links

๐Ÿ†˜ Support


Made with โค๏ธ by the GuardRails team

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

guardrails_security-1.0.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

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

guardrails_security-1.0.1-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file guardrails_security-1.0.1.tar.gz.

File metadata

  • Download URL: guardrails_security-1.0.1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for guardrails_security-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3cb8fbbe93623caa46e8ac9ddb5b2af067593c29c43b95e507d6ffe42f0fc15f
MD5 42fd0b845fce8672f1ece475e70dd7a2
BLAKE2b-256 bb9c4f1b4dc1d6d09522217bad95c1e728f53ecc4193ccbd3ca2d76668df25f0

See more details on using hashes here.

File details

Details for the file guardrails_security-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for guardrails_security-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a3ccb3f3e1bcbb6657c9e2b21ea69c0bfbc02a2205b7b4e1ee71c84e7b3e3593
MD5 dc0e4d4929510c12cf3bdcccdb0c37e0
BLAKE2b-256 83a671754d9288269ae082c9232bd5c82c6d0d18317eac70494c4f2d6cf2977e

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