Главная опасность TrapDoor кроется не только в межэкосистемном охвате, но и в принципиально новой технике уклонения от обнаружения — она превращает AI-помощников (например, Cursor или Claude Code) в орудие атаки. Вредоносное ПО внедряет скрытые инструкции в файлы .cursorrules и CLAUDE.md, используя символы Unicode нулевой ширины. Человек при ревью кода не видит ничего подозрительного, однако AI-инструменты считывают эти символы и могут быть обмануты, начиная выполнять вредоносные команды под видом обычной проверки безопасности .
Кампания действовала одновременно в трех основных open-source реестрах, адаптируя технические механизмы под каждый из них .
Основная масса вредоносных пакетов была обнаружена в npm. Они использовали postinstall-хуки для автоматического запуска скрипта-сборщика учетных данных сразу после установки пакета. Основная полезная нагрузка — примерно 1149-строчный скрипт trap-core.js, который систематически сканирует среду жертвы на наличие секретов и отправляет их на подконтрольные атакующим серверы .
Распространяемые через PyPI пакеты для Python были спроектированы так, чтобы при импорте загружать и выполнять удаленные JavaScript-нагрузки. После запуска они разворачивали ту же логику кражи учетных данных, что и варианты для npm .
В основном реестре экосистемы Rust вредоносные пакеты злоупотребляли скриптами build.rs. Это позволяло запускать код для кражи данных прямо во время сборки проекта, еще до того, как разработчик начал бы использовать предполагаемый функционал пакета .
Чтобы не вызывать подозрений, пакеты маскировались под легитимные инструменты для разработчиков с названиями вроде token-usage-tracker, prompt-engineering-toolkit и eth-wallet-security-auditor .
Полезная нагрузка TrapDoor методично охотится за широким спектром секретных данных. Согласно анализу Socket, вредонос нацелен на кражу :
Среди конкретных целей в отчетах упоминаются данные из браузерных расширений MetaMask и Phantom . Особую тревогу вызывает кража GitHub-токенов: с их помощью злоумышленники могут получить доступ к приватным репозиториям исходного кода, внедрить вредоносный код в CI/CD-пайплайны или провести латеральное перемещение, используя скомпрометированные учетные записи разработчиков
.
В ходе расследования Socket были определены основные целевые группы: разработчики в сфере криптовалют, DeFi, Solana, Sui и ИИ . Тематика названий вредоносных пакетов напрямую апеллирует к этим сообществам — фигурировали инструменты для аудита безопасности кошельков, мониторинга транзакций, разработки смарт-контрактов и AI-контекстной обработки.
Атакующие прекрасно понимали, что разработчики в этих экосистемах регулярно хранят ключи от кошельков со значительными активами, имеют доступ к облачной инфраструктуре и обладают широкими привилегиями в инструментальных цепочках разработки. Все это делает компрометацию одной рабочей станции воротами к огромному финансовому и операционному ущербу .
Самый технологически изощренный аспект TrapDoor — это эксплуатация границ доверия в AI-инструментах для написания кода. Вредонос пытается модифицировать или создать файлы .cursorrules и CLAUDE.md. Это конфигурационные файлы, с помощью которых разработчики дают проектные инструкции AI-помощникам, таким как Cursor и Claude Code .
Внутри этих файлов атакующие размещают скрытые инструкции, используя символы Unicode нулевой ширины (например, U+200B, U+200C и U+FEFF). Эти символы невидимы в текстовых редакторах и при стандартном ревью кода — разработчик просто не увидит ничего подозрительного . Однако AI-помощники обрабатывают весь Unicode-текст целиком, и их можно обманом заставить интерпретировать скрытые команды как легитимные. Например, они могут начать собирать учетные данные, копировать исходный код или выполнять произвольные shell-команды, в то время как разработчик остается в неведении
.
Так создается двухэтапная компрометация: пакет заражает среду разработчика и ворует данные напрямую, а отравленный AI-конфиг превращает собственные инструменты разработчика в инструмент для дальнейшего шпионажа. Связанные исследования уже подтвердили, что подобные атаки с невидимыми Unicode-инструкциями работают на реальных AI-платформах, включая Claude Code и GitHub Copilot .
Инфраструктура обнаружения компании Socket смогла идентифицировать релизы TrapDoor с медианным временем всего в 5 минут 27 секунд, а самый быстрый результат составил 58 секунд . Такая скорость позволила исследователям в течение 48 часов после первой подозрительной загрузки связать разрозненные, на первый взгляд, публикации в единую скоординированную кампанию
.
Если вы или ваша команда устанавливали какие-либо из этих пакетов, необходимо действовать немедленно.
Сгенерируйте новые seed-фразы для криптовалютных кошельков и переведите средства на новые адреса. Обновите ключи AWS IAM, персональные токены доступа GitHub, пары SSH-ключей и все API-токены, хранящиеся в переменных окружения . Отзовите OAuth-токены для CI/CD-интеграций.
Запустите npm auditpip listCargo.lock на наличие 34 известных вредоносных пакетов . Поищите историю изменений lock-файлов в git на предмет этих названий, удалите любые совпадения и выполните чистую установку зависимостей.
Проверьте файлы ~/.bashrc, ~/.zshrc, ~/.profile и ~/.config/fish/config.fish на наличие подозрительных алиасов или незакомментированных команд curl и wget, которые могут использоваться для закрепления в системе .
Проверьте каталог .git/hooks/ в каждом проекте на наличие несанкционированных pre-commit, post-commit или pre-push хуков. Поскольку кампания нацелена на GitHub-токены, компрометация на уровне аккаунта может привести к заражению репозиториев .
Просмотрите .github/workflows/ на предмет неожиданных файлов, подозрительных шагов с curl или wget, а также неавторизованных сторонних действий. Проверьте логи запусков Actions на наличие необычных исходящих сетевых запросов.
Во всех проектах найдите файлы .cursorrules и CLAUDE.md, содержащие символы нулевой ширины Unicode. Для обнаружения невидимых символов можно использовать grep:
grep -P '[\x{200B}-\x{200F}\x{2028}-\x{202F}\x{FEFF}]' .cursorrules CLAUDE.mdНайденные подозрительные файлы удалите и проверьте их содержимое с помощью шестнадцатеричного дампа .
Проверьте cron-задачи (crontab -l~/.config/systemd/user/) и, для macOS, LaunchAgents (~/Library/LaunchAgents/) на наличие вредоносных записей .
Встройте в свой CI-пайплайн инструменты для проверки безопасности зависимостей, чтобы отлавливать подозрительные пакеты до их установки. Рассмотрите использование сред рантайм-детектирования, отслеживающих подозрительный доступ к файлам кошельков, SSH-ключам, облачным учетным данным и директориям с данными браузеров .
Comments
0 comments