Skip to main content

Multi-cloud storage bucket discovery via certificate transparency monitoring

Project description

CloudVault - Multi-Cloud Storage Security Scanner

License: MIT Python 3.9+ GitHub Actions

Enterprise-grade cloud storage security scanner with advanced attack chain analysis, MITRE ATT&CK mapping, and comprehensive reporting

CloudVault discovers exposed AWS S3, Google Cloud Storage, and Azure Blob containers through certificate transparency monitoring and provides actionable security insights with tree-formatted visualizations.

๐Ÿš€ Features

Core Capabilities

  • ๐Ÿ” Real-time Discovery - Certificate transparency log monitoring
  • โ˜๏ธ Multi-Provider - AWS S3, GCP Storage, Azure Blob
  • ๐ŸŽฏ Smart Detection - Automated permission checking
  • ๐Ÿ“Š Risk Scoring - Advanced multi-factor algorithm (0-100)
  • ๐Ÿ”— Attack Chains - Multi-hop privilege escalation paths
  • ๐ŸŽจ Tree Visualizations - Beautiful ASCII output everywhere

Advanced Features (Beyond Heimdall)

  • ๐Ÿ”” Alerts - Slack, Discord, Email notifications
  • ๐Ÿ” Advanced Filtering - Boolean logic + regex queries
  • ๐Ÿ“ˆ Historical Tracking - SQLite database with trend sparklines
  • ๐Ÿ”ง Auto-Remediation - Terraform/AWS CLI script generation
  • ๐ŸŒ Trust Graphs - Relationship visualization
  • ๐Ÿ“‹ Compliance - CIS Benchmarks, PCI-DSS mapping
  • ๐ŸŽจ Interactive TUI - Textual framework interface
  • ๐Ÿ“ค Multi-Format Export - SARIF, CSV, JSON, HTML, ASCII Tree

๐Ÿ“ฆ Installation

# Clone repository
git clone https://github.com/yourusername/CloudVault.git
cd CloudVault

# Install dependencies
pip install -e .

# Install optional dependencies
pip install aiosqlite websockets  # For history & real-time scanning

๐ŸŽฏ Quick Start

Basic Scan (Static Domain List)

# Create domain list
echo "example.com" > domains.txt
echo "company.com" >> domains.txt

# Scan
cloudvault scan --source domains.txt --output findings.json

Real-Time Monitoring (Certificate Transparency)

# Monitor CT logs
cloudvault scan --only-interesting --save-history

# With keywords filter
cloudvault scan --keywords-file keywords.txt

# With alerts
cloudvault scan \
  --notify slack \
  --slack-webhook https://hooks.slack.com/... \
  --alert-on critical,high

Dashboard & Analysis

# Security dashboard
cloudvault dashboard -i findings.json

# With filters
cloudvault dashboard -i findings.json \
  --filter "severity=CRITICAL,HIGH" \
  --only-public \
  --min-risk-score 75

# Attack chain analysis
cloudvault analyze -i findings.json -f tree

# Filter before analysis
cloudvault analyze -i findings.json \
  --filter "provider=aws" \
  --min-blast-radius 70

Export & Reporting

# SARIF for GitHub Security
cloudvault export -i findings.json -f sarif -o report.sarif

# HTML report
cloudvault export -i findings.json -f html -o report.html

# Tree visualization
cloudvault export -i findings.json -f tree -o report.txt

# CSV for spreadsheets
cloudvault export -i findings.json -f csv -o report.csv

Auto-Remediation

# Generate Terraform
cloudvault remediate -i findings.json -f terraform --dry-run

# Generate AWS CLI commands
cloudvault remediate -i findings.json -f awscli

Compliance Audit

# CIS Benchmarks
cloudvault compliance -i findings.json --framework CIS

# PCI-DSS
cloudvault compliance -i findings.json --framework PCI-DSS

History & Trends

# View scan history
cloudvault history list --limit 20

# Trend analysis with sparklines
cloudvault history trends --days 30

# Compare scans
cloudvault history compare --from-scan 1 --to-scan 5

๐Ÿ“‹ Commands Reference

Command Description
scan Discover exposed buckets (CT logs or domain list)
dashboard Security overview with risk scoring
analyze Attack chain and privilege escalation analysis
export Multi-format export (SARIF/CSV/JSON/HTML/Tree)
remediate Generate auto-fix scripts (Terraform/AWS CLI)
compliance Framework mapping (CIS/PCI-DSS/HIPAA)
history Scan history, trends, and comparison
graph Trust relationship visualization
tui Interactive terminal UI
baseline Delta reporting and ignore patterns
test-alerts Test notification channels
init-config Create default configuration

๐Ÿ”ง Advanced Usage

Filtering Syntax

# Equality
--filter "severity=CRITICAL"

# Multiple values (OR)
--filter "severity=CRITICAL,HIGH"

# Comparison operators
--filter "risk_score>=75"

# Regex
--filter "bucket_name~regex:.*-prod-.*"

# Boolean AND
--filter "severity=CRITICAL AND provider=aws"

# Exclude
--exclude "bucket_name~.*-test-.*"

# Combine filters
--filter "severity=CRITICAL,HIGH" \
--only-public \
--min-risk-score 80

Alert Configuration

