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