2016 року в індустрії блокчейну стався гучний інцидент безпеки, який сколихнув весь інтернет: зловмисник, витративши менше ніж 1 долар на комісію за транзакцію, за допомогою рядка коду з переплутаним порядком вивів з ончейн-контракту провідного проєкту The DAO цифрові активи на суму 60 мільйонів доларів. Увесь процес відбувся без злому чи несанкціонованого вторгнення – лише завдяки логічній вразливості самого коду.


Принцип цієї вразливості абсурдно простий: нормальна логіка виведення мала спочатку обнуляти баланс користувача, а потім виконувати переказ. Але контракт того часу переплутав порядок – спочатку переказ, потім обнулення балансу. Зловмисник, використовуючи механізм зворотного виклику під час переказу, циклічно ініціював запити на виведення, поки система не оновлювала стан балансу, викачуючи кошти раунд за раундом, доки не спустошив усі резерви контракту. Виправлення полягало лише в заміні порядку двох рядків коду.
The DAO аж ніяк не був маловідомим проєктом – на той час це був найпомітніший еталонний проєкт екосистеми Ethereum, який зібрав 150 мільйонів доларів через краудфандинг, код проходив численні рецензії спільноти та перевірки професійних команд безпеки, але ніхто не помітив цієї найпростішої логічної помилки.
Подія зрештою змусила спільноту Ethereum запустити хардфорк, примусово відкотити транзакції та повернути вкрадені активи, що безпосередньо призвело до відгалуження Ethereum Classic. Концепція «код — це закон», яку довго сповідувала індустрія, вперше зазнала жорсткого удару від реальності, а суперечки про те, чи є використання вразливості правомірною дією або крадіжкою, тривають досі.
Що більш іронічно, за минулі понад десять років такі базові вразливості не зникли, а навпаки, повторюються в нових обгортках. У 2021 році відомий протокол кредитування CREAM Finance втратив 130 мільйонів доларів через аналогічну техніку, і через складну вкладеність ланцюжків викликів, навіть після повної професійної перевірки ризики не були виявлені.
Крім того, атаки з флеш-кредитами без початкового капіталу, примітивні помилки з неправильними дозволами функцій та навіть великий інцидент із міжланцюговим мостом, який через один фішинговий лист призвів до втрати 625 мільйонів доларів, постійно повторюються в індустрії. Багато проєктів, намагаючись пришвидшити запуск і зменшити витрати на розробку, неодноразово йшли на компроміси в питаннях безпеки, і кожна пропущена дрібниця зрештою призводила до непоправних колосальних збитків.
$ETH
{spot}(ETHUSDT)
ETH3,10%
Переглянути оригінал
post-image
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріплено