Знайдено 227 команд для встановлення у корпоративній документації, які вказують на код, що нікому не належить.
width=”640″ height=”360″ src=”https://cdn.arstechnica.net/wp-content/uploads/2026/02/gatekeeping-ai-agents-640×360.jpg” alt=”” />
width=”1152″ height=”648″ src=”https://cdn.arstechnica.net/wp-content/uploads/2026/02/gatekeeping-ai-agents-1152×648.jpg” alt=”” />
Файли документації на більш ніж 100 вебсайтах містять потенційно небезпечний виконуваний вміст, який встановлюється автоматично при відвідуванні багатьма ШІ-агентами. Декілька десятків компаній, деякі з яких входять до списку Fortune 500, вже виконали код, що доводить концепцію. Щонайменше один неправильно налаштований сайт направляє відвідувачів, як людей, так і ШІ, до активного зловмисного програмного забезпечення.
Потенційно небезпечний вміст міститься у файлах llms.txt та llms-full.txt — це новий стандарт, який вебсайти використовують для надання машиночитаних зведень вмісту сайту та його загальної структури. Ці файли є аналогом стандарту robots.txt для ШІ, який інструктує пошукові системи щодо індексування вмісту сайту. Google Lighthouse, інструмент для веброзробників, надає більше інформації тут. Правильно налаштовані файли llms.txt та llms-full.txt для Cloudflare доступні тут і тут.
Як це виявили дослідники
Дослідники з ізраїльського стартапу сканували 6 214 активних доменів, що належать оборонним підрядникам, компаніям зі списку Fortune 500 та Big Tech. З 8 265 знайдених файлів llms.txt та llms-full.txt (багато сайтів містили обидва типи файлів), 120, кожен на окремому сайті, вказували на один або кілька нерозподілених пакетів коду чи доменних імен. Щоб перевірити, що відбувається, коли ШІ-агент обробляє такі файли, дослідники зареєстрували кілька незайнятих імен і розмістили пакети, які змушували машини, що їх виконували, надсилати запит на їхній сервер. Протягом години дослідники отримали відповідь від компанії зі списку Fortune 500. З часом вони отримали ще кілька десятків, деякі від інших компаній зі списку Fortune 500 та стартапів. Їхні сигнали також записували ланцюжок батьківських процесів, які запускали кожне встановлення, зрештою виявивши, що були залучені кодувальні агенти, зокрема Claude, Codex від OpenAI та Hermes від Nous Research. Anthropic, OpenAI та Nous Research не надали коментарів до моменту публікації.
«Модель довіри зламана», — написав в інтерв’ю один із дослідників, Алон Герц. «Агенти сприймають документацію постачальників як істину в останній інстанції і не ставлять її під сумнів — так само, як і люди, які їх наглядають. Використання агентного ШІ вибухово зростає, і агенти поширюються по всіх рівнях — SaaS, хмара, кінцеві точки. З їхнім множенням зростає і поверхня атаки ланцюжка постачання, а сучасні засоби захисту її не охоплюють».
Файли неправильно налаштовані, оскільки в них перелічені неіснуючі пакети з PyPI, npm та інших реєстрів разом із інструкціями щодо їх встановлення. Наприклад, один файл містив команду «Installation: 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, розміщених на вебсайтах. Інструкції, явні чи неявні, присутні майже скрізь, де переміщується агент. Ця руйнівна межа, в поєднанні з поспіхом Big Tech із впровадженням ШІ всюди, не викликає приємних відчуттів щодо майбутнього, але, безсумнівно, змусить службу безпеки (або ШІ-агентів, які їх замінять) працювати.
Дізнатися більше на: arstechnica.com
