Трейдер скачал бота с GitHub. Красивый README, бэктест +340%, звёзды, форки. Запустил скрипт и лёг спать. Утром на бирже ноль: API-ключ уже час работал против него, сливая баланс в неликвидный токен через Pump and Dump. Аналитики SlowMist зафиксировали, что именно эта схема стала массовой атакой на криптотрейдеров 1 июля 2026 года. Это не фишинг и не взлом биржи. Это защита от инфостилеров, которую владелец бота просто не настроил. И таких, увы, большинство.
Смысл атаки прост и оттого противный. Вредоносный код прячется внутри легитимно выглядящих репозиториев торговых ботов на GitHub и в npm-пакетах. Ты запускаешь скрипт, который реально торгует и реально рисует красивые отчёты. А параллельно он тихо отправляет на командный сервер хакера всё, что нашёл: seed-фразы, приватные ключи, cookies браузера, API-токены. Проблема не в том, что такие атаки существуют. Проблема в том, что они выглядят как нормальные рабочие инструменты.
Совет с самого начала: относись к любому чужому скрипту, который просит доступ к ключам, как к незнакомцу, которого ты пускаешь в квартиру с сейфом. Дальше разберём пошагово, где именно прячется угроза и что нажимать, чтобы не проснуться с нулём.
Что именно ищет стилер на вашем компьютере: защита от инфостилеров
JavaScript-инфостилер не взламывает биржу. Он взламывает тебя как точку доступа. Первое, что он ищет: файлы wallet.dat и любые текстовые конфиги с seed-фразами или приватными ключами. Если ты хоть раз сохранял мнемонику в заметки или в обычныйtxt, у тебя проблема. Прямо сейчас, а не гипотетически.
Второй вектор серьёзнее для активных трейдеров. Стилер вытаскивает сохранённые пароли и cookies из браузера. Это позволяет обойти 2FA не угадыванием кода, а кражей уже авторизованной сессии. Ты жмёшь на приложение-аутентификатор, вводишь шесть цифр, а хакер в это время уже сидит внутри твоего аккаунта через угнанный cookie. Код тут вообще не нужен.
Вот что интересно. API-токены идут отдельной категорией и бьют больнее всего. Трейдер создаёт ключ для бота с правом на торговлю, не ограничивает IP-адреса и оставляет ключ в конфиге рядом с самим ботом. Стилер находит этот конфиг за секунды. Дальше автоматическая схема: бот хакера покупает низколиквидный токен, потом твоим API-ключом выкупает его по завышенной цене, цена растёт, хакер продаёт. Твой баланс переходит к нему без единого взлома биржевой инфраструктуры. Красиво и подло.
Схема работы JavaScript-стилера: вектора атаки (wallet.dat, cookies, API-ключи, конфиг-файлы) и марш
Как отличить заражённый репозиторий от чистого
Три сигнала, которые стоит проверить до запуска любого бота. Именно до, а не после того, как баланс уехал.
- Зависимости с нестандартными названиями. Открой package.json, посмотри список зависимостей. Пакет с незнакомым именем, нулевыми загрузками и нулевыми звёздами в реестре: это сигнал. У легитимных форков есть история и живая репутация.
- Подозрительный скрипт установки. При установке пакета скрипты могут запускаться автоматически. Если в package.json есть блок с автозапуском кода при установке, а внутри нечитаемая строка или запуск сжатого кода, запускать нельзя. Даже ради +340%.
- Сетевые запросы к посторонним адресам. Нормальный торговый бот стучится к API биржи. Если в коде есть обращения к адресам вне домена биржи, это требует внятного объяснения от автора. Нет объяснения: нет запуска.
Совет: не полагайся только на автоматические проверки. Они ловят известные уязвимости, а против свежего вредоносного кода часто бессильны. Ручной просмотр кода или статический анализ обязательны для любого скрипта, который получает доступ к твоим ключам. Скучно? Да. Но депозит дороже.
Изоляция среды: минимальный рабочий стандарт
Запускать сторонние торговые скрипты на основной машине, где лежат ключи от кошельков, это как оставить ключи в замке зажигания на открытой парковке. Эксперты по кибербезопасности рекомендуют одно из двух решений, и оба реально настраиваются за вечер.
Первый вариант: изолированное окружение без доступа к файловой системе основного компьютера. Бот крутится внутри, не видит твои локальные файлы и не может их прочитать. Настраивается это не сложнее установки обычной программы, но между скриптом и твоими активами появляется физический барьер. Попробуй хотя бы это, если второй вариант кажется перебором.
Второй вариант надёжнее: отдельное устройство только под ботов. Без браузера с сохранёнными паролями, без локальных кошельков, без seed-фраз. На нём только API-ключ с ограниченными правами и сам бот. Даже если стилер туда доберётся, красть ему будет попросту нечего. Пусто.
Настройка API-ключей: то, что большинство пропускает
Создать API-ключ просто. Настроить его правильно умеют единицы. Базовое правило: при создании ключа включи IP Whitelist и укажи только тот адрес, с которого бот реально отправляет команды. Тогда даже украденный ключ не сработает с чужого IP. Смотри дальше, это ещё не всё.
Право на вывод средств боту не нужно никогда. Совсем. Право на торговлю и право на просмотр баланса: вот твой максимум. Ключ без права вывода жёстко ограничивает ущерб: хакер сможет торговать против тебя, но напрямую вывести USDT не получится.
Регулярная ротация ключей сужает окно уязвимости. Если ключ прожил три месяца и бот работал нормально, смени его. Старый деактивируй, не оставляй болтаться. Пошагово это обычно так: зайди в раздел управления API, выбери старый ключ, деактивируй, создай новый уже с IP Whitelist и без права вывода. На биржах вроде UniMex Exchange управление ключами доступно прямо из личного кабинета, а детали по конкретному интерфейсу можно уточнить в t.me/unilivechat.
Что делать, если стилер уже запустился
К делу. Если ты понял, что запустил подозрительный скрипт, счёт идёт на минуты. Паниковать некогда, действуй по шагам.
Первое действие: отключи интернет на устройстве. Стилер отправляет данные на командный сервер в фоне, и обрыв соединения останавливает передачу того, что ещё не ушло. Просто выдерни соединение.
Дальше с другого устройства немедленно деактивируй все API-ключи на биржах. Не меняй, а именно деактивируй. Смена выдаёт новый ключ, но старый при некоторых реализациях ещё работает несколько секунд, и этих секунд хватает.
А теперь про самый недооценённый момент. Если есть подозрение, что стилер добрался до seed-фразы или приватного ключа локального кошелька, отзыв аппрувов смарт-контрактов тебя не спасёт. Хакер уже контролирует кошелёк на уровне ключа, ему аппрувы не нужны. Единственный рабочий ход: создать полностью новый кошелёк и перевести туда все активы раньше, чем это сделает атакующий. О том, как аккуратно отозвать аппрувы и вывести активы в похожих ситуациях, есть отдельный разбор с инструкцией по OpenZeppelin.
И про cookies. Если сессии браузера скомпрометированы, значит: выйди из всех сессий на всех устройствах, смени пароли и переустанови браузер. Не сброс настроек, а именно полная переустановка. Полумеры тут не работают.
Почему аппаратный кошелёк не панацея в этой атаке
Распространённое заблуждение: есть аппаратный кошелёк, значит защищён. При атаке через торгового бота с API-ключом аппаратный кошелёк вообще вне игры. Стилер не лезет в сам кошелёк, он бьёт по биржевому аккаунту через ключ с правом на торговлю. Твои монеты на холодном хранении останутся нетронутыми, зато USDT на бирже уйдут в ноль. Обидно, но факт.
Схожая история с атаками через MEV-ботов и смарт-контракты, где вектор атаки принципиально другой, разобрана в материале про уязвимости смарт-контрактов. Но там хотя бы понятна точка входа. Здесь точка входа: ты сам, добровольно запустивший чужой код. Странно, но именно это делает такую атаку такой массовой.
Проверочная таблица перед запуском любого бота
| Действие | Зачем | Инструмент |
|---|---|---|
| Проверить package.json на автозапуск кода при установке | Блокировать выполнение скрытого кода | Ручной просмотр |
| Проверить зависимости на возраст и популярность | Новые безызвестные пакеты с нулями = подозрение | Реестр npm |
| Запустить в изолированной среде | Физически отделить бота от ключей и кошельков | Изолированное окружение |
| Создать отдельный API-ключ с IP Whitelist | Украденный ключ нельзя применить с чужого IP | Настройки биржи |
| Отключить право вывода на API-ключе | Ограничить максимальный ущерб | Настройки биржи |
| Проверить сетевые запросы бота при работе | Выявить передачу данных на сторонние серверы | Анализ трафика |
Сразу оговорюсь: я не аудитор безопасности, и это моё практическое мнение, а не истина в последней инстанции. Проверяй код сам и не ленись перечитывать настройки ключей дважды.
Как проверить, не украл ли бот мои данные прямо сейчас?
Запусти полную проверку антивирусом с актуальными базами. Дальше зайди в историю активных сессий на всех биржах и посмотри, нет ли входов с незнакомых IP. Нашёл чужую сессию: немедленно заверши её и смени пароль с другого устройства.
Стоит ли платить за приватные торговые боты, если бесплатные так рискованны?
Платность сама по себе не гарантирует чистоту кода. Мошенник спокойно продаст тебе заражённый скрипт за деньги, а ты ещё и решишь, что раз платно, значит безопасно. Оценивай не ценник, а изоляцию среды и права API-ключа.
Можно ли доверять ботам с открытым кодом и тысячами звёзд?
Популярность снижает риск, но не обнуляет его. Атаки типа supply chain компрометируют зависимости популярных проектов, а не сам репозиторий. Фиксируй версии зависимостей через lock-файл и периодически пересматривай их обновления, особенно после свежих релизов.
ФИНАЛ: любой скрипт, который просит API-ключ с правом торговли и стартует локально без изоляции, это открытая дверь к потере депозита. Не завтра, а в ту секунду, когда ты нажмёшь Enter.