Некастодиальный · только чтение

Фишинг через Permit и Permit2

Подпись Permit не стоит газа и никогда не отображается как транзакция, именно поэтому она стала любимым способом фишеров подготовить слив. Рассказываем, как это работает и как от этого защититься.

Сканировать кошелёк: бесплатно Следить 24/7 в Telegram

Только публичный адрес. Без подключения кошелька. Подписывать нечего.

Что такое подпись Permit

Permit из EIP-2612 позволяет авторизовать allowance получателя с помощью офчейн-подписи вместо отправки ончейн-транзакции approve, получатель позже отправляет вашу подпись, чтобы активировать её. Permit2: это общий контракт allowance, используемый многими dapp-приложениями, который выполняет ту же задачу в более широком масштабе, охватывая токены, не поддерживающие Permit нативно.

Почему это идеальная точка для фишинга

Подпись не стоит газа и в момент подписания не создаёт ончейн-транзакцию, поэтому она никогда не попадает в историю активности кошелька так, как это делает вызов approve(). Это запрос signTypedData, который многие кошельки всё ещё показывают как простой, непривычно выглядящий запрос, его легко пропустить, не осознав, что именно вы разрешаете.

Как фишеры их собирают

Фейковая страница клейма, минта или аирдропа просит вас «верифицироваться» или «заклеймить», подписав то, что на самом деле является авторизацией Permit или Permit2. Поскольку ончейн видимо ничего не происходит, пока атакующий сам не решит воспользоваться подписью, жертва может подписать сегодня, а слив произойдёт только через дни или недели, это ломает естественный инстинкт проверить, произошло ли что-то, сразу после подписания.

Защита, которая реально работает

Перед подписанием читайте каждый запрос signTypedData на предмет домена и получателя Permit или Permit2, так же как вы читали бы транзакцию. Guardian от Veriql декодирует эти данные и выдаёт предупреждение при подписи Permit2 с безлимитной суммой для непроверенного получателя, ещё до того, как вы её одобрите. Поскольку подписанный permit может лежать неактивным, также сканируйте свой адрес после этого, активированный allowance Permit2 выглядит точно так же, как обычный апрув, и отзывается точно так же.

Частые вопросы

Стоит ли подпись Permit газа?

Нет: сама подпись бесплатна. Газ стоит только последующий ончейн-вызов получателя для использования подписи, и обычно его оплачивает тот, кто отправляет транзакцию, а не обязательно вы.

Как узнать, подписывал ли я уже такую подпись?

Просканируйте свой адрес: как только подпись Permit или Permit2 использована ончейн, она становится обычным allowance в хранилище токена и отображается при сканировании точно так же, как любой другой апрув, безлимитный или нет.

Похожее