Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Ошибка сотрудника Anthropic привела к утечке исходного кода Claude Code

Сотрудник Anthropic по ошибке раскрыл весь исходный код своего ИИ-инструмента Claude Code, включив файл карты исходного кода в пакет в открытом реестре npm. Эксперты считают это серьезным риском безопасности, поскольку карта позволяет хакерам восстановить код и найти уязвимости. — csoonline.com Сотрудник Anthropic случайно раскрыл весь проприетарный исходный код своего инструмента для программирования на базе ИИ Claude Code, включив файл карты исходного кода (source map) в версию инструмента, размещенную в открытом реестре npm компании Anthropic, что, по мнению эксперта по ИИ, является рискованной ошибкой. «Скомпрометированная карта исходного кода представляет угрозу безопасности», — заявил базирующийся в США эксперт по кибербезопасности и ИИ Джозеф Стейнберг. «Хакер может использовать карту исходного кода для восстановления оригинального исходного кода и [увидеть], как он работает. Любые секреты в этом коде — например, если кто-то встроил ключ API — подвергаются риску, как и вся логик
Оглавление

Сотрудник Anthropic по ошибке раскрыл весь исходный код своего ИИ-инструмента Claude Code, включив файл карты исходного кода в пакет в открытом реестре npm. Эксперты считают это серьезным риском безопасности, поскольку карта позволяет хакерам восстановить код и найти уязвимости. — csoonline.com

Сотрудник Anthropic случайно раскрыл весь проприетарный исходный код своего инструмента для программирования на базе ИИ Claude Code, включив файл карты исходного кода (source map) в версию инструмента, размещенную в открытом реестре npm компании Anthropic, что, по мнению эксперта по ИИ, является рискованной ошибкой.

«Скомпрометированная карта исходного кода представляет угрозу безопасности», — заявил базирующийся в США эксперт по кибербезопасности и ИИ Джозеф Стейнберг. «Хакер может использовать карту исходного кода для восстановления оригинального исходного кода и [увидеть], как он работает. Любые секреты в этом коде — например, если кто-то встроил ключ API — подвергаются риску, как и вся логика. И любые уязвимости, обнаруженные в логике, могут стать очевидными для хакера, который затем сможет использовать эти уязвимости».

Однако представитель Anthropic сообщил изданию CSO: «Никакие конфиденциальные данные или учетные данные клиентов не были задействованы или раскрыты. Это была проблема упаковки релиза, вызванная человеческой ошибкой, а не нарушение безопасности. Мы внедряем меры для предотвращения повторения этого инцидента».

Но это был не первый подобный случай; по данным Fortune и других новостных источников, то же самое произошло в прошлом месяце.

Не раскрывайте .map файлы

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

По словам разработчика Кубера Мехты, опубликовавшего блог об этом последнем инциденте, когда кто-то публикует пакет JavaScript/TypeScript в npm, цепочка сборки часто генерирует файлы карт исходного кода (.map файлы). Эти файлы служат мостом между минифицированным/пакетированным кодом для продакшена и исходным кодом; они существуют для того, чтобы, когда что-то выходит из строя в продакшене, трассировка стека могла указывать на *фактическую* строку кода в *оригинальном* файле, а не на какую-то невразумительную ссылку.

Что содержится в этих файлах? «Каждый файл. Каждый комментарий. Каждая внутренняя константа. Каждый системный промпт. Всё это находится прямо в JSON-файле, который npm охотно предоставляет любому, кто выполняет команду npm pack или просто просматривает содержимое пакета», — сказал Мехта.

«Ошибка почти всегда одна и та же: кто-то забывает добавить *.map в свой файл .npmignore или не настраивает свой бандлер так, чтобы он пропускал генерацию карт исходного кода для сборок продакшена», — отметил Мехта. «С бандлером Bun (который использует Claude Code) карты исходного кода генерируются по умолчанию, если вы явно не отключите их».

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

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

Мир узнал об этом инциденте, когда исследователь безопасности Чаофань Шоу опубликовал это сообщение рано утром во вторник в X: «Исходный код Claude был слит через файл карты в их npm-реестре!», сопроводив его ссылкой на файл.

Распространенная ошибка

Оставление файлов карт исходного кода в пакете «это невероятно распространенная ошибка, которую разработчики совершают довольно часто», — сказала тренер по безопасному кодированию Таня Джанка. «В этой конкретной ситуации это более серьезно, чем могло бы быть в другом месте, в основном из-за чрезвычайно высокой ценности задействованной интеллектуальной собственности, а также потому, что теперь злоумышленники могут напрямую анализировать исходный код на наличие уязвимостей вместо того, чтобы заниматься обратной разработкой, что увеличивает время, затраты и сложность».

В идеале, по словам Джанки, разработчики должны укреплять свою среду сборки, чтобы не поставлять отладочную информацию/функции с продакшеном. Она дала разработчикам следующие советы:

  • отключить карты исходного кода в инструменте сборки/бандлере;
  • добавить файл .maps в файлы .npmignore / package.json, чтобы явно исключить его, даже если он был сгенерирован в процессе сборки по ошибке;
  • исключить .maps файлы из списка публикуемых артефактов в среде непрерывной интеграции/непрерывного развертывания;
  • тщательно отделять отладочные сборки от сборок для продакшена, если есть различия; даже комментарии могут быть крайне конфиденциальными.

Критически важный уровень

Любое раскрытие исходного кода или логики системного уровня является значимым, поскольку оно показывает, как реализованы элементы управления, прокомментировал Дэн Скьяппа, президент по технологиям и услугам в Arctic Wolf. При раскрытии этой информации увеличивается число людей, понимающих, как модель обеспечивает поведение, управляет доступом и обрабатывает крайние случаи, сказал он.

«В системах ИИ этот уровень особенно критичен», — добавил он. «Оркестровка, промпты и рабочие процессы фактически определяют, как работает система. Если они раскрыты, это может облегчить выявление слабых мест или манипулирование результатами. Знание того, что злоумышленники все еще ищут наиболее оптимальные способы использования ИИ, означает, что в любом случае, когда инструмент может быть скомпрометирован, в кулуарах, вероятно, ждут киберпреступники».

Эта статья изначально была опубликована на InfoWorld.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Howard Solomon

Оригинал статьи