eth-security-toolbox

Blockchain / Web3

Docker-образ от Trail of Bits со всеми инструментами безопасности Ethereum в одном контейнере: Slither, Echidna, Manticore, Etheno, solc-select. Готовая среда для аудита смарт-контрактов без настройки зависимостей.

Добавлен 15.07.2026 · Обновлён 15.07.2026 · Blockchain / Web3
Установка
# Запуск с монтированием текущего проекта
docker run -it -v $PWD:/home/user/project trailofbits/eth-security-toolbox

# Внутри контейнера:
cd /home/user/project
slither .
echidna-test contracts/MyContract.sol --contract TestMyContract

# Переключить версию компилятора
solc-select install 0.8.20
solc-select use 0.8.20
переведено ИИ

Ethereum Security Toolbox

Этот репозиторий содержит скрипты для создания Docker-контейнера, предустановленного и преднастроенного со всеми инструментами безопасности Ethereum от Trail of Bits, включая:

Также включены другие полезные инструменты, разработанные сторонними организациями:

  • Foundry - набор инструментов для разработки приложений на Ethereum
  • Vyper - язык смарт-контрактов в стиле Python для EVM
  • n - менеджер версий Node
  • npm и Yarn
  • Python

Быстрый старт

Используйте наш предсобранный Docker-контейнер для быстрой установки и запуска набора инструментов:

docker pull ghcr.io/trailofbits/eth-security-toolbox:nightly
docker run -it ghcr.io/trailofbits/eth-security-toolbox:nightly

Альтернативно, соберите образ с нуля:

git clone https://github.com/trailofbits/eth-security-toolbox.git
cd eth-security-toolbox
docker build -t eth-security-toolbox .

Использование

Просто запустите экземпляр Docker-контейнера:

docker run -it ghcr.io/trailofbits/eth-security-toolbox:nightly

Несколько версий Solidity предустановлены через solc-select. По умолчанию solc соответствует последнему релизу. Это можно изменить с помощью инструмента solc-select:

$ solc --version
solc, the solidity compiler commandline interface
Version: 0.8.22+commit.4fc1097e.Linux.g++
$ solc-select use 0.4.26
$ solc --version
solc, the solidity compiler commandline interface
Version: 0.4.26+commit.4563c3fc.Linux.g++

Вы также можете просмотреть установленные версии и установить новые:

$ solc-select versions
0.8.22 (current, set by /home/ethsec/.solc-select/global-version)
0.7.6
0.6.12
0.5.17
0.4.26
ethsec@f95fb29a709d:~$ solc-select install 0.8.0
Installing solc '0.8.0'...
Version '0.8.0' installed.
ethsec@f95fb29a709d:~$ solc-select use 0.8.0
Switched global version to 0.8.0
$ solc --version
solc, the solidity compiler commandline interface
Version: 0.8.0+commit.c7dfd78e.Linux.g++

В набор инструментов входит предустановленная LTS-версия Node и n - менеджер версий Node. При необходимости вы можете установить другие версии Node, используя n. Обратитесь к их веб-сайту для получения дополнительных инструкций.

$ sudo n 14
  installing : node-v14.21.3
       mkdir : /usr/local/n/versions/node/14.21.3
       fetch : https://nodejs.org/dist/v14.21.3/node-v14.21.3-linux-arm64.tar.gz
     copying : node/14.21.3
   installed : v14.21.3 (with npm 6.14.18)
$ node --version
v14.21.3

Использование в CI

Вариант образа опубликован в GitHub Container Registry как ghcr.io/trailofbits/eth-security-toolbox/ci. Этот вариант предназначен для более легковесного использования и лучше подходит для работы в CI, таких как задачи рабочих процессов GitHub:

# workflow triggers, ...

jobs:
  tests:
    runs-on: ubuntu-latest
    container: ghcr.io/trailofbits/eth-security-toolbox/ci:nightly
    steps:
      # other steps ...
      - run: medusa fuzz # or any tool from the image

Основные отличия: * В контейнере нет выделенного пользователя без root-привилегий. Все инструменты установлены под пользователем root. * Большинство автодополнений не установлены. * Бинарные файлы solc не предустановлены. Вы можете продолжать использовать solc-select для установки любых необходимых бинарных файлов. * pyevmasm и репозиторий building secure contracts не включены.

Метки образа контейнера

Как eth-security-toolbox, так и eth-security-toolbox/ci используют следующую схему именования меток:

Метка Описание
nightly-YYYYMMDD Образ, собранный из кода в master в день YYYY-MM-DD
nightly Алиас для последнего образа nightly-YYYYMMDD
testing-BRANCH Образ, собранный при последнем обновлении вершины BRANCH
edge Алиас для testing-master
TAG Образ, собранный при создании тега TAG
latest Алиас для последнего образа с тегом TAG

Для предсказуемости инструментов в CI мы рекомендуем выбирать образ nightly-YYYYMMDD и фиксировать его хешем в файле вашего рабочего процесса. Затем установите процесс для просмотра изменений и обновления ссылки на контейнер с регулярной периодичностью, чтобы вы могли продолжать получать выгоду от улучшений инструментов. Следующий фрагмент показывает синтаксис, используемый для фиксации образа в рабочем процессе GitHub Actions; хеши можно получить со страницы реестра контейнеров.

container: ghcr.io/trailofbits/eth-security-toolbox/ci:nightly-YYYYMMDD@sha256:HASH_GOES_HERE

Получение помощи

Не стесняйтесь заходить на наш канал Slack за помощью по использованию или расширению этого набора инструментов.

Лицензия

Ethereum Security Toolbox лицензирован и распространяется под лицензией AGPLv3. Свяжитесь с нами, если вы ищете исключение из условий.

Комментарии
Войдите, чтобы оставить комментарий