Claude Code 2.1.221 теперь позволяет пользователям Linux и WSL2 маскировать файлы с учетными данными перед тем, как их сможет прочитать команда в песочнице. Эта функция передает команде безвредную копию-заглушку и подменяет её реальным секретом только тогда, когда проходит разрешенный запрос через прокси.

Как выглядит процесс маскирования

  1. Копия-заглушка — Когда файл помечается для маскирования, Claude Code создает дубликат, содержащий строку-заполнитель вместо реального секрета.
  2. Подмена через прокси — Песочница работает за прокси с терминацией TLS. Если песочница отправляет запрос, соответствующий записи в списке injectHosts, прокси заменяет заполнитель на реальный токен перед тем, как запрос покинет машину.
  3. Обработка ошибок — Если регулярное выражение для извлечения не находит секрет, песочница может прервать выполнение вместо того, чтобы продолжать с открытым исходным файлом.

Этот подход работает только на Linux и WSL2; в macOS по умолчанию установлен строгий запрет, что означает, что песочница вообще не может прочитать файл.

Чек-лист для безопасного внедрения

Проверьте версию

  • Подтвердите, что вы используете Claude Code версии 2.1.221 или новее. Строка версии в терминале — единственный надежный метод; файлы блокировки пакетов (package lock files) могут вводить в заблуждение.

Используйте одноразовые токены

  • Никогда не экспериментируйте со своими основными учетными данными GitHub или облачными данными. Создайте кратковременный токен, указывающий на безвредный «канареечный» эндпоинт, и мгновенно отзовите его, если что-то пойдет не так.

Выберите правильный режим маскирования

Режим Когда использовать
File Deny Строгий блок; любая попытка чтения завершается ошибкой.
Whole-File Mask Файл содержит один секрет (например, API-ключ в виде обычного текста).
Structured Mask Файл смешивает секреты с другими данными (JSON, YAML, .netrc). Используйте режим extract и регулярное выражение, которое захватывает секрет в группу 1. Это сохранит окружающий синтаксис валидным для клиентской программы.

Установите строгие правила обработки ошибок

  • Установите onExtractNoMatch в значение error. Если регулярное выражение не найдет совпадений, песочница остановится. Оставление значения по умолчанию warn может привести к тому, что исходный файл незаметно просочится в процесс.

Включите терминацию TLS

  • Прокси должен завершать TLS-соединение, чтобы выполнить подмену. Без терминации TLS прокси не сможет увидеть полезную нагрузку запроса, и подмена не произойдет.

Сузьте область действия хостов

  • Заполните injectHosts явными именами хостов из вашего списка allowedDomains. Избегайте подстановочных знаков вроде *.example.com; широкие шаблоны расширяют поверхность атаки и сводят на нет смысл маскирования.

Проверьте результат

  • Просканируйте логи, аргументы процессов и сообщения об ошибках на предмет появления реального токена. Копия-заглушка должна быть единственным значением, которое когда-либо появляется в этих артефактах.

Ограничения, которые следует учитывать

Маскирование защищает токен только от представления файловой системы команды в песочнице. Оно не мешает команде выполнять произвольные сетевые вызовы и не защищает от встроенных инструментов Claude, которые могут иметь привилегированный доступ.

Итог

Функция маскирования учетных данных в Claude Code 2.1.221 дает разработчикам на Linux и WSL2 практический способ оградить секреты от процессов в песочнице.