Безопасность DeFi: руководство по предотвращению срочных займов, манипуляций с ценами и атак повторного входа

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

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

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

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

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

Займ с использованием мгновенного кредита

Мгновенные займы — это инновация в Децентрализованных финансах, но они также часто используются хакерами:

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

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

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

Проблема манипуляции ценами тесно связана с闪电贷, существует два основных типа:

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

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

Ребалансировка

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

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

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

Поскольку баланс пользователя обнуляется только в конце функции, повторные вызовы все равно могут успешно извлечь баланс.

Формы атак повторного входа разнообразны и могут затрагивать несколько функций или контрактов. Для решения проблемы повторного входа необходимо учитывать:

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

Лучше использовать уже существующие лучшие практики безопасности, чем изобретать велосипед. Зрелые решения более безопасны и надежны, чем новые решения, разработанные самостоятельно.

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

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

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

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

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

DEFI1.48%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 3
  • Поделиться
комментарий
0/400
ImpermanentPhobiavip
· 20ч назад
Опасно и интересно: Хакер и Срочные займы.
Посмотреть ОригиналОтветить0
SnapshotBotvip
· 20ч назад
команда проекта еще каждый день разыгрывает людей как лохов
Посмотреть ОригиналОтветить0
OffchainWinnervip
· 20ч назад
Снова узнал что-то новое, хе-хе
Посмотреть ОригиналОтветить0
  • Закрепить