Криптографічні системи підтримують децентралізовані фінанси (DeFi) і екосистеми блокчейнів, пропонуючи користувачам безпрецедентний контроль над цифровими активами. Однак складність цих систем також відкриває різноманітні вектори атак, від смарт-контрактів до гаманців з кількома підписами та навіть апаратних гаманців. Розробники, які часто зосереджені на функціональності, можуть не помічати критичні вразливості, створюючи можливості для складних атак, подібних до тих, що спостерігалися під час злому Radiant Capital за 50 мільйонів доларів. Ця стаття дослідить уразливості в криптосистемах і надасть детальну інформацію про те, як вони виникають, спираючись на останні тенденції атак і помилки розробників, які часто забувають.

1. Вразливості смарт-контракту

Як вони виникають:

Розумні контракти — це самовиконувані контракти з умовами угоди, записаними безпосередньо в код. Їх функціональність часто складна, а помилки або #vulnerabilities у коді можуть призвести до катастрофічних результатів. Хакери можуть використовувати такі проблеми, як:

- Атаки повторного входу: коли смарт-контракт викликає зовнішній контракт, зловмисники можуть використовувати #reentrancy , щоб використати послідовність виконання коду, виснажуючи кошти.

- Приклад: під час DAO-атаки 2016 року повторне входження використовувалося для неодноразового зняття коштів до оновлення балансу контракту, що призвело до викраденого $ETH 60 мільйонів доларів США.

- Неперевірені значення, що повертаються: розробники часто не звертають уваги на перевірку значень, що повертаються, викликів низького рівня. Це може призвести до того, що контракт припускає, що виклик був успішним, хоча це не так, залишаючи контракт вразливим для експлуатації.

- Цілочисельне переповнення/недоповнення: якщо контракт використовує арифметичні операції без належних перевірок, можуть виникнути проблеми переповнення та недоповнення. Зловмисники можуть #exploit створювати нескінченну кількість токенів або викачувати кошти.

- Використання схвалення токенів: багато протоколів DeFi вимагають від користувачів схвалення передачі токенів. Зловмисники можуть використовувати поточні погодження або смарт-контракти, які не в змозі належним чином керувати надбавками на токени.

Заходи пом'якшення:

- Використовуйте бібліотеки: використовуйте перевірені бібліотеки, такі як OpenZeppelin, щоб уникнути поширених пасток у програмуванні солідності, таких як переповнення цілих чисел.

- Засоби захисту від повторного входу: увімкніть засоби захисту від повторного входу, щоб запобігти рекурсивним викликам, які можуть вичерпати кошти.

- Аудит смарт-контрактів: регулярно перевіряйте контракти для виявлення вразливостей перед розгортанням.

- Обмеження дозволів: заохочуйте користувачів регулярно переглядати та скасовувати схвалення токенів за допомогою таких інструментів, як засіб перевірки схвалення токенів Etherscan.

2. Уразливості гаманця Multisig

Як вони виникають:

Гаманці Multisig (наприклад, Gnosis Safe) вимагають кількох закритих ключів для авторизації транзакцій, створюючи бар’єр проти одноточкових збоїв. Однак, якщо одного або кількох підписантів зламано, безпека системи може бути порушена. Ось як можна атакувати #Multisig гаманці:

- Компрометація кінцевої точки: зловмисники можуть інсталювати зловмисне програмне забезпечення, таке як троян, на комп’ютери членів команди. Це зловмисне програмне забезпечення може перехоплювати та змінювати запити на підпис перед тим, як вони будуть надіслані до гаманця multisig. Під час злому Radiant Capital троян змінив дані транзакцій, обманом змусивши апаратний гаманець підписати зловмисну ​​передачу права власності без виявлення.

- Перехоплення апаратного гаманця: хоча апаратні гаманці розроблені для безпечного підпису транзакцій, ними все одно можна маніпулювати, якщо пристрій, який використовується для взаємодії з апаратним гаманцем, скомпрометовано. Якщо зловмисне програмне забезпечення перехоплює дані транзакції до того, як вони досягнуть апаратного гаманця, користувач несвідомо схвалює зловмисну ​​транзакцію.

- Експлойти атомарного виконання: зловмисники об’єднують кілька зловмисних дій (наприклад, передачу права власності, оновлення контракту) в одну атомарну транзакцію, що робить практично неможливим зупинити або виявити зловмисну ​​активність до того, як кошти будуть викрадені.

Заходи пом'якшення:

- Безпека кінцевих точок: запровадження рішень для захисту від шкідливих програм на пристроях, які використовуються для підписання транзакцій. Тримайте ці пристрої ізольованими від доступу до Інтернету, де це можливо, щоб зменшити ризик зараження зловмисним програмним забезпеченням.

- Перехресна перевірка транзакцій: переконайтеся, що всі особи, що підписують кілька підписів, переглядають дані транзакцій на різних пристроях, щоб виявити будь-які маніпуляції. Якщо одна і та сама транзакція відображається по-різному на різних пристроях, це повинно викликати негайне розслідування.

