
Framework per l'audit degli ecosistemi blockchain, l'identificazione delle vulnerabilità degli smart contract e la generazione di risultati strutturati con template di report multi-piattaforma per auditor di sicurezza.
Raptor è un framework per l'audit dell'ecosistema blockchain (contratti, protocolli, ecc.).
Raptor fornisce approcci strutturati e strumenti per identificare vulnerabilità di sicurezza nei contratti intelligenti e nei protocolli blockchain. Il framework aiuta gli auditor a documentare i risultati in modo coerente e generare report per più piattaforme di audit.
# Install latest stable version (recommended)
curl -sSL https://raw.githubusercontent.com/calvin-kimani/raptor/main/install.sh | bash
# Install specific version
curl -sSL https://raw.githubusercontent.com/calvin-kimani/raptor/main/install.sh | bash -s -- v0.1.0
curl -sSL https://raw.githubusercontent.com/calvin-kimani/raptor/main/install.sh | bash -s -- 0.1.0
# Latest stable
git clone https://github.com/calvin-kimani/raptor.git /tmp/raptor-install
bash /tmp/raptor-install/install.sh
rm -rf /tmp/raptor-install
# Specific version
git clone https://github.com/calvin-kimani/raptor.git /tmp/raptor-install
bash /tmp/raptor-install/install.sh v0.1.5
rm -rf /tmp/raptor-install
Quindi riavvia la shell o esegui:
source ~/.bashrc # or ~/.zshrc for zsh
Verifica l'installazione:
raptor --version
# Update to latest stable version
raptor update
# Update to specific version
raptor update v0.2.5
raptor update 0.2.5
# Upgrade to latest major version
raptor upgrade
# Upgrade to specific major version
raptor upgrade v1.0.0
# Downgrade to previous version
raptor downgrade v0.1.0
# List all available versions
raptor version --list
# Show current version
raptor version --current
raptor --version
raptor/
├── bin/ # CLI executables and modules
│ ├── raptor # Main Raptor CLI executable
│ └── cli/ # CLI module code
│ ├── __init__.py # Version info
│ ├── config.py # Configuration management
│ ├── finding.py # Finding management
│ ├── git.py # Git repository management
│ ├── init.py # Project initialization
│ ├── plugin_lock.py # Plugin lock file management
│ ├── plugin_manager.py # Plugin discovery and installation
│ ├── raptor.py # Main CLI logic
│ ├── report.py # Report generation
│ ├── update.py # Version management
│ └── version_utils.py # Version parsing and comparison
├── scripts/ # Custom user scripts directory
├── schemas/ # Report templates and finding schemas
│ ├── reports/
│ │ ├── sherlock-report.yml # Sherlock format template
│ │ ├── code4rena-report.yml # Code4rena format template
│ │ └── codehawks-report.yml # CodeHawks format template
│ └── findings/
│ └── finding-schema.json # JSON schema for findings
├── CONFIGURATION.md # Configuration guide
├── CONTRIBUTING.md # Contribution guidelines
├── install.sh # Installation script
├── raptor.toml # Framework configuration
└── README.md # This file
Raptor supporta la generazione di report per più piattaforme di audit:
Ogni piattaforma ha requisiti di formattazione specifici. Raptor memorizza i risultati in un formato JSON strutturato e li trasforma nel formato markdown appropriato per ogni piattaforma.
Posizioni dei modelli:
~/.raptor/schemas/reports/<project>/audits/reports/.templates/raptor.tomlVedi CONFIGURATION.md per aggiungere formati di report personalizzati.
Raptor fornisce un'interfaccia a riga di comando per gestire progetti di audit:
# Initialize a new audit project
raptor init my-audit
# Force overwrite existing directory
raptor init my-audit --force
# Clone repositories during init (shallow by default)
raptor init --git-url https://github.com/user/repo.git
# Clone multiple repos with full commit history
raptor init --git-url URL1 URL2 --commit
# Add repositories to existing project (shallow by default)
raptor git add https://github.com/user/repo.git
# Add multiple repos with full history
raptor git add URL1 URL2 --commit
# List all repositories in src/
raptor git list
# Update all repositories
raptor git update
# Update specific repositories
raptor git update repo1 repo2
# Remove repositories
raptor git remove repo-name
# Create a new finding (stored as JSON)
raptor finding --new "Attacker will drain funds from stakers" --severity HIGH
# Create finding and immediately generate reports
raptor finding --new "Reentrancy in withdraw" --severity CRITICAL --report sherlock code4rena
# Generate reports for all findings (default: sherlock format)
raptor report
# Generate reports in specific formats
raptor report --format sherlock code4rena codehawks
# Generate report for specific finding
raptor report --format sherlock --finding HIGH-reentrancy-attack
Caratteristiche principali:
--git-url o gestiscili con i comandi raptor git--depth 1 per download più velociRaptor supporta un'architettura plugin estensibile con gestione automatica delle dipendenze e supporto multi-versione.
# List all available plugins
raptor plugins list
raptor plugins -l
# Install plugin to project (.plugins/)
raptor plugins install solidity-parser
# Install plugin globally (~/.raptor/bin/cli/plugins/)
raptor plugins install solidity-parser --global
raptor plugins -i solidity-parser -g
# Install multiple plugins
raptor plugins install parser-plugin graph-plugin
# Force reinstall
raptor plugins install solidity-parser --force
raptor plugins -i solidity-parser -f
# Check plugin status
raptor plugins status solidity-parser
Raptor permette di installare più versioni dello stesso plugin affiancate:
# First installation (becomes active version)
raptor plugins install solidity-parser
# Installs to: .plugins/solidity-parser/1.0.0/
# Install different version (previous remains active)
raptor plugins install solidity-parser
# Installs to: .plugins/solidity-parser/1.1.0/
# List shows all versions
raptor plugins list
# Output:
# solidity-parser [Project] v1.0.0 (2 versions)
# Versions: v1.0.0*, v1.1.0
# Switch active version
raptor plugins switch solidity-parser 1.1.0
# Output: ✓ Switched 'solidity-parser' from v1.0.0 to v1.1.0
I plugin installati vengono tracciati in .plugins.lock che registra:
Aggiungi plugin a raptor.toml:
[plugins.my-plugin]
url = "https://raw.githubusercontent.com/user/repo/main/plugin/install.py"
version = ">=1.0.0" # Optional version constraint
description = "My custom plugin"
# Or use local path
[plugins.local-plugin]
url = "/path/to/plugin"
# or relative path
url = "../my-plugins/analyzer"
Vincoli di versione:
"1.0.0" o "@1.0.0" - Versione esatta">=1.0.0" - Versione minima">1.0.0" - Maggiore della versione"<=2.0.0" - Versione massima"<2.0.0" - Minore della versioneraptor init my-auditraptor git add https://github.com/user/repo.gitraptor finding --new "Titolo" --severity HIGHraptor report --format sherlock code4renaVedi CONFIGURATION.md per una guida dettagliata alla configurazione.
Leggi la nostra Guida ai Contributi.
Si prega di essere rispettosi e professionali in tutte le interazioni. Siamo tutti qui per imparare e migliorare insieme il progetto.
Concesso in licenza sotto Apache License, Versione 2.0 o MIT License a tua scelta.
Salvo diversa dichiarazione esplicita, qualsiasi contributo intenzionalmente inviato per l'inclusione in questi crate da te, come definito nella licenza Apache-2.0, sarà concesso in licenza duale come sopra, senza ulteriori termini o condizioni.
Questo framework è destinato esclusivamente a scopi educativi e di test di sicurezza autorizzati. Ottenere sempre l'autorizzazione appropriata prima di condurre audit di sicurezza.