Поиск уязвимостей в смарт-контрактах на основе машинного о6учения

Обложка

Цитировать

Полный текст

Аннотация

С ростом популярности блокчейн-проектов растет и количество децентрализованных приложений на их основе. Центральным звеном этих приложений являются смарт-контракты. Эта технология еще относительно молода и имеет ряд известных проблем с безопасностью. Статистика взлома смарт-контрактов свидетельствует об актуальности проблемы поиска уязвимостей в коде смарт-контрактов. B статье описано 3 модели машинного обучения для поиска уязвимостей в смарт-контрактах, написанных на языке Solidity. Особое внимание уделяется подготовке датасета для обучения и сравнения с известными анализаторами кода. Полученные по результатам обучения и апробации моделей метрики позволяют утверждать, что модель, состоящая из трех двунаправленных рекуррентных слоев BiGRU и трех сверточных слоев CNN эффективна при поиске уязвимостей смарт-контрактов.

Об авторах

Вадим Сергеевич Белоус

Hациональный исследовательский технологический университет
«МИСиС»

Email: belous.vadim@inbox.ru

Магистр. Область научных интересов: машинное обучение, блокчейн.

Россия, г. Москва

Иван Александрович Тарханов

Федеральное государственное бюджетное учреждение высшего образования «Государственный академический университет гуманитарных наук»; Федеральный исследовательский центр «Информатика и управление» Российской академии наук»

Автор, ответственный за переписку.
Email: tarkhanov@isa.ru

Старший научный сотрудник. Кандидат технических наук, доцент. Область научных интересов: электронный документооборот, блокчейн, информационная безо- пасность.

Россия, г. Москва; г. Москва

