Поиск уязвимостей в смарт-контрактах на основе машинного о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

Согласие на обработку персональных данных

 

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