# Slack
--notify slack \
--slack-webhook https://hooks.slack.com/... \
--alert-on critical,high

# Discord
--notify discord \
--discord-webhook https://discord.com/api/webhooks/...

# Email (SMTP)
--notify email \
--email-to security@company.com \
--smtp-host smtp.gmail.com \
--smtp-user alerts@company.com \
--smtp-password "..."

# Multiple channels
--notify slack discord email

CI/CD Integration

# .github/workflows/cloudvault.yml
- name: Run CloudVault
  run: |
    cloudvault scan --source domains.txt --output findings.json
    cloudvault export -i findings.json -f sarif -o cloudvault.sarif

- name: Upload SARIF
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: cloudvault.sarif

๐Ÿ“Š Output Examples

Dashboard

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘                  CloudVault Dashboard                     โ•‘
โ•‘              Cloud Security Risk Analysis                 โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

โ•”โ•โ•โ•โ• Security Risk Score โ•โ•โ•โ•โ•โ•—
โ•‘ Risk Score: 64.0/100         โ•‘
โ•‘ Status: HIGH                 โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

      Findings by Severity      
  CRITICAL: 2 (40.0%)  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
  HIGH:     2 (40.0%)  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
  MEDIUM:   1 (20.0%)  โ–ˆโ–ˆโ–ˆโ–ˆ

Top Security Risks:
  1. Public S3 Bucket with Sensitive Data
  2. Credentials in Bucket Objects
  3. Database Dump Exposure

Attack Chain Analysis

Multi-Hop Privilege Escalation (Blast Radius: 90.0)
โ”œโ”€โ”€ Access Public Bucket (T1530)
โ”œโ”€โ”€ Extract Credentials (T1552.001)
โ”œโ”€โ”€ Authenticate with Stolen Credentials (T1078)
โ””โ”€โ”€ Exfiltrate Sensitive Data (T1537)

Compliance Report

๐Ÿ“‹ CIS Compliance Report
============================================================

โ”œโ”€ Total Controls: 2
โ”œโ”€ โœ“ Passed: 0
โ””โ”€ โœ— Failed: 4

โ”œโ”€ CIS-2.1.5: Ensure S3 buckets are not publicly accessible
   โ””โ”€ โœ— company-prod-backups

๐Ÿ—๏ธ Architecture

cloudvault_discovery/
โ”œโ”€โ”€ cli/              # Click command-line interface
โ”œโ”€โ”€ core/             # Scanning engine (certstream, scanner)
โ”œโ”€โ”€ models/           # Data models (Finding, AttackChain)
โ”œโ”€โ”€ analysis/         # Risk scoring, MITRE mapping, attack chains
โ”œโ”€โ”€ dashboard/        #Rich visualization and metrics
โ”œโ”€โ”€ export/           # Multi-format exporters
โ”œโ”€โ”€ alerts/           # Notification channels
โ”œโ”€โ”€ filtering/        # Advanced query parser
โ”œโ”€โ”€ history/          # SQLite database & trends
โ”œโ”€โ”€ remediation/      # Auto-fix templates
โ”œโ”€โ”€ compliance/       # Framework mappers
โ”œโ”€โ”€ graph/            # Trust visualization
โ””โ”€โ”€ tui/              # Textual UI

๐Ÿงช Testing

# Run tests
pytest tests/ -v

# With coverage
pytest tests/ --cov=cloudvault_discovery

๐Ÿ“ Configuration

# config.yaml
scan:
  providers:
    aws: true
    gcp: true
    azure: true
  skip_lets_encrypt: true
  
alerts:
  slack_webhook: "https://hooks.slack.com/..."
  severity_filter: ["CRITICAL", "HIGH"]

filters:
  exclude_patterns:
    - "*-test-*"
    - "*-dev-*"

๐Ÿค Contributing

Contributions welcome! Please read CONTRIBUTING.md first.

๐Ÿ“„ License

MIT License - see LICENSE for details.

๐Ÿ™ Acknowledgments

๐Ÿ“ž Support


Made with โค๏ธ for cloud security

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

cloudvault4-2.0.0.tar.gz (140.4 kB view details)

Uploaded Source

Built Distribution

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

cloudvault4-2.0.0-py3-none-any.whl (200.7 kB view details)

Uploaded Python 3

File details

Details for the file cloudvault4-2.0.0.tar.gz.

File metadata

  • Download URL: cloudvault4-2.0.0.tar.gz
  • Upload date:
  • Size: 140.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for cloudvault4-2.0.0.tar.gz
Algorithm Hash digest
SHA256 968149eb210903f7c7b8ed2dc69fe0a11d3d0ecb06f588dfe1792e676d8db948
MD5 1d572d33721d7d45544a66d1e074433d
BLAKE2b-256 48c1a69595256729c4053dffa95b01c5cd76c2cd4a45b23129e7d9c8e8c3dd1c

See more details on using hashes here.

File details

Details for the file cloudvault4-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: cloudvault4-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 200.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for cloudvault4-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94dd8605cfcc3ac7feed838343a19dd9356e5f516e5417ce93fe0b3051deaff3
MD5 cf6c897b9c2688e7de8f1c9166eb3117
BLAKE2b-256 c413dce3ee6d79aae147449e5d285572c765db2cfd15e528c2c4481ff6cd7f00

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