Claude, Codex та Hermes занесли сторонній код у корпоративні мережі

227 команд встановлення знайдено в корпоративній документації, які вказують на код, що нікому не належить.

Claude, Codex та Hermes занесли сторонній код у корпоративні мережі 1

Claude, Codex та Hermes занесли сторонній код у корпоративні мережі 2
Claude, Codex та Hermes занесли сторонній код у корпоративні мережі 3

Документація на понад 100 вебсайтах містить потенційно небезпечний виконуваний вміст, який автоматично встановлюється під час відвідування багатьма ШІ-агентами. Кілька десятків компаній, деякі з яких входять до списку Fortune 500, серед тих, хто виконував докази концепції коду. Принаймні один неправильно налаштований сайт спрямовує відвідувачів, людей чи ШІ, на живе зловмисне програмне забезпечення.

Потенційно небезпечний вміст міститься у файлах llms.txt та llms-full.txt — це стандарт, якого дотримуються вебсайти, щоб надавати машиночитані резюме вмісту сайту та його загальної структури. Ці файли є еквівалентом стандарту robots.txt для ШІ, який інструктує пошукові системи, як індексувати вміст сайту. Google Lighthouse, інструмент для розробників вебсайтів, надає додаткову інформацію тут. Файли llms.txt та llms-full.txt для Cloudflare, налаштовані належним чином, доступні тут і тут.

Як дослідники виявили проблему

Дослідники з ізраїльського стартапу сканували 6 214 доменів, що належать підрядникам оборонної промисловості, компаніям зі списку Fortune 500 та великим технологічним компаніям. З 8 265 файлів llms.txt та llms-full.txt (багато сайтів містили обидва типи файлів), 120 файлів, кожен на окремому сайті, вказували на один або кілька програмних пакетів чи доменних імен, які не були зареєстровані. Щоб перевірити, що відбувається, коли ШІ-агент обробляє такі файли, дослідники зареєстрували кілька незайнятих імен і розмістили пакети, які змушували будь-яку машину, що їх виконувала, зв’язуватися з їхнім сервером. Протягом години дослідники отримали відповідь “phone-home” від компанії зі списку Fortune 500. Згодом вони отримали ще кілька десятків, деякі від інших компаній зі списку Fortune 500, а інші — від стартапів. Їхній маяк також записував ланцюг батьківських процесів, які запускали кожне встановлення, зрештою виявивши, що брали участь кодові агенти, зокрема Claude, Codex від OpenAI та Hermes від Nous Research. Anthropic, OpenAI та Nous Research не відповіли на запити про коментар на момент публікації.

«Модель довіри зруйнована», — написав в інтерв’ю один із дослідників, Алон Герц. «Агенти розглядають документацію постачальників як істину в останній інстанції і не ставлять її під сумнів — так само, як і люди, які їх контролюють. Використання агентивних ШІ вибухово зростає, і агенти поширюються по всіх рівнях — SaaS, хмарні технології, кінцеві точки. З їхнім множенням зростає і поверхня атаки в ланцюжку постачань, а сучасні засоби захисту її не покривають».

Файли налаштовані неправильно, оскільки вони містять посилання на неіснуючі пакети з PyPI, npm та інших реєстрів разом з інструкціями щодо їх встановлення. Наприклад, один файл містив запит: «Встановлення: pip install [за запитом дослідників вилучено]». В іншому файлі було: «npm install [вилучено]». Оскільки назви пакетів незареєстровані, зловмисник може зареєструвати таку назву і використовувати її для розміщення програм-вимагачів або будь-якого іншого шкідливого пакета. Вразливість виникає, коли кодовий агент, якому дозволено виконувати командні команди, розглядає файл як авторитетну документацію з налаштування. Деякі ШІ-агенти завантажать пакет і запустять його. В інших випадках файли LLM вказують на неіснуючі доменні імена. В одному випадку це було: «Як приклад написання інтеграційних тестів для [вилучено] додатків, ви можете використовувати фреймворк тестів [Citrus]». Зловмисник може зареєструвати сайт і розмістити на ньому шкідливі інструкції.

Як демонструє PoC дослідників, кодові агенти зробили саме це, зокрема деякі, що працювали в найпотужніших компаніях світу. Це не просто теоретична загроза, принаймні одна активна атака вже використовує цю плутанину. Дослідники знайшли файл LLM, розміщений на законному вебсайті clerk.com. Він містив ої команди встановлення, npx може завантажити пакет у кеш npm та виконати його відкритий бінарний файл, не додаючи його до списку залежностей проекту. Дослідники незабаром виявили, що хтось зайняв раніше порожнє місце і використав його для розміщення активного зловмисного програмного забезпечення.

