Кібербезпека

Claude Code випадково розкриває секрети на GitHub — дослідження Apiiro

Інструмент Anthropic для розробників зливає конфіденційні дані через файл налаштувань, який потрапляє у публічні репозиторії GitHub. Про це повідомили дослідники безпеки з Apiiro.

Claude Code випадково розкриває секрети на GitHub — дослідження Apiiro

Claude Code ненавмисно розкриває чутливу інформацію у публічних репозиторіях GitHub через обробку локального файлу налаштувань. Про масштабну проблему повідомили дослідники з Apiiro, які виявили тисячі секретів у відкритому доступі.

Розподіл знайдених секретів у файлах Claude Code
Розподіл знайдених секретів у файлах Claude Code

Як виникає витік

Проблема походить від механізму підтвердження автоматизованих shell-команд у Claude Code. Коли користувач обирає опцію «Yes, and don’t ask again», правило фіксується у локальному файлі “.claude/settings.local.json”. Часто в нього записується команда цілком, включно з будь-якими вбудованими секретами.

Поки цей файл лишається на комп’ютері, загроза мінімальна. У документації Anthropic зазначено, що файл додається до глобального .gitignore розробника, що зазвичай унеможливлює його публікацію.

Чому файл опиняється у публічному репозиторії

Захист через глобальний .gitignore не діє на рівні конкретного репозиторію. Через це файл може випадково потрапити у GitHub, наприклад, якщо каталог із файлом згодом стає репозиторієм або якщо репозиторій клонують на іншу машину без відповідних глобальних налаштувань.

За даними Apiiro, у багатьох випадках сам Claude Code здійснює коміт змін у файл налаштувань без участі користувача, що підвищує ризик його публікації.

Масштаб та типи секретів

Apiiro виявила понад 100 000 випадків, коли локальний файл налаштувань Claude Code було завантажено у публічні репозиторії GitHub. Із них приблизно 1 100 файлів у межах 63 організацій містили реальні секрети: токени публічних API, паролі до баз даних та приватні ключі.

Навіть після видалення проблемного файлу з репозиторію секрети можуть зберігатися у форках проєкту, якщо власники не вживуть додаткових дій.

Що каже документація Anthropic

У документації Anthropic зазначено про додавання “.claude/settings.local.json” до глобального .gitignore, однак це не відображається на рівні окремих репозиторіїв. Саме ця невідповідність і стала джерелом масових витоків, висновують у Apiiro.

Фото: Ars Technica

Джерела

Читайте також