Децентрализованные финансы Общие уязвимости безопасности и меры предосторожности
Недавно один из экспертов по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Эксперт рассмотрел основные события, связанные с безопасностью, произошедшие в Web3 индустрии за последний год, обсудил причины этих событий и способы их предотвращения, подытожил распространенные уязвимости смарт-контрактов и меры предосторожности, а также дал некоторые советы по безопасности для проектных команд и обычных пользователей.
Распространенные типы уязвимостей DeFi в основном включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами функций, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости бизнес-логики, утечку приватных ключей и атаки повторного входа. В этой статье будет сделан акцент на флеш-кредиты, манипуляции с ценами и атаки повторного входа.
Мгновенный заём
Флеш-кредиты являются инновацией в области Децентрализованных финансов, но также часто используются хакерами. Злоумышленники берут в долг большие суммы через флеш-кредиты для манипуляции ценами или атаки на бизнес-логику. Разработчики должны учитывать, приведет ли наличие огромных средств к аномалиям в функциональности контракта или может быть использовано для получения неправомерной выгоды в одной сделке через взаимодействие с несколькими функциями.
Многие проекты Децентрализованные финансы кажутся высокодоходными, но на самом деле уровень команд проектов варьируется. Некоторые проекты могут использовать купленный код, и даже если сам код не содержит уязвимостей, логически могут возникнуть проблемы. Например, некоторые проекты будут выдавать вознаграждения в фиксированное время в зависимости от количества токенов, удерживаемых держателями, но злоумышленники могут воспользоваться мгновенным кредитом для покупки большого количества токенов, чтобы получить большую часть вознаграждения в момент его выдачи.
Манипуляция ценами
Проблема манипуляции ценами тесно связана с кредитами на молниеносные займы, в основном из-за того, что некоторые параметры при расчете цен могут контролироваться пользователями. Существует два основных типа проблем:
При расчете цены используются данные третьих сторон, но способ их использования неверен или проверка отсутствует, что приводит к злонамеренному манипулированию ценами.
Использовать количество токенов на некоторых адресах в качестве расчетной переменной, при этом баланс токенов на этих адресах может временно увеличиваться или уменьшаться.
Атака повторного входа
Атака повторного входа является одной из основных опасностей, с которыми можно столкнуться при вызове внешних контрактов. Злоумышленник может захватить поток управления и внести неожиданные изменения в данные, вызывая функции. Например, в функции вывода средств, если баланс пользователя устанавливается в 0 только в конце функции, злоумышленник может многократно вызывать эту функцию в процессе, извлекая средства несколько раз.
При защите от атак повторного входа необходимо обратить внимание на следующие моменты:
Не только предотвращает проблему повторного входа для одной функции
Следуйте модели Проверок-Эффектов-Взаимодействий при кодировании
Используйте проверенный временем модификатор защиты от повторного входа
При решении вопросов безопасности следует по возможности использовать уже проверенные лучшие практики безопасности, а не изобретать велосипед.
Рекомендации по безопасности для проектной команды
Соблюдайте лучшие практики безопасности при разработке контрактов
Реализация возможности обновления и приостановки смарт-контрактов
Использование механизма временной блокировки
Увеличить инвестиции в безопасность, создать完善ную систему безопасности
Повышение осведомленности всех сотрудников о безопасности
Профилактика внутреннего злоупотребления, одновременно повышая эффективность и улучшая управление рисками
Как пользователи могут определить, безопасен ли смарт-контракт
Подтвердите, является ли контракт открытым исходным кодом
Проверьте, использует ли владелец децентрализованный механизм мультиподписей.
Посмотреть имеющуюся торговую ситуацию по контракту
Узнайте, является ли контракт代理ным, можно ли его обновить, есть ли временная блокировка
Подтвердите, прошел ли контракт аудит от нескольких организаций и не слишком ли велики полномочия владельца.
Обратите внимание на использование оракулов
С помощью вышеуказанных мер как команда проекта, так и пользователи могут в определенной степени повысить безопасность Децентрализованных финансов и снизить риск атак.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
21 Лайков
Награда
21
8
Поделиться
комментарий
0/400
SadMoneyMeow
· 07-18 23:00
Слушая это много лет, все равно, если вас разыгрывают людей как лохов, то вас разыграют.
Посмотреть ОригиналОтветить0
DefiPlaybook
· 07-17 00:45
Статистика показывает, что уязвимости срочных займов составляют 43,7% убытков в Децентрализованных финансах.
Посмотреть ОригиналОтветить0
LiquiditySurfer
· 07-16 23:58
Защитите свой кошелек, всех
Посмотреть ОригиналОтветить0
FundingMartyr
· 07-15 23:30
Поняв на собственном опыте, начинаешь учиться на своих ошибках.
Посмотреть ОригиналОтветить0
alpha_leaker
· 07-15 23:17
Видеть странное — не странно для старого Хакера.
Посмотреть ОригиналОтветить0
GateUser-00be86fc
· 07-15 23:10
Так много уязвимостей, как с этим играть?
Посмотреть ОригиналОтветить0
LongTermDreamer
· 07-15 23:03
Снова три года как один день в дневнике по уходу за овцами
Децентрализованные финансы безопасность: анализ распространенных уязвимостей и стратегий защиты
Децентрализованные финансы Общие уязвимости безопасности и меры предосторожности
Недавно один из экспертов по безопасности провел для членов сообщества урок по безопасности в Децентрализованных финансах. Эксперт рассмотрел основные события, связанные с безопасностью, произошедшие в Web3 индустрии за последний год, обсудил причины этих событий и способы их предотвращения, подытожил распространенные уязвимости смарт-контрактов и меры предосторожности, а также дал некоторые советы по безопасности для проектных команд и обычных пользователей.
Распространенные типы уязвимостей DeFi в основном включают в себя флеш-кредиты, манипуляции с ценами, проблемы с правами функций, произвольные внешние вызовы, проблемы с функцией fallback, уязвимости бизнес-логики, утечку приватных ключей и атаки повторного входа. В этой статье будет сделан акцент на флеш-кредиты, манипуляции с ценами и атаки повторного входа.
Мгновенный заём
Флеш-кредиты являются инновацией в области Децентрализованных финансов, но также часто используются хакерами. Злоумышленники берут в долг большие суммы через флеш-кредиты для манипуляции ценами или атаки на бизнес-логику. Разработчики должны учитывать, приведет ли наличие огромных средств к аномалиям в функциональности контракта или может быть использовано для получения неправомерной выгоды в одной сделке через взаимодействие с несколькими функциями.
Многие проекты Децентрализованные финансы кажутся высокодоходными, но на самом деле уровень команд проектов варьируется. Некоторые проекты могут использовать купленный код, и даже если сам код не содержит уязвимостей, логически могут возникнуть проблемы. Например, некоторые проекты будут выдавать вознаграждения в фиксированное время в зависимости от количества токенов, удерживаемых держателями, но злоумышленники могут воспользоваться мгновенным кредитом для покупки большого количества токенов, чтобы получить большую часть вознаграждения в момент его выдачи.
Манипуляция ценами
Проблема манипуляции ценами тесно связана с кредитами на молниеносные займы, в основном из-за того, что некоторые параметры при расчете цен могут контролироваться пользователями. Существует два основных типа проблем:
Атака повторного входа
Атака повторного входа является одной из основных опасностей, с которыми можно столкнуться при вызове внешних контрактов. Злоумышленник может захватить поток управления и внести неожиданные изменения в данные, вызывая функции. Например, в функции вывода средств, если баланс пользователя устанавливается в 0 только в конце функции, злоумышленник может многократно вызывать эту функцию в процессе, извлекая средства несколько раз.
При защите от атак повторного входа необходимо обратить внимание на следующие моменты:
При решении вопросов безопасности следует по возможности использовать уже проверенные лучшие практики безопасности, а не изобретать велосипед.
Рекомендации по безопасности для проектной команды
Как пользователи могут определить, безопасен ли смарт-контракт
С помощью вышеуказанных мер как команда проекта, так и пользователи могут в определенной степени повысить безопасность Децентрализованных финансов и снизить риск атак.