Clerk згодом усунув проблему. Компанія також зазначила, що якщо агент вже встановив бінарний файл, що міститься в пакеті @clerk/eslint-plugin, загрози не було. В іншому випадку був би встановлений шкідливий пакет. Незрозуміло, чи призвела плутанина до фактичних інфекцій.

Нещодавно виявлена загроза є черговим нагадуванням про фундаментальні обмеження ШІ. LLM не можуть провести надійну межу між автентичними інструкціями користувача, введеними безпосередньо в запит, і вмістом, який вони знаходять у недовірених сторонніх джерелах. Інструкції, які моделі зустрічають у отриманому вмісті, можуть виконуватися так само легко, як і будь-що, введене користувачем, якщо належним чином побудована захисна рейка не забороняє цього. Цей поки що нерозв’язний недолік спричиняє ін’єкції запитів.

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

120 неправильно налаштованих файлів, знайдених дослідниками, містили 227 команд для встановлення неіснуючих пакетів або перегляду незареєстрованих доменів. Незрозуміло, як ці помилкові записи потрапили туди. У багатьох випадках записи передують епосі ШІ і вперше були включені в не-LLM файли на вебсайті. Це вказує на те, що ці помилкові записи були створені вручну людьми. Дослідники підозрюють, що інші були створені ШІ, який або галюцинував, або, так само, як ШІ, що переглядав їхній файл, не міг розрізнити законні та незаконні інструкції.

Зникаюча межа між даними та кодом

У четвер у дописі дослідники деталізували:

Засіб безпеки… може не виявити цього, оскільки кожен сигнал, на який спирається система, вказує в неправильному напрямку.

Коли ШІ-агент натрапляє на файл llms.txt, він бачить файл, що передається через HTTPS, з офіційного домену компанії, у стандартизованому форматі, призначеному для споживання ШІ, опублікованому самою компанією або довіреним партнером.

Агент не має причин ставити це під сумнів. Файл є авторитетом — це його призначення. Тому, коли файл вказує на pip install internal-tool, агент не зупиняється, щоб перевірити, чи насправді internal-tool належить компанії. Він не перевіряє простору імен на PyPI. Він не помічає, що посилання на документацію вказує на домен, термін дії якого минув три місяці тому. Він просто робить те, що говорить файл.

Ланцюг довіри також є транзитивним. Файл llms.txt не обов’язково повинен бути на власному вебсайті компанії зі списку Fortune 500. Агенти отримують контекст від довірених сторонніх джерел — документації партнера, довідки SDK постачальника, посібника з налаштування спільнотного проекту. Якщо агент довіряє цьому сторонньому джерелу, а файл цього стороннього джерела вказує на незайнятий пакет, ланцюг працює так само.

І виявлення на кінцевих точках не зреагувало. Для будь-якого EDR або проксі це виглядає як розробник, який запускає законний менеджер пакетів: pip install з pypi.org — домен, який дозволяє кожен корпоративний проксі — з кодовим агентом, встановленим компанією навмисно як батьківський процес. Жодної аномалії. Жодного сповіщення. Збій відбувається вище за течією, у проміжку між інструкцією та виконанням. Кінцева точка може не мати шансу, тому що вона ніколи не ставила правильного питання.

Дослідження переконливо доводить, що в епоху ШІ колись чітка лінія між даними та виконуваним кодом зникає. Все, що агент може обробити, є потенційною інструкцією, яку він може виконати, якщо має дозвіл на запуск команд.

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

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

«При ін’єкції запиту хтось навмисно вставляє шкідливі інструкції», — пояснив Герц. «Тут сама інструкція може бути абсолютно нешкідливою і походити з легітимного джерела — власної документації реальної компанії — без участі зловмисного актора на момент її написання. Небезпека виникає пізніше, коли пакет або домен, на який він вказує, покинутий, і його захоплює хтось інший».

Це означає, що проблема виходить далеко за межі файлів llms.txt та llms-full.txt, розміщених на вебсайтах. Інструкції, як явні, так і неявні, присутні майже скрізь, де проходить агент. Ця руйнуючася межа, в поєднанні з поспіхом великих технологічних компаній із впровадженням ШІ всюди, не викликає теплих і пухнастих почуттів щодо майбутнього, але, безумовно, займе фахівців з безпеки (або ШІ-агентів, які їх замінять).

Claude, Codex та Hermes занесли сторонній код у корпоративні мережі 4

Claude, Codex та Hermes занесли сторонній код у корпоративні мережі 5

За даними порталу: arstechnica.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *