GMX зазнав атаки, зловмисник реалізував атаку через вразливість повторного входу в контракті проекту, отримавши прибуток приблизно 42 мільйони доларів. Команда безпеки Beosin провела аналіз вразливостей і відстеження коштів по даному інциденту і поділилася результатами нижче:
детальні кроки атаки
Зловмисники спочатку використали механізм повернення застави в функції executeDecreaseOrder контракту OrderBook, щоб ініціювати повторне проникнення й обійти перемикач важелів контракту Timelock проекту:
!
Тоді атака здійснюється шляхом запозичення USDC через кредит на блискавку для застави та випуску GLP, одночасно використовуючи USDC як заставу для збільшення короткої позиції BTC, що призводить до завищення значення AUM контракту GLPmanager, яке вплине на ціну GLP.
!
Нарешті, зловмисник викупив GLP з аномальною ціною для отримання прибутку та вказав на обмін на інші токени.
Аналіз вразливостей
За допомогою вищезазначеного процесу атаки ми можемо побачити, що причини експлуатації вразливостей у всій події мають такі дві точки:
Відсутність захисту від повторного входу призводить до зміни внутрішнього стану під час процесу викупу.
Логіка викупу досить складна, не вистачає достатніх перевірок безпеки.
Хоча GMX пройшов декілька перевірок безпеки, цей вразливий місце з повторним входом було проігноровано. Якщо б логіку викупу перевірили більш ретельно та врахували можливі вразливості з повторним входом, можна було б уникнути подібних випадків безпеки.
Слідкування за вкраденими коштами
Beosin Trace виявив слід викрадених коштів: адреса атакуючого 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355 отримала прибуток приблизно 42 мільйони доларів США, після чого DeFi протокол обміняв стейблкоїни та альткоїни на ETH та USDC, перемістивши викрадені активи на мережу Ethereum через кілька кросчейн протоколів. Наразі викрадені активи на загальну суму приблизно 32 мільйони доларів США зберігаються на наступних 4 адресах мережі Ethereum:
0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7
0x69c965e164fa60e37a851aa5cd82b13ae39c1d95
0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3
0x639cd2fc24ec06be64aaf94eb89392bea98a6605
Приблизно 10 мільйонів доларів активів зберігається за адресою 0xdf3340a436c27655ba62f8281565c9925c3a5221 в мережі Arbitrum. Beosin Trace додав адреси, пов'язані з хакерами, до чорного списку, подальше відстеження триватиме.
!
Згідно з аналізом Beosin Trace, всі вкрадені кошти все ще зберігаються на кількох адресах зловмисника.
підсумок
Основою атаки є наявність вразливості повторного входу в контракті GMX, що дозволяє зловмисникам отримувати великі прибутки, викупаючи активи через фальшиве збільшення значення AUM. Складні DeFi протоколи, такі як GMX, вимагають багатогранного та багаторівневого аудиту безпеки, з детальним тестуванням та перевіркою коду контракту. Раніше команда безпеки Beosin завершила аудит безпеки кількох DeFi протоколів (таких як Surf Protocol, SyncSwap, LeverFi, Owlto Finance), зосереджуючи увагу на виявленні логічних дефектів контракту та можливих крайніх ситуацій, які можуть бути проігноровані, щоб забезпечити всебічну перевірку DeFi протоколів.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Аналіз вразливостей безпеки GMX та відстеження вкрадених коштів
GMX зазнав атаки, зловмисник реалізував атаку через вразливість повторного входу в контракті проекту, отримавши прибуток приблизно 42 мільйони доларів. Команда безпеки Beosin провела аналіз вразливостей і відстеження коштів по даному інциденту і поділилася результатами нижче:
детальні кроки атаки
Зловмисники спочатку використали механізм повернення застави в функції executeDecreaseOrder контракту OrderBook, щоб ініціювати повторне проникнення й обійти перемикач важелів контракту Timelock проекту:
!
Тоді атака здійснюється шляхом запозичення USDC через кредит на блискавку для застави та випуску GLP, одночасно використовуючи USDC як заставу для збільшення короткої позиції BTC, що призводить до завищення значення AUM контракту GLPmanager, яке вплине на ціну GLP.
!
Нарешті, зловмисник викупив GLP з аномальною ціною для отримання прибутку та вказав на обмін на інші токени.
Аналіз вразливостей
За допомогою вищезазначеного процесу атаки ми можемо побачити, що причини експлуатації вразливостей у всій події мають такі дві точки:
Відсутність захисту від повторного входу призводить до зміни внутрішнього стану під час процесу викупу.
Логіка викупу досить складна, не вистачає достатніх перевірок безпеки.
Хоча GMX пройшов декілька перевірок безпеки, цей вразливий місце з повторним входом було проігноровано. Якщо б логіку викупу перевірили більш ретельно та врахували можливі вразливості з повторним входом, можна було б уникнути подібних випадків безпеки.
Слідкування за вкраденими коштами
Beosin Trace виявив слід викрадених коштів: адреса атакуючого 0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355 отримала прибуток приблизно 42 мільйони доларів США, після чого DeFi протокол обміняв стейблкоїни та альткоїни на ETH та USDC, перемістивши викрадені активи на мережу Ethereum через кілька кросчейн протоколів. Наразі викрадені активи на загальну суму приблизно 32 мільйони доларів США зберігаються на наступних 4 адресах мережі Ethereum:
0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7
0x69c965e164fa60e37a851aa5cd82b13ae39c1d95
0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3
0x639cd2fc24ec06be64aaf94eb89392bea98a6605
Приблизно 10 мільйонів доларів активів зберігається за адресою 0xdf3340a436c27655ba62f8281565c9925c3a5221 в мережі Arbitrum. Beosin Trace додав адреси, пов'язані з хакерами, до чорного списку, подальше відстеження триватиме.
!
Згідно з аналізом Beosin Trace, всі вкрадені кошти все ще зберігаються на кількох адресах зловмисника.
підсумок
Основою атаки є наявність вразливості повторного входу в контракті GMX, що дозволяє зловмисникам отримувати великі прибутки, викупаючи активи через фальшиве збільшення значення AUM. Складні DeFi протоколи, такі як GMX, вимагають багатогранного та багаторівневого аудиту безпеки, з детальним тестуванням та перевіркою коду контракту. Раніше команда безпеки Beosin завершила аудит безпеки кількох DeFi протоколів (таких як Surf Protocol, SyncSwap, LeverFi, Owlto Finance), зосереджуючи увагу на виявленні логічних дефектів контракту та можливих крайніх ситуацій, які можуть бути проігноровані, щоб забезпечити всебічну перевірку DeFi протоколів.