Аналіз поширених запитань щодо аудиту NFT-контрактів та типових безпекових інцидентів
У першій половині 2022 року в сфері NFT сталося багато інцидентів безпеки, що призвело до значних економічних втрат. Згідно з даними платформ моніторингу, у цей період сталося 10 серйозних інцидентів безпеки NFT, що призвело до втрат приблизно 6490 мільйонів доларів США. Основними способами атак були експлуатація вразливостей контрактів, витік приватних ключів та фішинг. Варто зазначити, що сервери Discord часто піддаються атакам, і випадки втрат користувачів через клацання на фішингові посилання не є рідкістю.
Аналіз типових випадків безпеки NFT
Подія ### TreasureDAO
3 березня 2022 року платформа обміну TreasureDAO зазнала хакерської атаки, в результаті якої було вкрадено понад 100 NFT. Уразливість існувала у функції buyItem контракту TreasureMarketplaceBuyer, через відсутність перевірки типу токена, що дозволяло атакарам купувати токени за умови, що сума платежу ERC-20 токена дорівнює 0. Цей інцидент підкреслив проблему логічної плутанини, що виникає внаслідок змішаного використання токенів ERC-1155 та ERC-721.
Подія аеродропу APE Coin
17 березня 2022 року хакери використали闪电贷, щоб отримати понад 60 000 монет APE Coin у вигляді airdrop. Уразливість виникла через те, що контракт airdrop AirdropGrapesToken використовує alpha.balanceOf() та beta.balanceOf() для визначення права власності користувача на NFT BAYC/MAYC, а цей метод може лише отримати миттєвий стан, що робить його вразливим до маніпуляцій через闪电贷.
Захід Revest Finance
27 березня 2022 року Revest Finance зазнав атаки, внаслідок якої було втрачено 120 тисяч доларів. Уразливість виникла в функції depositAdditionalToFNFT() контракту Revest, де через проблему повторного входу ERC-1155 нападник зміг багаторазово виконати операцію випуску.
NBA хакерські атаки
21 квітня 2022 року проект NBA зазнав хакерської атаки. У контракті The_Association_Sales під час перевірки білого списку існувала проблема з підробкою та повторним використанням підписів, головним чином через те, що не зберігалися вже використані підписи та не вистачало перевірки msg.sender.
Подія Akutar
23 квітня 2022 року у проєкті Akutar внаслідок вразливості контракту AkuAuction було заблоковано 11539 ETH (приблизно 34 мільйони доларів США). Основні проблеми включають логічний дефект функції повернення коштів і не врахування випадків багаторазових ставок користувачів.
Подія XCarnival
24 червня 2022 року протокол позики NFT XCarnival зазнав атаки, внаслідок чого було втрачено близько 3,8 мільйона доларів. У функції pledgeAndBorrow контракту XNFT існує логічна вразливість, яка не проводить ефективну перевірку адреси xToken та стану запису застави.
Загальні питання щодо аудиту NFT контрактів
Підписування та повторне використання:
Брак повторної перевірки виконання, що дозволяє повторне використання підписаних даних для карбування NFT
Перевірка підпису не є суворою, що може призвести до того, що будь-який користувач зможе пройти перевірку та здійснити карбування.
Логічна помилка:
Адміністратор контракту може обійти обмеження на загальну кількість монет.
Під час аукціону існує ризик атаки залежності порядку угод
Реін'єкція атак ERC721/ERC1155:
Використання функції сповіщення про перекази може призвести до атаки повторного входу
Занадто великий обсяг повноважень:
Надмірні вимоги до авторизації можуть призвести до ризику крадіжки NFT
Маніпуляція цінами:
Ціна NFT залежить від кількості токенів, що утримуються в зовнішніх контрактах, і може піддаватися впливу атаки через блискавичний кредит.
Ці проблеми часто виникають під час реальних інцидентів безпеки, що підкреслює важливість професійного аудиту безпеки контрактів NFT. Команди проекту повинні приділяти увагу безпеці контрактів, своєчасно виявляти та виправляти потенційні вразливості, щоб запобігти повторенню подібних інцидентів.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Часті випадки безпеки NFT-контрактів: аналіз шести типових випадків і основні моменти аудиту
Аналіз поширених запитань щодо аудиту NFT-контрактів та типових безпекових інцидентів
У першій половині 2022 року в сфері NFT сталося багато інцидентів безпеки, що призвело до значних економічних втрат. Згідно з даними платформ моніторингу, у цей період сталося 10 серйозних інцидентів безпеки NFT, що призвело до втрат приблизно 6490 мільйонів доларів США. Основними способами атак були експлуатація вразливостей контрактів, витік приватних ключів та фішинг. Варто зазначити, що сервери Discord часто піддаються атакам, і випадки втрат користувачів через клацання на фішингові посилання не є рідкістю.
Аналіз типових випадків безпеки NFT
Подія ### TreasureDAO
3 березня 2022 року платформа обміну TreasureDAO зазнала хакерської атаки, в результаті якої було вкрадено понад 100 NFT. Уразливість існувала у функції buyItem контракту TreasureMarketplaceBuyer, через відсутність перевірки типу токена, що дозволяло атакарам купувати токени за умови, що сума платежу ERC-20 токена дорівнює 0. Цей інцидент підкреслив проблему логічної плутанини, що виникає внаслідок змішаного використання токенів ERC-1155 та ERC-721.
Подія аеродропу APE Coin
17 березня 2022 року хакери використали闪电贷, щоб отримати понад 60 000 монет APE Coin у вигляді airdrop. Уразливість виникла через те, що контракт airdrop AirdropGrapesToken використовує alpha.balanceOf() та beta.balanceOf() для визначення права власності користувача на NFT BAYC/MAYC, а цей метод може лише отримати миттєвий стан, що робить його вразливим до маніпуляцій через闪电贷.
Захід Revest Finance
27 березня 2022 року Revest Finance зазнав атаки, внаслідок якої було втрачено 120 тисяч доларів. Уразливість виникла в функції depositAdditionalToFNFT() контракту Revest, де через проблему повторного входу ERC-1155 нападник зміг багаторазово виконати операцію випуску.
NBA хакерські атаки
21 квітня 2022 року проект NBA зазнав хакерської атаки. У контракті The_Association_Sales під час перевірки білого списку існувала проблема з підробкою та повторним використанням підписів, головним чином через те, що не зберігалися вже використані підписи та не вистачало перевірки msg.sender.
Подія Akutar
23 квітня 2022 року у проєкті Akutar внаслідок вразливості контракту AkuAuction було заблоковано 11539 ETH (приблизно 34 мільйони доларів США). Основні проблеми включають логічний дефект функції повернення коштів і не врахування випадків багаторазових ставок користувачів.
Подія XCarnival
24 червня 2022 року протокол позики NFT XCarnival зазнав атаки, внаслідок чого було втрачено близько 3,8 мільйона доларів. У функції pledgeAndBorrow контракту XNFT існує логічна вразливість, яка не проводить ефективну перевірку адреси xToken та стану запису застави.
Загальні питання щодо аудиту NFT контрактів
Підписування та повторне використання:
Логічна помилка:
Реін'єкція атак ERC721/ERC1155:
Занадто великий обсяг повноважень:
Маніпуляція цінами:
Ці проблеми часто виникають під час реальних інцидентів безпеки, що підкреслює важливість професійного аудиту безпеки контрактів NFT. Команди проекту повинні приділяти увагу безпеці контрактів, своєчасно виявляти та виправляти потенційні вразливості, щоб запобігти повторенню подібних інцидентів.