Список литературы

  1. Ray P.P. Web3: A comprehensive review on background, technologies, applications, zero-trust architectures, challenges and future directions // Internet of Things and Cyber-Physical Systems. 2023.
  2. Crypto Hacks 2023: Full List of Scams and Exploits as Millions Go Missing. // ccn.com. 2024. URL: https://www.ccn.com/education/crypto-hacks-2023-full-list-of-scams-and-exploits-as-millions-go-missing
  3. Huang Y. et al. Smart contract security: A software lifecycle perspective //IEEE Access. 2019. Vol. 7. P. 150184-150202.
  4. Kiani R., Sheng V.S. Ethereum Smart Contract Vulnerability Detection and Machine Learning-Driven Solutions: A Systematic Literature Review//Electronics. 2024. Vol. 13. No 12. P. 2295.
  5. Mukhopadhyay M. Ethereum Smart Contract Development: Build blockchain-based decentralized applications using solidity. Packt Publishing Ltd. 2018.
  6. What Are Smart Contracts and How Do They Work? // chain.link. 2023. URL: https://chain. link/education/smart-contracts (дата обращения: 17.11.2023)
  7. Wei Z., Sun J., Zhang Z., Zhang X., Yand X., Zhu L. Survey on Quality Assurance of Smart Contracts. // ACM Comput. Surv. 2023. URL: https://arxiv.org/ pdf/2311.00270.pdf (дата обращения: 17.11.2023)
  8. Harz D., Knottenbelt W. Towards Safer Smart Contracts: A Survey of Languages and Verification Methods. // arXiv:1809.09805. 2018. URL: https:// arxiv.org/pdf/1809.09805.pdf (дата обращения: 17.11.2023)
  9. Brousmiche K., Abdellatif T. Formal Verification of Smart Contracts Based on Users and Blockchain Behaviors Models. // 9th IFIP International Conference on New Technologies, Mobility and Security. 2018. URL: https://www.researchgate. net/publication/324175498_Formal_Verification_ of_Smart_Contracts_Based_on_Users_and_ Blockchain_Behaviors_Models (дата обращения: 17.11.2023)
  10. He J., Balunovic M., Ambroladze N., Tsankov P., Martin T. Learning to Fuzz from Symbolic Execution with Application to Smart Contracts. // In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. 2019. URL: https://dl.acm.org/ doi/10.1145/3319535.3363230 (дата обращения: 17.11.2023)
  11. Click C., Paleczny M. A simple graph-based intermediate representation //ACM Sigplan Notices. 1995. Vol. 30. No 3. P. 35-49.
  12. Chakraborty S., Krishna R., Ding Y., Ray B. Deep Learning Based Vulnerability Detection: Are We There Yet? // IEEE Transactions on Software Engineering. 2022. URL: https://www. researchgate.net/publication/352279734_Deep_ Learning_based_Vulnerability_Detection_Are_ We_There_Yet (дата обращения: 17.11.2023)
  13. Multilabel Classification: An Introduction with Python’s Scikit-Learn. // KDnuggets. 2023. URL: https://www.kdnuggets.com/2023/08/multilabel-classification-introduction-python-scikitlearn. html (дата обращения: 17.11.2023)
  14. Gated Recurrent Unit Networks. // geeksforgeeks. 2023. URL: https://www.geeksforgeeks.org/ gated-recurrent-unit-networks/ (дата обращения: 12.01.2024)
  15. Crash Course in Convolutional Neural Networks for Machine Learning // machinelearningmastery. 2023. URL: https://machinelearningmastery.com/crash-course-convolutional-neural-networks/ (дата обращения: 12.01.2024)
  16. Zhuang Y. et al. Smart contract vulnerability detection using graph neural networks // Proceedings of the Twenty-Ninth International Conference on International Joint Conferences on Artificial Intelligence. 2021.P. 3283-3290.
  17. From cloud data warehouse to an AI-ready data platform. // Google BigQuery. 2024. URL: https:// cloud.google.com/bigquery?hl=ru (дата обращения: 12.01.2024)
  18. Sendner C., Chen H., Fereidooni H., Petzi L., König J., Stang J., Dmitrienko A. Smarter Contracts: Detecting Vulnerabilities in Smart Contracts with Deep Transfer Learning // 2023. URL: https://www.ndss-symposium.org/wp-content/uploads/2023/02/ndss2023_s263_paper. pdf (дата обращения: 17.11.2023)
  19. Zouhar V., Meister C., Gastaldi J., Du L., Sachan M., Cotterell R. Tokenization and the Noiseless Channel. // 2023.acl-long.284. 2023. URL: https://aclanthology.org/2023.acl-long.284 (дата обращения: 17.11.2023)
  20. Text Vectorization layer. // TensorFlow. 2023. URL: https://www.tensorflow.org/api_docs/ python/tf/keras/layers/TextVectorization (дата обращения: 17.11.2023)
  21. Embedding layer. // TensorFlow. 2023. URL: https://www.tensorflow.org/api_docs/python/ tf/keras/layers/Embedding (дата обращения: 17.11.2023)
  22. Шолле Ф. Глубокое обучение на Python. СПб.: Питер. 2018. 400 с.
  23. Жерон О. Прикладное машинное обучение с помощью Scikit-Learn, Keras и TensorFlow: концепции, инструменты и техники для создания интеллектуальных систем. СПб.: ООО «Диалектика». 2020. 1040 с.
  24. Optimizers Adam. // TensorFlow. 2024. URL: https://www.tensorflow.org/api_docs/python/ tf/keras/optimizers/Adam (дата обращения: 30.03.2024).
  25. Mythril. Security analysis tool for EVM bytecode // GitHub. 2024. URL: https://github.com/ Consensys/mythril (дата обращения: 30.03.2024)
  26. sFuzz. // GitHub. 2024. URL: https://github.com/ duytai/sFuzz (дата обращения: 30.03.2024)
  27. Wei Z., Sun J., Zhang Z., Zhang X., Li M., Zhu L. A Comparative Evaluation of Automated Analysis Tools for Solidity Smart Contracts. // arXiv:2310.20212v. 2023. URL: https://arxiv.org/ pdf/2310.20212 (дата обращения: 17.11.2023)

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».