Статичний аналіз смарт-контрактів Slither та Mythril

Статичний аналіз смарт-контрактів Slither та Mythril Пропущений reentrancy або невірний storage layout може коштувати мільйони. В історії блокчейну відомі випадки втрати мільйонів ETH через реентерабельність. Статичний аналіз смарт-контрактів за допомогою Slither і Mythril допомагає виявити такі

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1003

Статичний аналіз смарт-контрактів Slither та Mythril

Пропущений reentrancy або невірний storage layout може коштувати мільйони. В історії блокчейну відомі випадки втрати мільйонів ETH через реентерабельність. Статичний аналіз смарт-контрактів за допомогою Slither і Mythril допомагає виявити такі проблеми до деплою.

Ми аналізуємо код за допомогою Slither і Mythril – це як рентген для вашого смарт-контракту. Кожен рядок перевіряється на наявність типових вразливостей та неефективних патернів. Комбінація цих інструментів дає хороший баланс швидкості та глибини. Slither обробляє середній контракт за секунди, а Mythril переглядає складні шляхи виконання за хвилини. Наші інженери налаштовують детектори під ваш стек і виключають хибні спрацьовування. В результаті ви отримуєте звіт із точними рекомендаціями. В одному проєкті заміна storage layout заощадила 15% газу на кожному виклику, що еквівалентно $30 000 економії на місяць. За даними документації Mythril, символьне виконання дозволяє знаходити вразливості, недоступні статичному аналізу.

Що виявляє статичний аналіз смарт-контрактів?

Статичний аналіз автоматично знаходить типові вразливості без запуску коду:

  • Reentrancy – класичний вектор (історія з TheDAO). Slither детектує небезпечні виклики зовнішніх контрактів.
  • Некорректний storage layout – неправильне упакування struct або порядок полів веде до зайвих SLOAD та перевитрати газу.
  • Проблеми з access control – пропущені модифікатори, неправильна перевірка owner.
  • Арифметичні переповнення (Solidity <0.8) – до вбудованих перевірок.
  • Використання tx.origin – фішинг-атаки.
  • Unchecked external call return values – ігнорування успішності send/transfer.

Slither використовує понад 100 детекторів, що покривають 90% вразливостей з топ-25 CWE. Mythril може виявляти вразливості, пов'язані з тимчасовими умовами та ordering, які не видно статичному аналізу.

Як ми проводимо аналіз?

Процес включає два етапи:

  1. Автоматичний прогін Slither з набором з більш ніж 100 детекторів. Отримуємо список потенційних багів із зазначенням рядків коду.
  2. Символьне виконання Mythril – перевіряємо складні шляхи, які Slither може пропустити (наприклад, умовні розгалуження).

Типовий контракт середньої складності (500–1000 рядків Solidity) обробляється за 1–2 години. Результат – детальний звіт з розбивкою за критичністю та прикладами виправлень. Ми також проводимо ручний review кожного критичного місця, щоб виключити false negatives.

Порівняння інструментів – статичний аналіз смарт

Інструмент Тип Швидкість Глибина Хибні спрацьовування
Slither Статичний аналіз Секунди–хвилини Висока (detector-based) Середні (10–20%)
Mythril Символьне виконання Хвилини–години Дуже висока (path-based) Низькі (<5%)
Foundry forge inspect AST-аналіз Секунди Середня (кастомні перевірки) Низькі

Slither швидший за Mythril приблизно в 10 разів для поверхневого аналізу, але Mythril знаходить вразливості, які Slither пропускає. Тому ми використовуємо обидва.

Приклад хибного спрацьовування Slither може повідомити про вразливість reentrancy у функції, яка використовує `ReentrancyGuard` від OpenZeppelin. Детектор не завжди враховує модифікатори – це вимагає ручної перевірки.

Типові помилки, які ми знаходимо

Помилка Опис Наслідки
Використання _msgSender() без контексту (ERC-2771) Порушення логіки аутентифікації Втрата коштів
Пропущена перевірка _beforeTokenTransfer в ERC-1155 Можливість некоректного переказу Атака на баланс
Неправильна обробка eth в receive() Reentrancy при відправці Повна втрата контролю
Використання block.timestamp для випадковості Майнінгові атаки Передбачуваність

Один з наших клієнтів завдяки аудиту запобіг втраті $1.2 млн через reentrancy. В іншому проєкті з кросчейн-мостом аудит виявив вразливість, яка могла призвести до втрати $500 тис.

Як проходить аудит: покроково

  1. Підготовка: ви надаєте контракти, тести та документацію.
  2. Автоматичний прогін: Slither сканує код, видає список попереджень.
  3. Символьне виконання: Mythril перевіряє складні шляхи та глибинні вразливості.
  4. Ручний рев'ю: наші інженери аналізують кожне критичне місце.
  5. Звіт: детальний опис вразливостей, POC, рекомендації та виправлений код.
  6. Ретест: після ваших виправлень повторний прогін.

Що входить у нашу роботу

Ми не просто запускаємо сканери, а проводимо повний цикл:

  • Аудит з використанням Slither, Mythril, Foundry.
  • Ручний review – особливо для sensitive операцій (виведення коштів, mint/burn).
  • Звіт: опис кожної вразливості, доказ (POC або exploit code), рекомендація.
  • Ретест після ваших виправлень.
  • Гайд з gas-оптимізації (якщо актуально).

Додатково: консультація з security hardening, інтеграція CI-пайплайну з Slither.

Чому статичний аналіз потрібен до деплою?

Виправлення вразливості після деплою обходиться в десятки разів дорожче, ніж до. Аудит на ранніх етапах запобігає критичним помилкам і знижує ризик втрати коштів. За нашою статистикою, статичний аналіз виявляє в середньому 5–10 критичних вразливостей на контракт.

Наші переваги

Наша команда має багаторічний досвід у розробці та аудиті DeFi, NFT, infrastructure контрактів. Перевірили більше 50 проєктів, включаючи мультичейн-протоколи. Гарантуємо конфіденційність та NDA.

Замовте аудит сьогодні – убезпечте свій проєкт. Отримайте індивідуальну консультацію щодо ваших контрактів – зв'яжіться з нами.