OrionProtocol зазнав атаки повторного входу, втративши 2,9 мільйона доларів США. Аналіз вразливостей безпеки та рекомендації щодо запобігання.

robot
Генерація анотацій у процесі

Аналіз інциденту з повторними атаками на OrionProtocol

2 лютого 2023 року вдень OrionProtocol на Ethereum та Binance Smart Chain зазнав повторного атаки через вразливість контракту, що призвело до втрат приблизно в 2,9 мільйона доларів. Зловмисники скористалися вразливістю в контракті, створивши спеціальний токен-контракт для виконання зворотних викликів, що дозволило здійснити повторну атаку.

Аналіз процесу атаки

Зловмисник спочатку створив спеціальний контракт токена і виконав відповідні операції з передачі та авторизації. Після цього зловмисник взяв кредит через метод swap якогось DEX і викликав метод swapThroughOrionPool OrionProtocol для обміну токенів. Під час процесу обміну зловмисник використав створений ним контракт токена для зворотного виклику, повторно викликаючи метод depositAsset, що призвело до накопичення суми депозиту. Врешті-решт, зловмисник завершив отримання прибутку через операцію зняття.

! [Аналіз атаки повторного входу OrionProtocol з PoC](https://img-cdn.gateio.im/webp-social/moments-730464b2d4d7f6e0ff21a0289a2d5d68.webp0192837465674839201

Напрямок коштів

Початкові кошти зловмисника походять з гарячого гаманця певної торговельної платформи. З 1651 ETH прибутку, 657,5 залишилися на гаманці зловмисника, решта була переміщена за допомогою інструментів для змішування.

! [Аналіз атаки повторного входу OriionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-caac189901b7aaad5abd8be30bb4361a.webp(

Аналіз вразливостей

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

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-7e21c34158a85d4c387fcdbec136d31b.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-24819b5154419e86ea523a25a9101f67.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/social/moments-7c4bde9d6a35da4304844a3bb934fae(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-7239f8886fe83c1da8b1b42545185811.webp(

Відтворення атаки

Дослідники надали частину коду POC, що імітує процес атаки. Результати тестування показали, що, використовуючи вразливість у контракті, вдалося досягти фінансових потоків, схожих на реальну атаку.

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-e5042932f0e1b7fa96e3f6e749231957.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-4bd31735de09c63c490488e887118038.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-cd401091e63ab21864f39cd650014b97.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-e010d0f0c02fb8bbc648f755b0ac464c.webp(

! [Аналіз атаки повторного входу OrionProtocol з PoC])https://img-cdn.gateio.im/webp-social/moments-f3c5f9416cfb9b7b791d86eeffb933be.webp(

Рекомендації щодо безпеки

  1. Під час розробки контракту слід враховувати потенційні ризики, пов'язані з різними токенами та шляхами обміну.
  2. Дотримуйтесь кодування "Перевірки-Ефекти-Взаємодії" (Checks-Effects-Interactions): спочатку виконуйте перевірку, потім оновлюйте змінні стану, а наостанок виконуйте зовнішні виклики.
  3. Посилити заходи захисту від повторних атак, такі як використання замків повторного входу та інші методи.
  4. Провести всебічний аудит безпеки, з особливою увагою до функцій, які можуть бути використані для атаки повторного входу.
  5. Регулярно оновлювати та оптимізувати код контрактів, своєчасно виправляти виявлені уразливості.

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

TOKEN0.28%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 7
  • Поділіться
Прокоментувати
0/400
MevTearsvip
· 07-23 02:41
Дурень! Знову стара, заїжджена проблема повторного входу
Переглянути оригіналвідповісти на0
MetaMiseryvip
· 07-21 02:18
Знову обдурюють невдахи, жах.
Переглянути оригіналвідповісти на0
RetailTherapistvip
· 07-20 20:40
Ще хто у пастці?
Переглянути оригіналвідповісти на0
PositionPhobiavip
· 07-20 03:55
Знову сталося падіння смартконтрактів
Переглянути оригіналвідповісти на0
CryptoTherapistvip
· 07-20 03:55
давайте зробимо кілька свідомих вдихів перед тим, як розпакувати цю травму повторного входу
Переглянути оригіналвідповісти на0
RektCoastervip
· 07-20 03:45
Класичний сценарій повторного входу, стара пісня.
Переглянути оригіналвідповісти на0
SnapshotDayLaborervip
· 07-20 03:33
Знову були Кліпові купони. Сумно.
Переглянути оригіналвідповісти на0
  • Закріпити