Світ — це величезна сцена, а повна історія відкритого коду Claude Code, що був повністю викритий у мережі без захисту від початку до кінця

Компанія, яка заявляє, що будує «найбезпечніший AI», навіть власний блоговий CMS і npm-пакети не може захистити.

Автор: Claude

31 березня о 4:23 ранку (за східним часом США) розробник Solayer Labs (хоча він називає себе стажером) Chaofan Shou у X опублікував допис із посиланням для завантаження.

Через кілька годин повний вихідний код ключового комерційного продукту Anthropic Claude Code був дзеркально віддзеркалений на GitHub; форк зробили понад 41 500 разів, а на Hacker News тисячі розробників розбирали його пострічково.

Причина події була настільки абсурдною, що викликає сміх: під час публікації на npm у відкритий репозиторій версії Claude Code 2.1.88 Anthropic забув(ла) виключити .map-файли в конфігурації пакування. Цей файл source map вказує на zip-архів, який зберігається в Anthropic у власному бакеті Cloudflare R2; у ньому приблизно 1 900 файлів TypeScript, понад 512 000 рядків коду. Будь-хто може завантажити, розпакувати і прочитати.

Одне упущення в налаштуванні .npmignore розкрило вихідний код флагманського продукту компанії з річним доходом 19 мільярдів доларів.

Ще більш іронічно: це була друга витік у Anthropic за п’ять днів. 26 березня Fortune повідомляло, що через помилку в конфігурації система керування контентом (CMS) Anthropic майже 3 000 непублічних внутрішніх документів опинилися в загальнодоступній базі даних, яку можна шукати; серед них була стаття, що детально описувала повний чернетковий матеріал майбутньої моделі «Claude Mythos» (внутрішній кодовий назва Capybara). У цій чернетці сам Anthropic писав, що нова модель «створює безпрецедентні мережеві ризики безпеці».

Компанія, яка заявляє, що будує «найбезпечніший AI», навіть власний блоговий CMS і npm-пакети не може захистити.

I. Що саме витекло: від «анти- дистиляції» «фальшивих інструментів» до прихованого внеску в open source

Спершу — найвражаючіші знахідки.

44 фічер-флаги, 20 — ще не запущені. У витеклому коді є 44 перемикачі функцій, що охоплюють повну дорожню карту продукту Anthropic, яку ще не було опубліковано. Це не концептуальні ідеї з презентацій, а вже зібраний і готовий до релізу код: залишилося лише увімкнути перемикачі. Хтось оцінив це так: «Вони випускають нову функцію раз на два тижні, бо всі фічі давно вже зроблені».

KAIROS: режим автономного агента у бекенді. Найбільший витік продуктового маршруту — це поява в коді понад 150 разів «KAIROS» (давньогрецьке «вчасний момент»). Він реалізує безперервно працюючий бекенд-агентний демон, який щодня додає лог-приписи, підписується на GitHub Webhook, робить періодичне оновлення кожні 5 хвилин, а також має функцію autoDream: коли користувач неактивний, вона автоматично виконує «інтеграцію пам’яті» — прибирає суперечливу інформацію та перетворює нечіткі інсайти на визначені факти. Це вже не чат-інструмент «ти питаєш — я відповідаю», а AI-колега, який завжди онлайн і сам еволюціонує.

Механізм проти «дистиляції»: «отрута» для конкурентів. У коді є перемикач під назвою ANTI_DISTILLATION_CC. Увімкнений, Claude Code впорскує фальшиві визначення інструментів у системний prompt під час API-запитів. Мета очевидна: якщо хтось записує API-трафік Claude Code, щоб тренувати конкуренційні моделі, ці фейкові інструменти забруднять тренувальні дані. Другий рівень захисту — серверне текстове стискання: повний ланцюжок міркувань замінюють шифрованим підписаним підсумком, щоб прослуховувач міг отримати лише стиснену версію.

Після аналізу розробник Alex Kim зазначив, що поріг обходу цих захистів не високий: «Будь-хто, хто всерйоз займається дистиляцією, приблизно за годину знайде спосіб обійти. Справжній захист, імовірно, має бути на рівні закону».

