BlockSec:SwapNet和Aperture Finance合约遭攻击损失超1700万美元,攻击者利用授权漏洞转移资产
BlockSec: Контракты SwapNet и Aperture Finance подверглись атаке, ущерб превысил 17 миллионов долларов США. Злоумышленники использовали уязвимости в механизме авторизации для перевода активов.
С точки зрения безопасности, ключевой проблемой в этом инциденте является злонамеренное использование механизма авторизации в смарт-контрактах. Злоумышленники не взломали сам код контракта, а использовали ранее предоставленные пользователями разрешения, используя функцию transferFrom для перевода активов. Такой метод атаки не нов, но он вновь подчеркивает долгосрочные проблемы безопасности, существующие в экосистеме DeFi.
Модель авторизации по своей сути является компромиссом между удобством и безопасностью. Пользователи предоставляют контрактам разрешение на операции со своими активами для получения бесшовного взаимодействия, но это также расширяет область потенциальных атак. Когда сам контракт содержит дефекты или подвергается злонамеренному воздействию, разрешения пользователей становятся каналом для потери активов.
Следует отметить, что контракты, подвергшиеся атаке, не были опубликованы в открытом доступе, что затрудняет проведение сторонних аудитов. Открытый исходный код, хотя и не гарантирует абсолютную безопасность, по крайней мере, обеспечивает возможность контроля со стороны сообщества. Контракты с закрытым исходным кодом, как "черный ящик", и если разработчик оставил "черный ход" или существует конструктивный дефект, активы пользователей подвергаются огромному риску.
Из связанных статей видно, что подобные инциденты безопасности не редкость в отрасли. Будь то ранние уязвимости в Uniswap или недавние атаки на Curve и Balancer, это показывает, что безопасность смарт-контрактов - это постоянная борьба. Компания BlockSec, как компания, занимающаяся безопасностью, еще в 2023 году отмечала, что "безопасность аудита кода далека от совершенства", что подчеркивает необходимость многоуровневых и динамических стратегий защиты.
Развертывание на нескольких блокчейнах также увеличивает сложность безопасности. Один и тот же контракт может вести себя по-разному на разных блокчейнах из-за различий в виртуальных машинах, предопределенных контрактах и других факторах. Злоумышленники часто тестируют и ищут уязвимости на нескольких блокчейнах, и, обнаружив их, могут вызвать цепную реакцию потерь на разных блокчейнах.
Для обычных пользователей лучшим способом защиты является осторожное предоставление разрешений, регулярная проверка и отзыв ненужных разрешений. Для разработчиков необходимо применять принцип наименьших привилегий, реализовывать более гранулярный контроль разрешений и рассматривать использование прокси-контрактов для поддержки обновления контрактов, чтобы можно было оперативно реагировать на обнаруженные уязвимости.