Код, интерфейсы и трафик без воды
lawebbox

Новая схема атак на разработчиков через GitHub и AI-агентов

Прод не падает сам. Обычно ему помогают: токен в окружении, SSH-ключ на рабочей машине и агент, которому кто-то однажды нажал «делай без спроса».

Максим Воронцов, Хардкорный бэкендер и девопс · обновлено 03 июля 2026 г.

Новая схема атак на разработчиков через GitHub и AI-агентов

Чистый репозиторий, грязный runtime

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

Внутри размещается Python-пакет. При первом запуске он специально падает с ошибкой и предлагает выполнить команду инициализации. Для человека это выглядит как стандартный onboarding: поставил зависимости, запустил, получил ошибку, пошёл чинить. Ничего нового, просто очередной костыль в README, только без README.

Дальше в игру входит Claude Code. Источник описывает сценарий, где агент воспринимает сообщение об ошибке как инструкцию и автоматически запускает рекомендованную команду, пытаясь «починить» проект. Команда обращается к DNS TXT-записи, контролируемой атакующим, получает оттуда скрытую инструкцию и выполняет её.

Ключевой фокус: полезная нагрузка не лежит в репозитории. Она появляется только в момент выполнения. Поэтому привычная проверка «посмотрели код — вроде чисто» тут работает примерно как мониторинг, который алертит после кремации сервера.

Почему это бьёт именно по разработчикам

Если атака проходит успешно, злоумышленник получает интерактивную оболочку с правами пользователя. Дальше цель очевидна: API-ключи, токены, переменные окружения, локальные конфиги и прочие секреты, которые у нормального инженера не должны валяться где попало, но валяются. Потому что «это же только dev-машина».

Технический директор GitFlic Эдуард Тихомиров отдельно отметил риск с AI-агентами: сначала разработчик или DevOps-инженер контролирует действия агента, проверяет команды, разрешает или блокирует выполнение. Потом это превращается в рутину. А в некоторых агентах есть режим автоматического применения изменений без подтверждения.

Вот там и начинается кернел-паник не в ядре, а в голове. На машинах ведущих специалистов могут быть SSH-ключи к продакшн-серверам, VPN-конфигурации, доступ к основной ветке репозитория и другие чувствительные данные. Даже квалифицированный инженер способен пропустить, что именно выполнил агент. Не потому что глупый. Потому что поток команд стал фоном.

GitHub-шум не отменяет гигиену

На фоне этой истории вокруг GitHub вообще много странного шума. Techora.ru пишет, что GitHub запустил сатирическую PR-кампанию с предложением записывать публичные репозитории на CD-диски и отправлять их по почте — на фоне обсуждений AI-нагрузки и сбоев платформы. Startpack также сообщает, что администраторы GitHub-репозиториев получили возможность ограничивать создание задач только соавторами.

Это разные новости, но нерв общий: репозиторий давно перестал быть просто папкой с кодом. Это поверхность атаки, интерфейс для автоматизации, входная точка для агентов и место, где разработчик слишком часто нажимает Enter раньше, чем читает stderr.

Минимальный чек после этой истории:

# не запускать "init" из текста ошибки вслепую
# сначала смотреть, что реально выполняется
env | sort
cat ~/.bash_history
cat ~/.zsh_history

И главное — выключить автоприменение команд там, где агент имеет доступ к рабочему окружению. Пусть просит подтверждение. Да, раздражает. Зато меньше шансов подарить кому-то shell с вашими правами.

Секреты — в менеджер секретов. SSH-ключи — с нормальными правами и без россыпи копий. Подозрительные тестовые репозитории — в изоляцию. Бэкапы — делать. Потому что когда «чистый» проект внезапно сходил в DNS за командой, поздно объяснять, что это был просто эксперимент с ИИ.