Drainer-подписи на бессрочных DEX: как работают и как распознать
Drainer-атаки стали одним из самых дорогих типов атак в DeFi. Последние исследования Chainalysis показывают, что экосистема Drainer-as-a-Service уже сильно индустриализирована: злоумышленнику достаточно подписаться на готовый набор инструментов, чтобы запускать сложные фишинговые атаки с подписями против пользователей бессрочных DEX.
Если ты активно торгуешь на Hyperliquid, dYdX, GMX и похожих площадках, понимание того, как работают Drainer-подписи, — первый шаг к защите своих средств.
Что такое атака через Drainer-подпись
Суть Drainer-атаки — с помощью социальной инженерии или фишинга заставить пользователя подписать запрос, который выглядит безобидно, но на деле разрешает перевод активов.
В отличие от прямой кражи приватного ключа, Drainer использует легальные механизмы авторизации в экосистеме Ethereum:
- Approve у ERC-20 токенов — разрешение стороннему адресу переводить определённое количество токенов.
- EIP-2612 Permit — выдача разрешения через офчейн-подпись без отдельной ончейн-транзакции Approve.
- EIP-712 structured data signing — подписи структурированных данных для разных типов авторизаций.
- EIP-4337 account abstraction — разрешения на пакетные операции в рамках абстракции аккаунтов.
В нормальном использовании эти механизмы нужны и вполне легитимны. Проблема в том, что Drainer-операторы используют их техническую сложность и маскируют вредоносное разрешение под обычное взаимодействие с DApp.
Особые риски на бессрочных DEX
Частые действия создают больше рискованных моментов
Трейдеры бессрочников постоянно взаимодействуют с контрактами DEX: открывают позиции, докидывают маржу, меняют обеспечение, забирают funding и так далее. Почти каждое действие требует подписи.
Из-за такой частоты легко привыкнуть нажимать «подтвердить» автоматически. Именно этим и пользуются фишинговые страницы: чем больше рутинных подписей, тем ниже внимательность к аномалиям.
Крупные USDC-аппрувы — главная цель
На Hyperliquid и других бессрочных DEX пользователи часто дают крупные разрешения на USDC для контрактов платформы. Drainer может подделать похожий запрос на фишинговой странице, но заменить адрес получателя разрешения на адрес, контролируемый атакующим.
Если ты просто видишь «USDC approval» и подтверждаешь по привычке, не сверяя адрес контракта, можно фактически разрешить злоумышленнику вывести значительную часть средств.
Почему Permit особенно опасен
EIP-2612 Permit позволяет выдать разрешение через подпись вне сети, без обычной ончейн-транзакции Approve. Это означает:
- сама подпись не создаёт транзакцию в сети, не тратит Gas и может не отображаться в истории кошелька как отдельное «разрешение»;
- после получения подписи атакующий сам отправляет ончейн-транзакцию и активирует разрешение;
- с точки зрения пользователя до момента вывода активов может быть непонятно, что он уже подписал действующее разрешение.
Визуально Permit-подпись часто похожа на обычный логин в DApp, например Sign-In With Ethereum. Поэтому для обычного пользователя это один из самых сложных для распознавания вариантов Drainer-атаки.
Технический разбор Drainer-подписи
Типичный вредоносный запрос EIP-712 может выглядеть так:
Тип: EIP-712 structured data signature
Domain:
name: [название протокола, под который маскируется атака]
version: 1
chainId: 1 или 42161 и другая целевая сеть
verifyingContract: [адрес Drainer-контракта, замаскированный под DEX]
Message:
owner: [адрес жертвы]
spender: [адрес атакующего Drainer-контракта]
value: [весь баланс пользователя или его большая часть]
deadline: [timestamp в будущем]
nonce: [текущий nonce, полученный автоматически]
Если кошелёк показывает эти поля в читаемом виде, можно заметить, что verifyingContract и spender не совпадают с официальными адресами протокола. Но если кошелёк показывает только сырой hex, обычному пользователю почти невозможно понять, что именно он подписывает.
Как распознать Drainer-подпись: практический чек-лист
Перед тем как подписывать любой запрос, проверь:
- verifyingContract: полностью ли адрес совпадает с официальным контрактом DEX, которым ты пользуешься. Важно сверять каждый символ.
- spender: для Permit-подписей это должен быть контракт, который ты точно знаешь и которому доверяешь.
- value: не просит ли подпись сумму больше, чем нужно для текущего действия, особенно если это почти весь баланс.
- deadline: адекватный ли срок действия. Нормальные операции часто ограничены минутами, а не годами.
- источник запроса: ты сам инициировал подпись на официальном сайте или окно внезапно всплыло само.
Как OneKey помогает защищаться от Drainer-атак
В кошельке OneKey есть отдельные механизмы, которые помогают снизить риск Drainer-атак:
- Визуализация EIP-712-подписей: кошелёк разбирает структурированные данные и показывает ключевые поля вроде
owner,spender,valueв понятном формате, а не просто сырой hex. - Пометки риска для адресов контрактов: известные вредоносные адреса могут отображаться с предупреждением.
- Предпросмотр через симуляцию транзакции: для ончейн-операций Approve кошелёк до подписи показывает, что именно произойдёт, например: «ты разрешаешь X USDC адресу Y».
- Предупреждения о крупных разрешениях: если запрашиваемая сумма превышает значимую долю твоего баланса, появляется дополнительный сигнал риска.
- Проверяемость open-source кода: репозитории OneKey на GitHub позволяют независимым исследователям проверять реализацию защитной логики.
Аппаратный кошелёк играет важную роль в защите от Drainer-атак. Злоумышленник не может автоматически подписать запрос без физического подтверждения на экране устройства, а содержимое аппаратного экрана не может быть подменено вредоносным кодом на компьютере.
Но важно понимать: аппаратник не спасает, если ты сам подтверждаешь непонятные подписи. Он даёт независимый экран и дополнительный барьер, но решение всё равно принимаешь ты.
Также полезно регулярно проверять старые разрешения через Revoke.cash и отзывать аппрувы, которые больше не нужны. Это уменьшает поверхность атаки, особенно если ты часто пробуешь разные DEX и торговые интерфейсы.
Известные высокорисковые каналы Drainer-атак
Drainer-подписи чаще всего приходят не «из ниоткуда», а через уже знакомые пользователям сценарии:
- фишинговые копии сайтов бессрочных DEX;
- поддельные страницы airdrop, points campaign или claim;
- рекламные ссылки в поиске и соцсетях;
- взломанные Discord, X/Twitter или Telegram-аккаунты проектов;
- вредоносные всплывающие окна на скомпрометированных сайтах;
- «служба поддержки», которая просит подключить кошелёк и подписать запрос.
Общее правило простое: если подпись появилась не после твоего осознанного действия на проверенном домене, относись к ней как к потенциально опасной.
Частые вопросы
Q1: Чем Permit-подпись отличается от обычного Approve?
Ответ: Approve — это ончейн-транзакция. Она требует Gas, и после выполнения разрешение можно увидеть в сети. Permit — это офчейн-подпись, которая сама по себе не тратит Gas. Затем другая сторона может отправить её в сеть и активировать разрешение. В истории кошелька у тебя может не быть привычной записи о «выданном» разрешении, поэтому такую атаку сложнее вовремя заметить. С точки зрения риска для активов оба варианта могут быть одинаково опасны.
Q2: Что делать, если я уже подписал подозрительный запрос?
Ответ: Если это был Approve, как можно быстрее зайди в Revoke.cash и отзови разрешение. Если это был Permit, простой revoke может не помочь, потому что разрешение уже подписано вне сети и атакующий может быстро его использовать. В таком случае нужно немедленно перевести соответствующие токены на новый безопасный адрес. Скорость критична: иногда окно для реакции — всего несколько минут.
Q3: Может ли Drainer-атака пройти, если я использую аппаратный кошелёк OneKey?
Ответ: Аппаратный кошелёк сильно усложняет атаку, потому что каждая подпись требует подтверждения на физическом устройстве, а данные на экране устройства не могут быть подменены вредоносным ПО на компьютере. Но если пользователь не понимает, что подтверждает, и всё равно нажимает approve на устройстве, атака возможна. Максимальный уровень защиты зависит от того, насколько внимательно ты читаешь подпись.
Q4: Что такое Drainer-as-a-Service?
Ответ: Это коммерческая модель, в которой Drainer-инструменты продаются или сдаются по подписке. Атакующему не нужно самому писать сложный код: он получает готовый набор, разворачивает фишинговую страницу под нужную платформу и делится частью украденных средств с оператором сервиса. Такая модель снижает технический порог для атак и способствует росту количества Drainer-кампаний. Подробнее см. исследования Chainalysis.
Q5: Сами бессрочные DEX защищают от Drainer-атак?
Ответ: Легитимные бессрочные DEX могут фильтровать известные вредоносные адреса на своём официальном фронтенде. Но атакующие обычно используют собственные фишинговые сайты, обходя защиту официального интерфейса. Поэтому защита на уровне кошелька, например разбор подписей и симуляция транзакций в OneKey, остаётся одним из самых универсальных слоёв безопасности в разных сценариях доступа.
Итог: настоящая безопасность начинается с понимания подписи
Главная причина успеха Drainer-атак — пользователь подтверждает подпись, не понимая её содержания. Технические инструменты помогают прочитать запрос понятнее, но финальная защита зависит от твоей привычки проверять каждую подпись.
Попробуй OneKey: установи кошелёк, используй разбор подписей и симуляцию транзакций, а для торговли бессрочниками работай через OneKey Perps с более осознанным контролем разрешений и рисков.
Риск-дисклеймер: материал предназначен только для обучения и не является инвестиционной, юридической или финансовой рекомендацией, а также не гарантирует безопасность. Drainer-атаки постоянно меняются, и описанные методы не обеспечивают полной защиты. Украденные ончейн-активы часто невозможно вернуть. Торгуй криптой только после понимания рисков; маржинальная торговля и плечо могут привести к потерям, превышающим первоначальный капитал.



