Произошла утечка исходного кода Claude Code: source map раскрывает скрытые функции инструмента

260
Произошла утечка исходного кода Claude Code: source map раскрывает скрытые функции инструмента

Традиционные инструменты командной строки для генерации кода, такие как GitHub Copilot CLI или OpenAI Codex, обычно предоставляли лишь минимальный набор функций и скрывали любую экспериментальную логику за закрытыми бинарниками. В случае Claude Code от Anthropic ситуация изменилась: благодаря утечке через source map наружу попали почти все внутренние модули, включая экспериментальные режимы, которые ранее были известны только авторам.

Обнаружение полной кодовой базы в публичном npm‑пакете сразу бросило вызов привычным представлениям о защите интеллектуальной собственности в JavaScript‑экосистеме. Поскольку source map содержит оригинальный код, любой, кто скачает пакет, может восстановить его полностью, что открывает доступ к скрытым возможностям и потенциальным уязвимостям.

Утечка через source map: механизм и типичные ошибки

Source map – это JSON‑файл, связывающий скомпилированный JavaScript с исходными файлами TypeScript/JSX. При ошибке в продакшн‑сборке файл .map часто попадает в npm‑пакет, если разработчик не исключил его в .npmignore или не отключил генерацию в настройках сборщика.

  1. Сборка проекта генерирует .map по умолчанию (в случае Claude Code – Bun).
  2. Файл .map содержит массив sourcesContent со строковым представлением каждого исходного файла.
  3. Публикация пакета в npm делает .map доступным через npm pack или просмотр в браузере.

Эта схема уже приводила к утечкам в прошлом, и Claude Code стал очередным примером, подтверждающим, что без явного исключения source map любой проект рискует раскрыть свой код.

Что скрывает Claude Code

Claude Code – официальное CLI‑приложение Anthropic для интерактивного программирования с помощью модели Claude. Основой является файл main.tsx (~785 KB), в котором реализованы более 40 вспомогательных инструментов, система оркестрации мульти‑агентов и движок памяти под названием “dream”.

Для сравнения, аналогичный инструмент GitHub Copilot CLI состоит из нескольких десятков тысяч строк, но не содержит столь обширных экспериментальных подсистем.

Buddy – виртуальный компаньон в терминале

Внутри Claude Code скрыт модуль «Buddy», представляющий собой тамагочи, живущий рядом с вводом команд. Функциональность активируется флагом BUDDY и включает генерацию персонажа на основе детерминированного генератора Mulberry32, засеянного хешем пользовательского ID.

Редкость Виды
Обычные Pebblecrab, Dustbunny, Mossfrog, Twigling, Dewdrop, Puddlefish
Необычные Cloudferret, Gustowl, Bramblebear, Thornfox
Редкие Crystaldrake, Deepstag, Lavapup
Эпические Stormwyrm, Voidcat, Aetherling
Легендарные Cosmoshale, Nebulynx

Каждому компаньону присваиваются пять характеристик (DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK), набор визуальных стилей глаз и шляп, а также уникальный «душевный» промпт, генерируемый Claude при первом появлении.

Proactive‑режим KAIROS: постоянный ассистент

Модуль KAIROS реализует постоянно работающего агента, который собирает append‑only логи, анализирует их и при необходимости инициирует проактивные действия. Флаг PROACTIVE включает этот режим, который отсутствует в обычных сборках Claude Code.

Для ограничения навязчивости KAIROS использует таймаут в 15 секунд: если действие может задержать пользователя дольше, оно откладывается. Вывод в терминал происходит в «Brief Mode», где ответы сведены к минимуму, что контрастирует с более разговорным стилем типичных чат‑ботов.

ULTRAPLAN и Dream: удалённые планировщики и «сны» ИИ

ULTRAPLAN – отдельный режим, позволяющий выгрузить сложную задачу планирования в облачную сессию CCR (Cloud Container Runtime). После запуска задача получает до 30 минут на расчёт, а пользователь наблюдает за процессом через веб‑интерфейс и может одобрить результат.

Система Dream (autoDream) представляет собой фоновый суб‑агент, периодически генерирующий «сны» – консолидацию памяти, основанную на четырёх фазах и трёх вентилях (временной, сессионный, блокировочный). Такой подход к управлению контекстом пока уникален в мире AI‑агентов и отсутствует в аналогичных инструментах.

Последствия

Утечка продемонстрировала, что даже крупные компании могут допустить простую ошибку в цепочке сборки, раскрывая целый набор закрытых функций. Для разработчиков JavaScript‑проектов рекомендуется:

  1. Явно исключать файлы .map из публикаций, добавив их в .npmignore или files‑поле package.json.
  2. Отключать генерацию source map в продакшн‑конфигурациях, если они не требуются для отладки.
  3. Проводить аудит публичных npm‑пакетов на наличие чувствительных данных с помощью автоматических сканеров.

Для пользователей Claude Code раскрытие скрытых режимов открывает новые возможности, но также требует осознанного подхода к безопасности и управлению конфиденциальностью.

Итоги

Утечка исходников Claude Code через source map не только продемонстрировала уязвимость типичной цепочки сборки, но и предоставила уникальный взгляд на экспериментальные функции, такие как Buddy, KAIROS, ULTRAPLAN и Dream. Сравнительно с другими AI‑CLI решениями, Claude Code оказывается более насыщенным набором возможностей, однако именно эта «нагрузка» сделала его более уязвимым. Применение строгих правил публикации и регулярный аудит кода помогут избежать подобных инцидентов в будущем.

Последнее изменение:

0 Комментарии
Популярные
Новые Старые
Inline Feedbacks
Посмотреть все комментарии