Новый тип вредоносных Ботов Solana: анализ кода кражи закрытого ключа и меры предосторожности

В экосистеме Solana снова появились злонамеренные боты: файл конфигурации скрывает ловушку для кражи Закрытого ключа

В начале июля 2025 года пользователь обратился за помощью к команде безопасности Slow Mist с просьбой проанализировать причины кражи его криптоактивов. В ходе расследования было установлено, что инцидент произошел из-за использования пользователем открытого проекта zldp2002/solana-pumpfun-bot, размещенного на GitHub, что вызвало скрытое поведение по краже активов.

Недавно еще один пользователь стал жертвой кражи криптоактивов из-за использования аналогичного открытого проекта audiofilter/pumpfun-pumpswap-sniper-copy-trading-bot и обратился в команду безопасности SlowMist. В связи с этим команда провела глубокий анализ.

Процесс анализа

Статический анализ

С помощью статического анализа было обнаружено подозрительное код, расположенное в файле конфигурации /src/common/config.rs, в основном сосредоточенное в методе create_coingecko_proxy(). Этот метод сначала вызывает import_wallet(), а затем вызывает import_env_var() для получения Закрытый ключ.

Solana экосистема снова сталкивается с вредоносными Ботами: файл конфигурации скрывает ловушку для передачи Закрытого ключа

В методе import_env_var(), если переменная окружения существует, она возвращается напрямую; если нет, то переходит в ветвь Err(e) и выводит сообщение об ошибке. Поскольку существует цикл loop{} без условий выхода, это приведет к постоянному потреблению ресурсов.

Экосистема Solana вновь сталкивается с вредоносными Ботами: конфигурационный файл скрывает ловушку для утечки Закрытого ключа

Закрытый ключ и другая чувствительная информация хранятся в файле .env. Когда закрытый ключ получен, вредоносный код будет проверять длину закрытого ключа:

  • Если меньше 85, напечатать сообщение об ошибке и продолжать потреблять ресурсы;
  • Если больше 85, преобразуйте эту строку Base58 в объект Keypair, содержащий информацию о закрытом ключе.

Затем вредоносный код использует Arc для упаковки информации о Закрытом ключе, чтобы поддерживать многопоточную совместную работу.

Solana экосистема снова сталкивается с вредоносными ботами: файл конфигурации скрывает ловушку для утечки закрытого ключа

Затем декодируйте вредоносный URL-адрес. Сначала получите закодированный адрес сервера злоумышленника HELIUS_PROXY(, этот жестко закодированный констант, используйте bs58 для декодирования, преобразуйте результат в массив байтов, затем в строку UTF-8.

Декодированный реальный адрес:

![Возрождение злонамеренных ботов в экосистеме Solana: профиль скрывает ловушку для утечки закрытого ключа])https://img-cdn.gateio.im/webp-social/moments-52dfae255e511bbb7a9813af7340c52e.webp(

Вредоносный код затем создает HTTP-клиент, преобразует информацию о закрытом ключе в строку Base58, формирует тело JSON-запроса и отправляет данные, такие как закрытый ключ, по этому URL через POST-запрос, игнорируя при этом результат ответа.

Вдобавок, метод create_coingecko_proxy)( также включает в себя получение цен и другие обычные функции, чтобы скрыть свои злонамеренные действия. Этот метод вызывается при запуске приложения, на этапе инициализации конфигурационного файла метода main)( в main.rs.

Согласно анализу, IP-адрес сервера злоумышленника находится в США.

Проект недавно )2025 года 17 июля ( был обновлен на GitHub, основные изменения сосредоточены в конфигурационном файле config.rs в каталоге src. Исходный адрес кодирования HELIUS_PROXY был заменен на новое кодирование.

![Solana экосистема снова сталкивается с вредоносными ботами: в конфигурационном файле скрыта ловушка для передачи закрытого ключа])https://img-cdn.gateio.im/webp-social/moments-453d878924f97e2f24033e4d40f0a24c.webp(

) Динамический анализ

Для наглядного наблюдения за процессом кражи вредоносного кода мы написали скрипт на Python для генерации тестовых пар открытых и закрытых ключей Solana и развернули HTTP-сервер, который может принимать POST-запросы на сервере.

Замените сгенерированный код тестового сервера на код адреса злонамеренного сервера, установленного изначально атакующим, и замените PRIVATE_KEY в файле .env на тестовый Закрытый ключ.

После запуска вредоносного кода можно увидеть, что тестовый сервер успешно получил JSON-данные, отправленные вредоносным проектом, которые содержат информацию о Закрытом ключе.

![Solana экосистема вновь сталкивается с вредоносными ботами: в конфигурационном файле скрыта ловушка для утечки закрытого ключа]###https://img-cdn.gateio.im/webp-social/moments-c092752ca8254c7c3dfa22bde91a954c.webp(

Показатели вторжения ) IoCs (

ИП: 103.35.189.28

Доменные имена: storebackend-qpq3.onrender.com

SHA256:

  • 07f0364171627729788797bb37e0170a06a787a479666abf8c80736722bb79e8 - pumpfun-pumpswap-sniper-копирование-торговый-бот-мастер.zip
  • ace4b1fc4290d6ffd7da0fa943625b3a852190f0aa8d44b93623423299809e48 - pumpfun-pumpswap-sniper-copy-trading-bot-master/src/common/config.rs

Злонамеренные хранилища:

Похожие методы реализации:

Итоги

В этой атаке злоумышленник маскируется под законный проект с открытым исходным кодом, вводя пользователей в заблуждение, чтобы они скачали и выполнили вредоносный код. Этот проект будет считывать конфиденциальную информацию из файла .env на локальном компьютере и передавать украденный Закрытый ключ на сервер, контролируемый злоумышленником. Такие атаки обычно сочетаются с методами социальной инженерии, и пользователи могут легко стать жертвами.

Рекомендуется разработчикам и пользователям сохранять высокий уровень бдительности по отношению к неясным проектам на GitHub, особенно когда это касается операций с кошельками или Закрытым ключом. Если необходимо запускать или отлаживать, рекомендуется делать это в отдельной среде, не содержащей конфиденциальные данные, чтобы избежать выполнения злонамеренных программ и команд из непроверенных источников.

![Solana экосистема вновь сталкивается с вредоносными Ботами: конфигурационный файл скрывает ловушку для утечки Закрытый ключ])https://img-cdn.gateio.im/webp-social/moments-f0b9ae1a79eb6ac2579c9d5fb0f0fa78.webp(

SOL0.73%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить