SlowMist и GoPlus Security: хакер обошел блокировку Balancer с помощью функции permit
Инцидент с протоколом Balancer показал новый способ обхода заморозки активов через функцию permit(), предусмотренную стандартом EIP-2612. Хакер смог вывести около $3 млн в токенах stS, используя oфчейн-подпись, не требующую газа от заблокированного адреса. После получения доступа к криптоактивам злоумышленник обменял активы на WBTC и ETH, что позволило ему окончательно вывести средства из-под контроля команды проекта.
По данным GoPlus Security, атака произошла утром, когда с адреса, замороженного проектом Sonic Labs, было переведено 19,5 млн stS. Заморозка на уровне сети действовала только для нативного токена S, однако ERC-20 stS оставался доступен для операций. Это позволило хакеру использовать функцию permit() для подписания транзакции за пределами блокчейна, а затем выполнить команду transferFrom(), фактически обойдя ограничения блокировки.
Представители SlowMist отметили, что предупреждали о подобных фишинговых схемах, связанных с офчейн-подписями. Они часто используются юзерами на неизвестных сайтах, предоставляющих dApp-услуги, после чего злоумышленники получают возможность проводить транзакции от имени владельца кошелька. В отличие от обычной функции approve(), которая требует активного подтверждения со стороны владельца, permit() дает возможность создавать авторизационные подписи вне сети и применять их впоследствии без участия пользователя.
Эксперты объясняют, что permit() изначально разрабатывалась для удобства — чтобы юзеры могли взаимодействовать со смарт-контрактами без необходимости тратить газ на подтверждение разрешений.
Однако в данном случае именно этот механизм стал уязвимостью, так как заморозка на уровне токена не перекрыла возможность подписи и выполнения разрешения через permit(). Представители GoPlus Security подчеркнули, что подобные инциденты указывают на необходимость внедрения комплексной системы безопасности, которая учитывает как ончейн-, так и офчейн-взаимодействия. В частности, рекомендуется использовать предварительные проверки транзакций, способные выявлять подозрительные подписи и попытки передачи разрешений до их выполнения. Также следует оперативно реагировать на инциденты и иметь механизмы перехвата активов на обоих уровнях.