- Часові блокування та управління: запровадьте часові блокування, щоб відстрочити критичні операції, такі як передача прав власності або великі рухи коштів. Використовуйте процеси управління, щоб вимагати схвалення спільноти або багаторівневого багатопідписного підтвердження для оновлення контракту або зміни власності.

3. Уразливості апаратного гаманця

Як вони виникають:

Апаратні гаманці забезпечують автономне зберігання особистих ключів, додаючи рівень безпеки від #hacks . Однак їх все ще можна використовувати непрямими засобами:

- Атаки Man-in-the-Middle: якщо комп’ютер, який взаємодіє з апаратним гаманцем, скомпрометовано, зловмисники можуть перехоплювати та змінювати запити на транзакції до того, як вони відображатимуться на екрані апаратного гаманця. Користувач може підписати транзакцію, вважаючи її законною, хоча насправді він схвалює зловмисну.

- Фізичні атаки: атаки на ланцюг поставок можуть скомпрометувати апаратні гаманці на рівні виробництва, де зловмисне програмне забезпечення впроваджується під час виробничого процесу. Якщо апаратний гаманець підроблено до того, як він досягне користувача, зловмисники потенційно можуть отримати доступ до закритих ключів.

- Атаки на основі зловмисного програмного забезпечення: подібно до злому Radiant Capital, трояни можуть замінювати законні транзакції зловмисними, перш ніж вони будуть надіслані на апаратний гаманець, що призводить до неавторизованих дій, таких як оновлення контракту або передача права власності.

Заходи пом'якшення:

- Використовуйте пристрої з бездротовим розривом: підписуйте транзакції за допомогою пристроїв з бездротовим розривом, які не підключені до Інтернету, щоб зменшити ризики зловмисного програмного забезпечення.

- Перехресна перевірка транзакцій: переконайтеся, що користувачі завжди перевіряють деталі транзакції на екрані свого апаратного гаманця перед підтвердженням, порівнюючи їх із запланованою дією.

- Регулярні оновлення мікропрограми: постійно оновлюйте апаратні гаманці за допомогою найновішої версії мікропрограми, щоб виправити будь-які потенційні вразливості.

- Автентифікація пристрою: використовуйте апаратні гаманці від авторитетних виробників, які включають механізми автентифікації пристрою, щоб запобігти втручанню під час процесу постачання.

4. Передові практики Multisig і перевірка підпису

Незважаючи на те, що гаманці multisig додають рівні безпеки, вони не є надійними. Слабкі сторони часто виникають через те, як перевіряються та виконуються транзакції з кількома підписами, особливо в налаштуваннях із залученням апаратних гаманців.

Як виникають вразливості:

- Скомпрометовані підписувачі: якщо зламано одного або кількох підписантів у гаманці з кількома підписами, зловмисники можуть маніпулювати запитами на транзакції, як це видно зі злому Radiant Capital. Зараження комп’ютерів членів команди дозволило маніпулювати мультипідписними транзакціями ще до того, як апаратний гаманець їх навіть підписав.

- Слабка перехресна перевірка: підписувачі Multisig можуть припустити, що оскільки вони знаходяться в захищеному налаштуванні, їм не потрібно перевіряти транзакції на кількох пристроях. Цим припущенням можуть скористатися зловмисники, які змінюють запити транзакцій у кінцевій точці.

Заходи пом'якшення:

- Розподілений підпис: підписувачі Multisig повинні перевіряти транзакції на кількох пристроях і методи відображення, щоб виявити потенційні розбіжності в даних.

- Виявлення аномалій: використовуйте системи виявлення аномалій, щоб позначати незвичні транзакції для перевірки. Будь-які невідповідності між тим, що відображається різним особам, що підписали кілька підписів, мають викликати зупинку транзакції.

5. Уроки пом’якшення наслідків атаки Radiant Capital

Злом Radiant Capital є нагадуванням про те, що навіть найскладніші системи вразливі до багаторівневих атак, які поєднують зловмисне програмне забезпечення, використання кількох підписів і маніпуляції з апаратним гаманцем. Атака показала, що поєднання кількох уразливостей (шкідливе троянське програмне забезпечення, перехоплення апаратного гаманця та атомарне виконання) може створити експлойт, який обійде багато традиційних засобів захисту.

Ключові уроки:

- Завжди припускайте, що кінцеві точки можуть бути скомпрометовані: навіть із безпечним апаратним гаманцем зловмисники можуть перехоплювати та змінювати транзакції на рівні комп’ютера. Тому безпека кінцевої точки має бути головним пріоритетом.

- Моніторинг атомарного виконання: реалізуйте моніторинг атомарних транзакцій у реальному часі, які можуть позначати зловмисну ​​активність, перш ніж вони будуть виконані в ланцюжку.

- Управління та механізми блокування часу: блокування часу має бути обов’язковим для конфіденційних операцій, а процеси керування мають існувати для затримки або запобігання підозрілим діям.

Застосовуючи багаторівневий підхід до безпеки, включаючи аудити смарт-контрактів, захист кінцевих точок і перехресну перевірку транзакцій, розробники та користувачі можуть краще захистити свої активи від дедалі складнішого ландшафту криптоексплойтів.