Автор: BitsLab
Move як мова, яку не можуть ігнорувати Web3-розробники, має потужну типізацію та ресурсну семантику, що робить її дуже "жорсткою" у питаннях власності активів, незаконного переказу та конкурентного доступу до даних.
Екосистеми Sui, Aptos та інші розміщують все більше ключових активів і основних протоколів на Move саме через її основні характеристики, які дозволяють створювати безпечніші та менш ризиковані смарт-контракти.
Однак у нашій довгостроковій аудиторській та захисно-атакувальній практиці ми бачимо, що значна частина складних проблем виникає не у "синтаксичних помилках" чи "невідповідності типів", а на більш складному, реальному рівні системи — міжмодульна взаємодія, припущення щодо прав доступу, межі стану машини, а також ті послідовності викликів, які виглядають логічними окремо, але у комбінації можуть бути використані зловмисниками.
Саме тому, навіть якщо мова Move має більш досконалу парадигму безпеки, в її екосистемі все одно траплялися значні атаки. Очевидно, що дослідження безпеки Move повинні просуватися далі.
Ми виявили одну ключову проблему: у мові Move бракує ефективного інструменту для fuzzing-тестування. Через суворіші обмеження Move традиційний fuzzing смарт-контрактів стикається з серйозною проблемою: створення "типово коректних" і "семантично досяжних" послідовностей транзакцій дуже складне. Якщо вхідні дані недостатньо точні, виклик не відбудеться; якщо виклик неможливий, не можна охопити глибокі гілки чи досягти критичних станів, і, відповідно, легше пропустити справжні вразливості.
Виходячи з цієї довготривалої проблеми, ми у співпраці з академічною дослідницькою командою спільно завершили та опублікували результати дослідження:
«Belobog: Move Language Fuzzing Framework For Real-World Smart Contracts»
arXiv:2512.02918 (препринт)
Посилання на статтю:
Ця стаття наразі опублікована на arXiv як препринт, що дозволяє спільноті швидше ознайомитися з прогресом дослідження та надати зворотний зв'язок. Ми подаємо цю роботу на PLDI’26 і чекаємо на peer review. Після підтвердження результатів подачі та завершення рецензування ми одразу повідомимо про подальший прогрес.
Зробити Fuzzing справді ефективним для Move: від випадкового тестування до типового керування
Основна ідея Belobog дуже проста: якщо типова система Move — це її базове обмеження, то й fuzzing має використовувати типи як навігацію, а не як перешкоду.
Традиційний підхід часто покладається на випадкову генерацію та мутацію, але для Move це швидко призводить до великої кількості невалідних зразків: невідповідність типів, недосяжність ресурсів, неможливість коректно побудувати параметри, блокування у ланцюжку викликів — у підсумку ви отримуєте не тестове покриття, а купу "невдач на старті".
Метод Belobog більше схожий на те, що Fuzzer отримує "карту". Він починає з типової системи Move, будує type graph на основі типових семантик цільового контракту, а потім генерує або мутує послідовності транзакцій на основі цієї карти. Іншими словами, він не сліпо комбінує виклики, а будує більш логічні, виконувані та такі, що глибше проникають у простір станів, комбінації викликів, орієнтуючись на типові зв'язки.
Для досліджень безпеки ця зміна дає не "більш витончені алгоритми", а дуже просту, але ключову перевагу:
Більша частка валідних зразків, вища ефективність дослідження та більше шансів досягти глибоких шляхів, де часто ховаються реальні вразливості.
В умовах складних обмежень: Belobog впроваджує Concolic Execution, щоб "відчинити двері"
У реальних Move-контрактах ключова логіка часто оточена численними перевірками, твердженнями та обмеженнями. Якщо покладатися лише на традиційну мутацію, легко "битися об двері": умови не виконуються, гілки недосяжні, стани недосяжні.
Щоб вирішити цю проблему, Belobog додатково розробив і впровадив concolic execution (поєднання конкретного виконання та символьного виведення). Простими словами:
З одного боку, він зберігає "працездатне" конкретне виконання, а з іншого — використовує символьне виведення для цілеспрямованого наближення до умов гілок, що дозволяє ефективніше проходити складні перевірки та поглиблювати покриття.
Це особливо важливо для екосистеми Move, оскільки "відчуття безпеки" Move-контрактів часто базується на багаторівневих обмеженнях, а справжні проблеми часто ховаються у проміжках між цими обмеженнями. Мета Belobog — просунути тестування ближче до цих проміжків.
Відповідність реальному світу: не просто запускати demo, а наближатися до реальних шляхів атак
Ми не хочемо, щоб така робота обмежувалася лише "запуском demo". Оцінка Belobog безпосередньо орієнтована на реальні проекти та реальні висновки щодо вразливостей. Згідно з результатами експериментів у статті: Belobog був оцінений на 109 реальних проектах Move смарт-контрактів, і результати показали, що Belobog здатен виявити 100% критичних вразливостей і 79% основних вразливостей, підтверджених ручним аудитом експертів з безпеки.
Ще важливіше: Belobog може відтворити повні атаки (full exploits) у реальних подіях на ланцюгу без попереднього знання про вразливості. Ця здатність цінна тим, що вона ближча до реальних сценаріїв атак: зловмисники досягають успіху не через "помилку в одній функції", а через повний шлях і еволюцію стану.
Ця робота прагне показати не лише "створення інструменту"
Ця стаття варта уваги не лише тому, що пропонує нову структуру, а й тому, що представляє більш прагматичний напрямок: абстрагування практичного досвіду безпеки у повторювані методи та їх реалізація у перевірюваних інженерних рішеннях.
Ми вважаємо, що значення Belobog не у "ще одному Fuzzer", а в тому, що він робить fuzzing у Move більш реалістичним — здатним проникати, досліджувати глибше та наближатися до реальних шляхів атак. Belobog не є закритим інструментом для вузького кола експертів з безпеки, а є developer-friendly фреймворком: він максимально знижує поріг входу, дозволяючи розробникам інтегрувати безпекове тестування у звичний процес розробки, а не залишати fuzzing як разову, постфактум задачу.
Ми також плануємо випустити Belobog у відкритому доступі, сподіваючись, що він стане інфраструктурою, яку спільнота зможе використовувати, розширювати та розвивати, а не залишиться експериментальним проєктом на рівні "інструменту".
Стаття (препринт):
(Ця робота також подана на PLDI’26, очікується рецензування.)
Про MoveBit
MoveBit (莫比安全), дочірній бренд BitsLab, — це компанія, що спеціалізується на безпеці блокчейну екосистеми Move, яка першою впровадила формальну верифікацію, щоб зробити екосистему Move найнадійнішою у Web3. MoveBit вже співпрацює з багатьма відомими світовими проектами та надає партнерам комплексні послуги з аудиту безпеки. Команда MoveBit складається з провідних академічних та корпоративних експертів з безпеки з 10-річним досвідом, які публікували дослідження на топових міжнародних конференціях з безпеки, таких як NDSS, CCS. Вони також є одними з перших учасників екосистеми Move і разом з розробниками Move встановлюють стандарти безпечних Move-додатків.




