Автоматизація виявлення вразливостей у смарт-контрактах
Використання блокчейну для побудови, випадки вразливості смарт-контрактів. Логіка виявлення повторного входу, приклад оптимізації виявлення на вразливості повторного входу. Опис популярних інструментів статичного та гібридного пошуку вразливостей.
Рубрика | Производство и технологии |
Вид | статья |
Язык | украинский |
Дата добавления | 02.10.2024 |
Размер файла | 197,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Автоматизація виявлення вразливостей у смарт-контрактах
Звінський Тарас Сергійович
здобувач вищої освіти фізико-технічного інституту
Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», Україна
Науковий керівник: Ткач Володимир Миколайович
канд. екон. наук, доцент, доцент кафедри інформаційної безпеки Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», Україна
Суть та хід роботи
Використання блокчейну для побудови , представлене смарт-контрактами, активно розвивається в останні роки. Однак часті випадки вразливості смарт-контрактів становлять серйозний ризик для безпеки екосистеми блокчейн [3]. Оскільки поточні інструменти символьного виконання часто потрапляють у «вибух станів» та не точно описують вразливий стан, це призводить до неефективного виявлення, ця робота розширює структуру інструменту Mythril, щоб оптимізувати його продуктивність. По - перше, це дозволяє виявляти потенційно вразливі області коду за допомогою статичного аналізу та визначати критичні шляхи, які можуть мати дефекти безпеки. Потім, з огляду на проблему, що традиційні алгоритми пошуку не можуть активно знаходити та досліджувати критичні шляхи, ця робота представляє стратегію багатоцільового орієнтованого пошуку шляхів, засновану на пріоритеті шляху. Ця стратегія керує динамічним символьним виконанням, щоб швидко охопити критичні шляхи, уникаючи сліпого обходу шляхів виконання програми. Нарешті, вона описує правила безпеки та пропонує відповідні логіки виявлення для різних категорій уразливості. У роботі аналізується 46 вразливих та 52 виправлених смарт-контракти. блокчейн логіка смарт контракт
Приклад оптимізації виявлення на вразливості повторного входу
1) Опис. Коли контракт A викликає інший контракт B, A чекає завершення виконання виклику, перш ніж перейти до наступної інструкції за звичайних умов. Але якщо контракт, що викликається, B перериває цей виклик, викликаючи резервну функцію A, змушуючи контракт A працювати у невідповідному внутрішньому стані, що, очевидно, порушує наміри розробника і може призвести до несподіваної поведінки [1].
2) Логіка виявлення. Згідно з описом уразливості вище, перевірка оновлень стану є ключем до виявлення вразливостей повторного входу. Mythril використовує таку стратегію: виявити всі виклики повідомлень, які надсилаються на вказану користувачем адресу, і доставляють газ. Функції send() і transfer() Solidity встановлюють газ на 2300, і це налаштування може запобігти атакам повторного входу. Якщо виявлено зовнішній виклик на ненадійну адресу, аналізується граф потоку керування (ГПК) [2], щоб визначити, чи може відбутися зміна стану після повернення з виклику. Якщо виявлено оновлення стану, видається попередження. Однак ця стратегія занадто консервативна. Він позначає будь-яке оновлення стану після зовнішнього виклику як уразливість, незалежно від того, чи насправді оновлення стану викликає небезпеку. Тому генерується багато помилкових спрацьовувань. Наприклад, функції можуть бути захищені мьютексом, що не дасть виконати їх тіло, проте засіб його не бачить, оскільки не досліджує оновлений стан.
Для покращення більш розумною логікою виявлення, варто перевірити, чи може оновлений стан вплинути на рішення потоку керування (рис. 1). Оскільки спільні змінні між контрактами завжди зберігаються в сховищі, а змінна зберігання є єдиною внутрішньою змінною стану, яка може вплинути на потік керування при повторному введенні контракту, для виявлення потрібно лише звернути увагу на змінні в акаунті. Тому використовується методика аналізу плям. Змінні пам'яті позначаються як потенційно вразливі і відстежуються. Якщо рішення потоку керування в інструкції умовного переходу JMPI залежить від деяких змінних пам'яті, то зловмисник може маніпулювати напрямком розгалуження. Потім записується набір змінних пам'яті, що використовуються для керування рішенням потоку, і призначається тег VAR_FLAG=1. Якщо попередній виклик контракту намагається оновити змінну зі значенням тегу 1, видається попередження про вразливість повторного входу.
Рис. 1. Логіка виявлення повторного входу
Проведено порівняння ефективності інструментів (табл. 1). Розроблене рішення позначене як «mythril+». Засоби символьного виконання потребують суттєво більше часу, затратними є як фаза обходу ГПК (збір шляхів), так і фаза розв'язування обмежень.
Таблиця 1
Оцінки результатів аналізу
slither |
oyente |
mythril |
mythril+ |
||
Час у роботі (сек) |
27 |
2433 |
3276 |
4129 |
|
TP |
25 |
16 |
33 |
38 |
|
FP |
9 |
23 |
34 |
11 |
|
FN |
21 |
30 |
13 |
8 |
|
FDR |
0.264706 |
0.589744 |
0.507463 |
0.22449 |
|
FNR |
0.456522 |
0.652174 |
0.282609 |
0.173913 |
|
Точність |
0.735294 |
0.410256 |
0.492537 |
0.77551 |
|
Чутливість |
0.543478 |
0.347826 |
0.717391 |
0.826087 |
[авторська розробка]
Висновок
Було протестовано популярні інструменти статичного та гібридного пошуку вразливостей. Усі вони мають відкритий вихідний код, що дає користувачам можливість долучитись до масштабування. На прикладі покращення mythril це було показано. Помітно зменшена кількість помилок FP i FN для окремих типів вразливостей. Проте, це коштувало додаткового часу в роботі програми. Для вразливостей пов'язаних із семантикою контракту не вдалося досягти покращення, їх варто виявляти вручну.
Список використаних джерел:
[1] E. Cecchetti, S. Yao, H. Ni & A. C. Myers. Compositional Security for Reentrant Applications. IEEE Symposium on Security and Privacy (pp. 1249-1267). May 24-27, 2021, Online/Virtual.
[2] H. Cerezo (2020). Analysis techniques for smart contracts: generation of complete control flow graphs. Вилучено з https://eprints.ucm.es/id/eprint/61812/
[3] Atzei, N., Bartoletti, M. & Cimoli, T. (2017). A Survey of Attacks on Ethereum Smart
Contracts (Sok). International Conference on Principles of Security and Trus (vol. 10204,
pp 164-186). March 28, 2017, Berlin, Heidelberg, Germany: Springer. doi:10.1007/978- 3-662- 54455-6_8t
Размещено на Allbest.ru
Подобные документы
Дослідження цілей автоматизації технологічних процесів. Аналіз архітектури розподіленої системи управління технологічним процесом. Характеристика рівнів автоматизації системи протиаварійного автоматичного захисту і системи виявлення газової небезпеки.
реферат [164,1 K], добавлен 09.03.2016Переваги та недоліки використання акустичного (ультразвукового) методу неруйнівного контролю для виявлення дефектів деталей і вузлів літальних апаратів. Випромінювання і приймання ультразвукових коливань. Особливості резонансного та імпедансного методів.
реферат [127,0 K], добавлен 05.01.2014Використання кованих виробів в дизайні конструкцій для вуличного оздоблення та прикрашання оточуючого середовища. Характеристика сучасних методів та технологій в обробці металів. Виявлення особливостей стилеутворення та формоутворення кованих виробів.
дипломная работа [46,9 K], добавлен 24.03.2019Магнітні властивості плівкових матеріалів, феромагнітне і антиферомагнітне впорядкування. Експериментальне виявлення і вивчення гігантського магнітоопору, методика і техніка експерименту та отримання тонкоплівкових зразків. Магнітний коефіцієнт опору.
курсовая работа [3,4 M], добавлен 28.03.2012Вихідні дані на проект. Визначення опорних реакцій. Побудова епюри поперечних сил та згинаючих моментів. Визначення розмірів поперечних перерізів балки. Виявлення раціонального профілю переріза, порівняння мас балок. Умови міцності та розміри перерізів.
курсовая работа [514,1 K], добавлен 13.06.2014Проектирование и эксплуатация машин и оборудования нефтеперекачивающих станций. Выбор магистральных насосов промежуточной нефтеперекачивающей станции. Приведение характеристик насоса к входу в трубопровод. Основные типы запорно-регулирующей арматуры.
курсовая работа [1,2 M], добавлен 27.05.2013Технічне нормування праці – сукупність методів і прийомів з виявлення резервів робочого часу і встановлення необхідної міри праці; задачі, методи; структура і види норм праці. Класифікація затрат робочого часу. Нормування багатоінструментної обробки.
реферат [1,4 M], добавлен 17.06.2011Повышение надежности питания электроэнергией предприятия. Построение математической модели технологического процесса. Определение объединяемости выборок по различным пунктам рассматриваемого участка производства. Расчет исполнительного механизма.
курсовая работа [624,0 K], добавлен 30.04.2014Вплив вуглецю та марганцю на термічне розширення та магнітні властивості інварних сплавів. Композиції, які забезпечили більшу міцність, ніж базового сплаву. Вплив вуглецю і марганцю на магнітну структуру сплавів Fe-Ni. Влив вуглецю на міжатомний зв’язок.
реферат [74,2 K], добавлен 10.07.2010Характеристика основ конструювання журнального столика, що включає опис використовуваних матеріалів, технологічних особливостей деревообробного процесу. Використання сучасних механізованих інструментів в столярних роботах. Правила безпеки праці.
курсовая работа [40,0 K], добавлен 01.02.2011