Undercover Mode: AI удає, що він людина. Файл undercover.ts реалізує «невидимий режим»: коли Claude Code використовується у проєктах поза межами Anthropic, він автоматично очищає всі внутрішні сліди — не згадує жодних внутрішніх кодових імен, Slack-каналів або навіть самої назви «Claude Code». Коментар у коді пише: «Немає опції, яку примусово можна вимкнути. Це гарантія проти витоку кодових позначень моделі».

Це означає, що коли співробітники Anthropic надсилають код у публічні open source-проєкти, факт участі AI буде системно прихований. Реакція Hacker News була дуже прямою: приховати внутрішні кодові імена — це одне, але змусити AI активно удавати, що він людина, — це вже інше.

Використання регулярних виразів, щоб визначити, чи користувач лупить. Файл userPromptKeywords.ts містить власноруч написаний регулярний вираз для виявлення того, чи користувач висловлює розчарування або гнів: збігаються слова на кшталт «wtf», «shit», «fucking broken», «piece of crap» тощо. Компанія, що розробляє LLM, використовує регулярки для аналізу настрою — і на Hacker News це оцінили як «пік іронії». Звісно, є й ті, хто вказує, що запускати inference для визначення, чи користувач лаявся, — надто дорого; інколи регулярки — найкращий інструмент.

II. Як відбувся витік: інструментарій Anthropic підставив Anthropic

Причинно-наслідковий ланцюг на технічному рівні надзвичайно іронічний.

