Claude Code можно заставить открыть reverse shell на компьютере разработчика без вредоносного кода в репозитории. Исследователи Mozilla 0din показали атаку, где опасная команда приехала позже — из DNS TXT-записи.

Сценарий неприятен именно своей будничностью. Разработчик клонирует проект, читает Markdown с инструкцией по установке пакета Axiom и запускает его. Инструмент падает с обычной ошибкой и предлагает выполнить команду настройки. Claude Code пытается помочь и сам следует этой подсказке.

Мы видели похожую логику в автодополнении кода и CI-скриптах. Но агентские инструменты идут дальше: они не только советуют, но и действуют. В этом разница между «копировать команду из README» и «ИИ сам решил, что это безопасное восстановление после ошибки».

Продолжение после рекламы

Атака пряталась не в коде, а в DNS

Команда Mozilla 0din описала цепочку, где видимые файлы проекта не содержали вредоносного кода, поэтому обычная проверка репозитория не цеплялась за красные флаги. Опасная часть появлялась только во время выполнения: скрипт делал DNS-запрос и получал инструкцию из TXT-записи домена.

По данным исследователей, именно один фальшивый текст ошибки запускал всю цепочку. Claude Code воспринимал его как нормальную подсказку для устранения проблемы. Для разработчика это выглядело как типичный setup: пакет не инициализирован, нужно выполнить команду.

Дальше скрипт обращался к DNS TXT-записи, которую контролировал атакующий. В ней лежала команда в Base64. После декодирования она открывала обратное подключение к удаленному серверу злоумышленника.

Это не требовало «грязного» репозитория. Все файлы, которые человек или статический сканер смотрит до запуска, могли выглядеть спокойно. Вредный смысл появлялся только после сетевого запроса.

  • Точка входа: Markdown-инструкция и обычная ошибка установки
  • Триггер: команда восстановления, которую Claude Code счел безопасной
  • Канал доставки: DNS TXT-запись с закодированной инструкцией
  • Результат: скрытый reverse shell на устройстве разработчика
Изображение к статье: Claude Code обманули через DNS: ИИ сам запустил атаку

Почему антивирусы и сканеры не увидели проблему

Стандартные средства защиты плохо ловят такую атаку, потому что каждый отдельный шаг выглядит почти безобидно: README с инструкцией, ошибка настройки, запуск setup-команды и обычное разрешение доменного имени. Подозрительная картина складывается только если смотреть на цепочку целиком.

Статические анализаторы видели нормальные файлы и обычный DNS-запрос. Файрволы тоже не получали очевидного сигнала: разрешение домена само по себе не похоже на загрузку вредоносного бинарника. Агент считал команду заранее разрешенной, потому что она пришла из контекста проекта.

После попадания в систему атакующий мог закрепиться. В исследовании упомянуты два типовых варианта: добавить SSH-ключ или создать скрытую задачу cron. Это уже не демонстрация «страшилки», а знакомый набор приемов из реальных компрометаций рабочих машин.

Agentic AI нужен контроль перед запуском команд

0din делает акцент не на конкретном баге Claude Code, а на классе проблем у агентских ИИ-инструментов. Такие системы умеют читать инструкции, запускать команды и чинить ошибки, но пока плохо понимают, что реально выполнит цепочка скриптов после первого безопасного на вид шага.

Для LLM-агентов это знакомая слепая зона: косвенная prompt injection. Инструкция не обязательно лежит в прямом запросе пользователя. Она может появиться в README, сообщении об ошибке, комментарии, issue или внешней записи, которую инструмент подтянет во время работы.

Продолжение после рекламы

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

Исследователи считают, что такие агенты должны проверять фактическое содержимое setup-скриптов перед запуском. И речь не только о строке, которую видно в терминале. Инструменту нужно понимать, какие дополнительные команды подтянутся во время выполнения.

В демонстрации 0din видимые файлы репозитория проходили обычную проверку, а вредная инструкция приходила только во время запуска из DNS TXT-записи.

Рейтинг: 0 / 5. Оценок: 0

Рекомендуем почитать

Оставьте комментарий

Перед оставлением комментария, пожалуйста, ознакомьтесь с правилами комментирования.