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

Утечка ключей через Claude Code: как защитить репозитории от кражи токенов

Microsoft отрапортовала об инциденте, в котором заражение через Claude Code привело к компрометации 73 собственных репозиториев.

Илья Воронов, Суровый бэкендер и DevOps-инженер · обновлено 08 июня 2026 г.

Утечка ключей через Claude Code: как защитить репозитории от кражи токенов

Что известно из источников

Хабр описывает сценарий, при котором открытие репозитория в Claude Code становится триггером: ключи (по всей видимости, токены доступа и/или секреты, попавшие в репозиторий) оказываются у атакующего, после чего атака распространяется дальше. Масштаб — 73 репозитория Microsoft — фигурирует в заголовке, детальная разбивка в публичных сниппетах не приводится. Корреляция с 0-day в VS Code намекает на смежный вектор: компрометация редактора как точка входа в локальные секреты и GitHub-токены.

Что это значит для пайплайна

Если ваш разработчик (или AI-агент) запускает Claude Code в директории с `.env`, `~/.ssh/`, `~/.config/gh/`, то любая RCE/LFI в агенте превращается в кражу credentials. Минимальная гигиена, которую стоит закрепить в команде:

```bash

# 1. Запретить агенту читать секреты на уровне файловой системы

# ~/.config/Code/User/settings.json

{

"claude.code.denyPaths": [

"~/.ssh",

"~/.aws",

"~/.config/gh",

"**/.env",

"**/*id_rsa*"

]

}

```

```bash

# 2. GitHub-токены — только через gh auth с короткоживущим scope

gh auth login --scopes "read:org, repo" --web

gh auth refresh --scopes "repo, read:org"

# Проверить, какие токены вообще живут в системе

gh auth status

gh extension list | grep auth

```

```bash

# 3. Аудит логов Claude Code на подозрительные обращения к секретам

grep -RInE "(BEGIN [A-Z ]+PRIVATE KEY|AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36})" \

~/.claude/logs/ || echo "no leaks in logs"

```

Что отслеживать дальше

Дождаться полного бюллетеня Microsoft с CVE-идентификатором — в нём будет ясно, эксплуатировался ли баг через цепочку VS Code → Claude Code, или вектор самостоятельный. До публикации патча разумно: ограничить Claude Code песочницей (Docker без `--privileged`, без монтирования `~/.ssh` и `~/.config/gh`), отозвать долгоживущие GitHub PAT и перейти на GitHub App с TTL ≤ 1 ч, а в CI выкатить правило, запрещающее ассистентам читать файлы, подпадающие под `gitleaks`-конфиг. Для бэкенда это рутинная работа, но именно она отделяет «читали про инцидент» от «не попали в следующий».