Обзор уязвимостей безопасности DeFi: анализ рисков срочных займов, манипуляций с ценами и атак повторного входа.

robot
Генерация тезисов в процессе

Децентрализованные финансы Часто встречающиеся уязвимости безопасности и меры предосторожности

Недавно один из экспертов по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Эксперт рассмотрел основные события безопасности в индустрии Web3 за последний год, обсудил причины их возникновения и способы их предотвращения, обобщил распространенные уязвимости смарт-контрактов и меры предосторожности, а также дал некоторые советы по безопасности для проектных команд и обычных пользователей.

Распространенные типы уязвимостей в Децентрализованных финансах в основном включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами на функции, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости в бизнес-логике, утечку приватных ключей и атаки повторного входа. В данной статье будет уделено особое внимание флеш-кредитам, манипуляциям с ценами и атакам повторного входа.

Cobo Децентрализованные финансы безопасность (часть 2): Часто встречающиеся уязвимости безопасности в DeFi и их предотвращение

Ловкий заём

Мгновенные займы — это инновация в области Децентрализованных финансов, но они также часто используются злоумышленниками. Злоумышленники занимают большие суммы денег через мгновенные займы, чтобы манипулировать ценами или атаковать бизнес-логику. Разработчики должны учитывать, повлияет ли огромная сумма денег на функциональность контракта, или же она будет использована для получения незаконной прибыли.

Многие проекты в области Децентрализованные финансы кажутся высокодоходными, но на самом деле уровень команд проектов очень разный. Некоторые проекты могут иметь код, который был куплен; даже если сам код не содержит уязвимостей, логически могут возникнуть проблемы. Например, некоторые проекты распределяют вознаграждения в фиксированное время в зависимости от количества токенов у держателей, но злоумышленники используют флеш-кредиты для покупки большого количества токенов, получая большую часть вознаграждения в момент его распределения.

Манипуляция ценами

Проблема манипуляции ценами тесно связана с闪电贷, в основном из-за того, что некоторые параметры, используемые для расчета цен, могут контролироваться пользователями. Существует два основных типа проблем:

  1. Использование сторонних данных для расчета цен, но неправильное использование или отсутствие проверки приводит к манипуляциям с ценами.
  2. Использовать количество токенов на некоторых адресах в качестве расчетной переменной, при этом баланс токенов на этих адресах может временно увеличиваться или уменьшаться.

Атака повторного входа

Атака повторного входа является одной из основных опасностей, с которыми можно столкнуться при вызове внешних контрактов. Злоумышленник может захватить управление потоком и внести неожиданные изменения в данные. Например:

солидность отображение (address => uint) private userBalances;

функция withdrawBalance() публичная { uint amountToWithdraw = userBalances[msg.sender]; (bool успех, ) = msg.sender.call.value(amountToWithdraw)("" ); require(успех); userBalances[msg.sender] = 0; }

В этом примере, поскольку баланс пользователя устанавливается в 0 только в конце функции, злоумышленник может снова вызвать эту функцию после успешного первого вызова, что позволяет ему многократно выводить баланс.

Для решения проблемы повторного входа необходимо обратить внимание на следующие моменты:

  1. Необходимо предотвратить не только проблемы повторного входа для одной функции;
  2. Следуйте модели Checks-Effects-Interactions при кодировании;
  3. Используйте проверенный временем модификатор защиты от повторного входа.

Типичный случай повторного входа - это инцидент с Omni Protocol. Во время этой атаки транзакции, отправленные злоумышленником, который обнаружил уязвимость, были перехвачены и выполнены другими хакерами, что привело к тому, что первоначальный злоумышленник получил лишь часть прибыли. Это подчеркивает особенности "темного леса" в экосистеме Web3, где злоумышленники также могут быть добычей друг друга.

Рекомендации по безопасности

Рекомендации по безопасности от команды проекта

  1. Следуйте лучшим практикам безопасности при разработке контрактов.
  2. Реализация возможности обновления и приостановки контрактов.
  3. Используйте механизм временной блокировки.
  4. Увеличить инвестиции в безопасность, создать完善ную систему безопасности.
  5. Повышение осведомленности всех сотрудников о безопасности.
  6. Профилактика внутренних злоупотреблений, повышение эффективности и одновременно укрепление управления рисками.
  7. Осторожно вводите сторонние услуги, следуя принципу "по умолчанию, ни вверх, ни вниз по цепочке не безопасно".

Как пользователю/поставщику ликвидности определить, безопасен ли смарт-контракт

  1. Проверьте, открыт ли контракт.
  2. Проверить, использует ли владелец децентрализованный многофакторный механизм.
  3. Посмотреть текущую торговую ситуацию по контракту.
  4. Подтвердите, является ли контракт代理-контрактом, можно ли его обновить и есть ли временной замок.
  5. Проверьте, проводился ли аудит контракта несколькими организациями и оцените, не слишком ли велики полномочия владельца.
  6. Обратите внимание на выбор и использование оракулов.

В общем, в области Децентрализованные финансы вопросы безопасности всегда являются одним из самых важных факторов. Как для команд проектов, так и для обычных пользователей, необходимо сохранять высокую бдительность и принимать соответствующие меры безопасности, чтобы снизить риски и обеспечить безопасность активов.

DEFI-7.38%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
TokenomicsTrappervip
· 7ч назад
просто еще один день, наблюдая за тем, как дегены попадают в неприятности от тех же старых эксплойтов... предсказал эту модель несколько месяцев назад, если честно
Посмотреть ОригиналОтветить0
DegenWhisperervip
· 7ч назад
И черное, и белое - все ясно
Посмотреть ОригиналОтветить0
degenonymousvip
· 7ч назад
Снова попались на смарт-контракты.
Посмотреть ОригиналОтветить0
BlockchainFriesvip
· 7ч назад
Лучше пойти на доставку еды, чем целый день искать уязвимости.
Посмотреть ОригиналОтветить0
Ser_This_Is_A_Casinovip
· 7ч назад
дефи действительно казино, как и должно быть, терять так терять
Посмотреть ОригиналОтветить0
OPsychologyvip
· 7ч назад
Срочные займы怕啥 老子全是歌德币
Посмотреть ОригиналОтветить0
GateUser-00be86fcvip
· 7ч назад
Мой проект всегда придавал большое значение безопасности.
Посмотреть ОригиналОтветить0
  • Закрепить