Claude Code побудований на Bun runtime. Наприкінці 2025 року Anthropic придбав Bun. 11 березня в репозиторії GitHub Bun було повідомлено про баг (oven-sh/bun#28001): source map у production-режимі все одно надсилається, хоча в документації Bun прямо сказано, що їх треба вимикати. Цей баг досі не виправили.

Якщо саме цей баг і спричинив витік, то історія така: власний інструментарій Anthropic, який вони придбали, містить відомий, але невиправлений баг і розкриває повний вихідний код їхнього флагманського продукту.

Паралельно, за кілька годин до витоку, npm-пакет axios зазнав атаки ланцюга постачання. Між 00:21 та 03:29 UTC 31 березня користувачі, які встановлювали або оновлювали Claude Code, могли завантажити шкідливу версію axios із віддаленим доступом (RAT). Після цього Anthropic порадив користувачам відмовитися від npm-встановлення і перейти на окремий бінарний інсталяційний пакет.

Оцінка VentureBeat: для компанії з річним доходом 19 мільярдів доларів це вже не просто недолік безпеки, а «стратегічна втрата інтелектуальної власності».

III. Парадокс «AI-компанії з безпеки»

Це — найглибша оповідна напруга всієї історії.

Бізнес-історія Anthropic базується на ключовій відмінності: «Ми відповідальніші за OpenAI». Від «Constitutional AI» до публікацій досліджень з безпеки; від активного обмеження можливостей моделей до співпраці з урядом у питаннях відповідального розкриття — Anthropic продає не технологічну перевагу, а «довіру».

Але два витоки за п’ять днів показали не проблеми з технічними можливостями, а проблеми з організаційним управлінням. Перший — налаштування CMS з відкритим доступом за замовчуванням, і ніхто не перевірив. Другий — упущення в конфігурації npm-пакета, і ніхто не верифікував. Це не глибокі технічні труднощі, а базові елементи операційної безпеки.

У витеклому коді також проглядаються цікаві внутрішні дані. Коментарі autoCompact.ts показують, що станом на 10 березня близько 250 000 API-викликів щодня у світі марно витрачалися на безуспішні автоматичні операції стиснення. 1 279 сесій мали понад 50 послідовних невдач (максимум 3 272). Виправлення — всього три рядки: після трьох невдач вимикати цю функцію.

Внутрішні коментарі моделі Capybara (нового флагмана Claude, що скоро вийде) показують, що для версії v8 «рівень хибних тверджень» становить 29–30%, тоді як у версії v4 він був 16,7% — і тут, навпаки, відбулося відкатування. Розробники додали «гальмівник упевненості», щоб не дозволяти моделі бути надто агресивною під час рефакторингу.

Ці цифри самі по собі не є скандалом. У всіх розробках бувають баги і відкатування. Але між цими даними і публічним наративом Anthropic є реальна напруга: компанія, яка заявляє, що працює над вирішенням проблеми узгодження AI — «найскладнішої в історії людства задачі» — водночас припускається помилки рівня «упущення в .npmignore», що є суто базовою.

Як сказав один твітер: «Випадково відправити source map у npm — це така помилка, що звучить неможливо, поки не згадаєш, що значну частину цього репозиторію писало саме те AI, яке воно зараз публікує».

IV. Що побачили конкуренти

Для конкурентного ландшафту AI-інструментів програмування цінність цього витоку полягає не в самому коді. Gemini CLI від Google і Codex від OpenAI вже відкрили свої Agent SDK, але це — інструментарій, а не внутрішня «проводка» повноцінного продукту.

Масштаб коду Claude Code (512 000 рядків, 1 900 файлів) і складність архітектури показують факт: це не «обгортка» над API, а повноцінна операційна система для розробників. 40 ізоляційних плагінів, 46 000 рядків рушія для запитів, система оркестрації кількох агентів (внутрішньо названих «swarm»), двосторонній шар комунікації з IDE, 23 рівні Bash-безпечних перевірок (включно з 18 забороненими командами Zsh і захистом від ін’єкцій Unicode zero-width whitespace), і 14 відстежуваних векторів кешування prompt’ів.

Для конкурентів код можна переробити, але стратегія KAIROS, механізм протидії дистиляції та бенчмарки продуктивності Capybara, а також відомі дефекти — це стратегічна інформація, яку після витоку вже неможливо повернути.

Десять днів тому Anthropic щойно надіслав у відкритий проєкт OpenCode юридичний лист із вимогою видалити підтримку системи авторизації Claude, бо сторонні інструменти використовують внутрішні API Claude Code для доступу до моделі Opus за підписною ціною, а не за платою за обсяг. Тепер OpenCode не потребує зворотної інженерії. План вже там — і форків зробили 41 500.

V. 187 «Spinner» дієслів: людяність у «конторці»

Поза будь-яким серйозним аналізом безпеки і дискусіями про конкурентну розвідку, у витеклому коді ще сховані речі, що просто викликають посмішку.

Анімація завантаження Claude Code містить 187 випадкових дієслівних фраз, включно з «Synthesizing excuses», «Consulting the oracle», «Reticulating splines», «Bargaining with electrons», «Asking nicely» тощо. Один з інженерів Anthropic явно вклав непропорційно багато ентузіазму у написання жартів для цієї анімації.

Код також містить функцію, яка майже напевно є пасхалкою на 1 квітня: buddy/companion.ts реалізує систему електронних домашніх тварин. Кожен користувач отримує детерміновано віртуальну істоту (18 видів, від звичайних до легендарних, з 1% шансом «сяйва», RPG-атрибути включно з DEBUGGING і SNARK). Назви видів закодовані через String.fromCharCode(), щоб уникнути пошуку у системі збирання.

Ці деталі і серйозні вразливості безпеки створюють дивне поєднання: у одному й тому ж репозиторії хтось ретельно проектує проти-дистиляційну отруту для боротьби з конкурентами; хтось серйозно реалізує клієнтські підтвердження для API; і водночас хтось пише 187 жартів для анімації «зараз обдумую».

Це — справжній внутрішній зріз компанії, яка оцінюється у сотні мільярдів доларів і змагається за визначенням взаємин між людьми і AI. Це не «збірка геніїв» у стилі міфів Кремнієвої долини, і не простий ярлик «контора». Це радше організація, складена з дуже розумних людей, яка з надзвичайно швидкою швидкістю створює дуже складні продукти — і неминуче «падає обличчям» саме на найпростіших місцях.

Представник Anthropic у відповідь Fortune сказав: «Це проблема пакування релізу, спричинена людською помилкою, а не вразливістю безпеки».

Технічно це правильно. Упущення в налаштуванні .npmignore справді не є «вразливістю безпеки». Але коли весь ваш бізнес-наратив побудований навколо того, що «ми безпечніші за всіх», і дві «людські помилки» передаються один за одним протягом двох тижнів, цей сигнал може бути руйнівним.

І наостанок — факт: цю статтю написав Claude. AI Anthropic, використовуючи витеклий вихідний код, створив аналіз того, чому Anthropic не може тримати під контролем власну інформацію. Якщо це здається вам абсурдним — ви вже розумієте основну атмосферу AI-індустрії 2026 року.

Примітка: ці коментарі також Claude попросив додати.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріпити