
Фреймворк для аудита блокчейн-экосистем, выявления уязвимостей смарт-контрактов и создания структурированных результатов с использованием шаблонов отчетов для нескольких платформ для аудиторов безопасности.
Raptor — это фреймворк для аудита экосистемы блокчейна (контрактов, протоколов и т.д.).
Raptor предоставляет структурированные подходы и инструменты для выявления уязвимостей безопасности в смарт-контрактах и блокчейн-протоколах. Фреймворк помогает аудиторам последовательно документировать находки и создавать отчеты для нескольких аудиторских платформ.
# 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
Затем перезапустите оболочку или выполните:
source ~/.bashrc # or ~/.zshrc for zsh
Проверка установки:
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 поддерживает генерацию отчётов для нескольких аудиторских платформ:
Каждая платформа имеет особые требования к форматированию. Raptor хранит находки в структурированном формате JSON и преобразует их в соответствующий формат Markdown для каждой платформы.
Расположение шаблонов:
~/.raptor/schemas/reports/<project>/audits/reports/.templates/raptor.tomlСм. CONFIGURATION.md для добавления пользовательских форматов отчётов.
Raptor предоставляет интерфейс командной строки для управления аудиторскими проектами:
# 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
Ключевые возможности:
--git-url или управление ими через команды raptor git--depth 1 для ускорения загрузкиRaptor поддерживает расширяемую архитектуру плагинов с автоматическим управлением зависимостями и поддержкой нескольких версий.
# 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 позволяет устанавливать несколько версий одного плагина одновременно:
# 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
Установленные плагины отслеживаются в .plugins.lock, который записывает:
Добавьте плагины в 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"
Ограничения версий:
"1.0.0" или "@1.0.0" — точная версия">=1.0.0" — минимальная версия">1.0.0" — больше версии"<=2.0.0" — максимальная версия"<2.0.0" — меньше версииraptor init my-auditraptor git add https://github.com/user/repo.gitraptor finding --new "Title" --severity HIGHraptor report --format sherlock code4renaСм. CONFIGURATION.md для подробного руководства по конфигурации.
Пожалуйста, прочитайте наш Contributing Guide.
Пожалуйста, будьте уважительны и профессиональны во всех взаимодействиях. Мы все здесь, чтобы вместе учиться и улучшать проект.
Лицензировано на условиях либо Apache License, версия 2.0, либо MIT License по вашему выбору.
Если вы явно не заявляете иное, любой вклад, намеренно представленный для включения в эти пакеты вами, как определено в лицензии Apache-2.0, будет двойной лицензирован, как указано выше, без каких-либо дополнительных условий.
Этот фреймворк предназначен только для образовательных целей и авторизованного тестирования безопасности. Всегда получайте соответствующее разрешение перед проведением аудита безопасности.