Как и в традиционной разработке, AI активно использует сторонние библиотеки в своём коде. Ну, в самом деле, зачем изобретать велосипед для типовых операций вроде создания PDF или чтения содержимого Excel-файла, если можно за секунду вставить готовый код?
Вот этим вчера в очередной раз воспользовались злоумышленники. В популярной библиотеке
PyTorch Lightning нашли вредонос — заражены версии 2.6.2 и 2.6.3 пакета lightning. Достаточно сделать pip install lightning, и при первом импорте срабатывает 11 МБ обфусцированного JavaScript: утекают токены GitHub, ключи AWS/Azure/GCP, секреты CI-раннеров.PyTorch Lightning охотно используют и Claude, и Codex в задачах, связанных с обучением LLM, диффузионных моделей и временных рядов. И это всего лишь очередной случай. До этого были десятки, если не сотни других.
Что делать прямо сейчас?
Если устанавливали 30 апреля lightning, откатиться до версии 2.6.1, ротировать все ключи и проверить репозитории на наличие посторонних файлов в .claude/ и .vscode/.
Что сделать на уровне вайбкодинга?
Тут нужно сделать пометку, что на уровне вайбкодинга серьёзно защититься от таких инцидентов не выйдет, и критически важные системы всё же должны писать квалифицированные разработчики, даже если у вас всего лишь сеть боулинг-центров.
Почему? Потому что Claude Code не всегда может прочесть инструкции, а время от времени может их даже игнорировать, особенно если вы работаете в режиме
--dangerously-skip-permissions.Но тем не менее стоит добавить в Claude.md вот такие инструкции:
## Безопасность зависимостей
При установке любых Python/npm пакетов:
1. Проверять возраст версии: `pip index versions <package>` для Python,
`npm view <package> time` для npm. Если последняя версия младше 14 дней —
остановиться, сообщить мне, предложить предыдущую стабильную.
2. Перед установкой запускать `pip-audit --requirement requirements.txt`
или `npm audit` соответственно.
3. Никогда не использовать `pip install <package>` без указания версии.
Всегда через requirements.txt или pyproject.toml с pin-ом.
4. Для критичных проектов проверять пакет через `socket package score <name>`
если CLI установлен.
Что делать на уровне команды разработки?
1. Включить pip-audit и npm audit в CI всех активных проектов.
2. Проверить, что во всех проектах есть lock-файл с хешами.
3. Написать hook для Claude Code на PreToolUse, блокирующий установку пакетов младше 14 дней.
4. Поднять внутренний PyPI/npm proxy (devpi или Nexus) с quarantine policy.
5. Включить Socket, Safety или Snyk в GitHub-репозитории.
Разошлите своим инженерам и уже после этого отправляйтесь на майские шашлыки. Если, конечно, погода в вашем городе это сегодня позволяет 😊
Цифра Комягина