SherlockChain — это мощная платформа анализа безопасности смарт-контрактов. Этот инструмент объединяет функции инструмента Slither (инструмент безопасности для смарт-контрактов) и представляет передовые модели искусственного интеллекта, призванные помочь исследователям в анализе смарт-контрактов Solidity, Vyper и Plutus для обеспечения безопасности. анализ.
Основные функции
1. Комплексное обнаружение уязвимостей: детектор SherlockChain может выявлять различные типы уязвимостей, включая проблемы безопасности с высоким уровнем риска, такие как уязвимости повторного входа и незащищенные обновления; 2. Анализ безопасности на основе искусственного интеллекта. Интегрированная модель искусственного интеллекта повышает точность обнаружения уязвимостей и предоставляет разработчикам ценные рекомендации по обеспечению безопасности; 3. Бесшовная интеграция: SherlockChain поддерживает бесшовную интеграцию с популярными средами разработки (такими как Hardhat, Foundry и Brownie), что упрощает интеграцию в существующие рабочие процессы; 4. Интуитивно понятные отчеты анализа: SherlockChain может генерировать подробные отчеты с четкими пояснениями и фрагментами кода, которые могут помочь разработчикам быстро понять и решить обнаруженные проблемы безопасности; 5. Пользовательский анализ. Платформа предоставляет гибкий API, позволяющий пользователям писать собственный анализ и детекторы, а также настраивать SherlockChain в соответствии с фактическими потребностями; 6. Непрерывный мониторинг. Мы можем интегрировать SherlockChain в наш собственный конвейер CI/CD, чтобы обеспечить услуги непрерывного мониторинга и оповещения для базы кода смарт-контракта;
Функции, управляемые искусственным интеллектом
1. Интеллектуальное подтверждение приоритета уязвимостей. Модель искусственного интеллекта анализирует контекст и потенциальное влияние обнаруженных уязвимостей и предоставляет разработчикам приоритетный список проблем, которые необходимо решить; 2. Предложения по автоматическому исправлению: компонент искусственного интеллекта предоставит решения по устранению уязвимостей и модификации кода для устранения выявленных уязвимостей и ускорения процесса восстановления; 3. Проактивный аудит безопасности: модель искусственного интеллекта SherlockChain будет постоянно отслеживать целевую кодовую базу, активно выявлять возникающие угрозы и подавать сигналы раннего предупреждения; 4. Взаимодействие на естественном языке. Пользователи могут использовать естественный язык для взаимодействия с SherlockChain для запроса инструментов, запроса конкретного анализа и получения подробных ответов;
Установка инструмента
Поскольку этот инструмент разработан на основе Python 3, сначала нам необходимо установить и настроить последнюю версию среды Python 3 на локальном устройстве.
Далее исследователи могут напрямую использовать следующую команду для локального клонирования исходного кода проекта:
git clone https://github.com/0xQuantumCoder/SherlockChain.git
Затем переключитесь в каталог проекта и выполните скрипт установки:
cd SherlockChain
pip install .
Использование инструмента
1. Обнаружение уязвимостей. Параметры --detect и --exclude-detectors позволяют пользователям указывать детекторы уязвимостей, которые будут выполняться, включая встроенные детекторы и детекторы, управляемые искусственным интеллектом; 2. Отчеты об анализе: --report-format, --report-output и различные параметры --report-* могут управлять формой аналитических отчетов и поддерживать создание отчетов в различных форматах, таких как JSON, Markdown, SARIF и т. д.; 3. Фильтр. Опция --filter-* позволяет фильтровать сообщаемые проблемы по серьезности, влиянию, достоверности и другим критериям; 4. Интеграция ИИ. Опция --ai-* позволяет пользователям настраивать и контролировать функции ИИ SherlockChain, такие как определение приоритета уязвимостей с высоким уровнем воздействия, включение определенных детекторов ИИ и управление конфигурациями моделей ИИ; 5. Интеграция со средами разработки. Опции --truffle и --truffle-build-directory позволяют нам интегрировать SherlockChain в популярные среды разработки, такие как Truffle; 6. Разное: предоставляет дополнительные возможности для составления смарт-контрактов, детекторов перечисления и пользовательских процессов анализа;
Используйте следующую команду, чтобы просмотреть параметры справки инструмента:
sherlockchain --help
После выполнения приведенной выше команды вы можете просмотреть все параметры параметров и соответствующую информацию описания, предоставленную платформой SherlockChain:
usage: sherlockchain [-h] [--version] [--solc-remaps SOLC_REMAPS] [--solc-settings SOLC_SETTINGS]
[--solc-version SOLC_VERSION] [--truffle] [--truffle-build-directory TRUFFLE_BUILD_DIRECTORY]
[--truffle-config-file TRUFFLE_CONFIG_FILE] [--compile] [--list-detectors]
[--list-detectors-info] [--detect DETECTORS] [--exclude-detectors EXCLUDE_DETECTORS]
[--print-issues] [--json] [--markdown] [--sarif] [--text] [--zip] [--output OUTPUT]
[--filter-paths FILTER_PATHS] [--filter-paths-exclude FILTER_PATHS_EXCLUDE]
[--filter-contracts FILTER_CONTRACTS] [--filter-contracts-exclude FILTER_CONTRACTS_EXCLUDE]
[--filter-severity FILTER_SEVERITY] [--filter-impact FILTER_IMPACT]
[--filter-confidence FILTER_CONFIDENCE] [--filter-check-suicidal]
[--filter-check-upgradeable] [--filter-check-erc20] [--filter-check-erc721]
[--filter-check-reentrancy] [--filter-check-gas-optimization] [--filter-check-code-quality]
[--filter-check-best-practices] [--filter-check-ai-detectors] [--filter-check-all]
[--filter-check-none] [--check-all] [--check-suicidal] [--check-upgradeable]
[--check-erc20] [--check-erc721] [--check-reentrancy] [--check-gas-optimization]
[--check-code-quality] [--check-best-practices] [--check-ai-detectors] [--check-none]
[--check-all-detectors] [--check-all-severity] [--check-all-impact] [--check-all-confidence]
[--check-all-categories] [--check-all-filters] [--check-all-options] [--check-all]
[--check-none] [--report-format {json,markdown,sarif,text,zip}] [--report-output OUTPUT]
[--report-severity REPORT_SEVERITY] [--report-impact REPORT_IMPACT]
[--report-confidence REPORT_CONFIDENCE] [--report-check-suicidal]
[--report-check-upgradeable] [--report-check-erc20] [--report-check-erc721]
[--report-check-reentrancy] [--report-check-gas-optimization] [--report-check-code-quality]
[--report-check-best-practices] [--report-check-ai-detectors] [--report-check-all]
[--report-check-none] [--report-all] [--report-suicidal] [--report-upgradeable]
[--report-erc20] [--report-erc721] [--report-reentrancy] [--report-gas-optimization]
[--report-code-quality] [--report-best-practices] [--report-ai-detectors] [--report-none]
[--report-all-detectors] [--report-all-severity] [--report-all-impact]
[--report-all-confidence] [--report-all-categories] [--report-all-filters]
[--report-all-options] [--report-all] [--report-none] [--ai-enabled] [--ai-disabled]
[--ai-priority-high] [--ai-priority-medium] [--ai-priority-low] [--ai-priority-all]
[--ai-priority-none] [--ai-confidence-high] [--ai-confidence-medium] [--ai-confidence-low]
[--ai-confidence-all] [--ai-confidence-none] [--ai-detectors-all] [--ai-detectors-none]
[--ai-detectors-specific AI_DETECTORS_SPECIFIC] [--ai-detectors-exclude AI_DETECTORS_EXCLUDE]
[--ai-models-path AI_MODELS_PATH] [--ai-models-update] [--ai-models-download]
[--ai-models-list] [--ai-models-info] [--ai-models-version] [--ai-models-check]
[--ai-models-upgrade] [--ai-models-remove] [--ai-models-clean] [--ai-models-reset]
[--ai-models-backup] [--ai-models-restore] [--ai-models-export] [--ai-models-import]
[--ai-models-config AI_MODELS_CONFIG] [--ai-models-config-update] [--ai-models-config-reset]
[--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-list]
[--ai-models-config-info] [--ai-models-config-version] [--ai-models-config-check]
[--ai-models-config-upgrade] [--ai-models-config-remove] [--ai-models-config-clean]
[--ai-models-config-reset] [--ai-models-config-backup] [--ai-models-config-restore]
[--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-path AI_MODELS_CONFIG_PATH]
[--ai-models-config-file AI_MODELS_CONFIG_FILE] [--ai-models-config-url AI_MODELS_CONFIG_URL]
[--ai-models-config-name AI_MODELS_CONFIG_NAME] [--ai-models-config-description AI_MODELS_CONFIG_DESCRIPTION]
[--ai-models-config-version-major AI_MODELS_CONFIG_VERSION_MAJOR]
[--ai-models-config-version-minor AI_MODELS_CONFIG_VERSION_MINOR]
[--ai-models-config-version-patch AI_MODELS_CONFIG_VERSION_PATCH]
[--ai-models-config-author AI_MODELS_CONFIG_AUTHOR]
[--ai-models-config-license AI_MODELS_CONFIG_LICENSE]
[--ai-models-config-url-documentation AI_MODELS_CONFIG_URL_DOCUMENTATION]
[--ai-models-config-url-source AI_MODELS_CONFIG_URL_SOURCE]
[--ai-models-config-url-issues AI_MODELS_CONFIG_URL_ISSUES]
[--ai-models-config-url-changelog AI_MODELS_CONFIG_URL_CHANGELOG]
[--ai-models-config-url-support AI_MODELS_CONFIG_URL_SUPPORT]
[--ai-models-config-url-website AI_MODELS_CONFIG_URL_WEBSITE]
[--ai-models-config-url-logo AI_MODELS_CONFIG_URL_LOGO]
[--ai-models-config-url-icon AI_MODELS_CONFIG_URL_ICON]
[--ai-models-config-url-banner AI_MODELS_CONFIG_URL_BANNER]
[--ai-models-config-url-screenshot AI_MODELS_CONFIG_URL_SCREENSHOT]
[--ai-models-config-url-video AI_MODELS_CONFIG_URL_VIDEO]
[--ai-models-config-url-demo AI_MODELS_CONFIG_URL_DEMO]
[--ai-models-config-url-documentation-api AI_MODELS_CONFIG_URL_DOCUMENTATION_API]
[--ai-models-config-url-documentation-user AI_MODELS_CONFIG_URL_DOCUMENTATION_USER]
[--ai-models-config-url-documentation-developer AI_MODELS_CONFIG_URL_DOCUMENTATION_DEVELOPER]
[--ai-models-config-url-documentation-faq AI_MODELS_CONFIG_URL_DOCUMENTATION_FAQ]
[--ai-models-config-url-documentation-tutorial AI_MODELS_CONFIG_URL_DOCUMENTATION_TUTORIAL]
[--ai-models-config-url-documentation-guide AI_MODELS_CONFIG_URL_DOCUMENTATION_GUIDE]
[--ai-models-config-url-documentation-whitepaper AI_MODELS_CONFIG_URL_DOCUMENTATION_WHITEPAPER]
[--ai-models-config-url-documentation-roadmap AI_MODELS_CONFIG_URL_DOCUMENTATION_ROADMAP]
[--ai-models-config-url-documentation-blog AI_MODELS_CONFIG_URL_DOCUMENTATION_BLOG]
[--ai-models-config-url-documentation-community AI_MODELS_CONFIG_URL_DOCUMENTATION_COMMUNITY]
Лицензионное соглашение
Разработка и выпуск этого проекта соответствуют лицензионному соглашению с открытым исходным кодом AGPL-3.0.
Адрес проекта
SherlockChain:
https://github.com/0xQuantumCoder/SherlockChain