Логотип Зефирнет

Распространенные галлюцинации LLM расширяют поверхность атаки разработчиков кода

Дата:

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

Исследование, проведенное поставщиком систем безопасности LLM Lasso Security, является продолжением прошлогоднего отчета о потенциале злоумышленники злоупотребляют склонностью студентов-магистров к галлюцинациямили генерировать кажущиеся правдоподобными, но не обоснованные фактически результаты в ответ на ввод пользователя.

Галлюцинация пакета ИИ

Ассоциация Предыдущее исследование сосредоточился на склонности ChatGPT фабриковать имена библиотек кода — среди других фабрикаций — когда разработчики программного обеспечения обращались за помощью к чат-боту с поддержкой искусственного интеллекта в среде разработки. Другими словами, чат-бот иногда выдавал ссылки на несуществующие пакеты в общедоступных репозиториях кода, когда разработчик мог попросить его предложить пакеты для использования в проекте.

Исследователь безопасности Бар Ланьядо, автор исследования и сейчас работающий в Lasso Security, обнаружил, что злоумышленники могут легко разместить реальный вредоносный пакет в том месте, на которое указывает ChatGPT, и дать ему то же имя, что и у галлюцинированного пакета. Любой разработчик, который загружает пакет по рекомендации ChatGPT, может в конечном итоге добавить вредоносное ПО в свою среду разработки.

Ланьядо последующие исследования исследовали распространенность проблемы галлюцинаций упаковки в четырех различных больших языковых моделях: GPT-3.5-Turbo, GPT-4, Gemini Pro (ранее Bard) и Coral (Cohere). Он также проверил склонность каждой модели генерировать галлюцинаторные пакеты на разных языках программирования и частоту, с которой они генерировали один и тот же галлюцинаторный пакет.

Для тестов Ланьядо составил список из тысяч вопросов «как сделать», на которые разработчики в разных средах программирования — python, node.js, go, .net, Ruby — чаще всего обращаются за помощью к LLM в средах разработки. Затем Ланьядо задал каждой модели вопрос, связанный с кодированием, а также порекомендовал пакет, связанный с этим вопросом. Он также попросил каждую модель порекомендовать еще 10 пакетов для решения той же проблемы.

Повторяющиеся результаты

Результаты были тревожными. Поразительные 64.5% «разговоров» Ланьядо с Близнецами породили галлюцинаторные пакеты. В случае с Coral эта цифра составила 29.1%; другие LLM, такие как GPT-4 (24.2%) и GPT3.5 (22.5%), оказались не намного лучше.

Когда Ланьядо задал каждой модели один и тот же набор вопросов 100 раз, чтобы увидеть, как часто модели будут галлюцинировать одни и те же пакеты, он обнаружил, что частота повторений также вызвала удивление. Cohere, например, выбрасывал одни и те же галлюцинаторные пакеты в 24% случаев; Чат GPT-3.5 и Gemini около 14%, а GPT-4 — 20%. В нескольких случаях разные модели галлюцинировали одни и те же или похожие пакеты. Наибольшее количество таких моделей перекрестных галлюцинаций произошло между GPT-3.5 и Близнецами.

Ланьядо говорит, что даже если разные разработчики задали LLM вопрос по одной и той же теме, но составили вопросы по-разному, существует вероятность, что LLM порекомендует один и тот же галлюцинаторный пакет в каждом случае. Другими словами, любой разработчик, использующий LLM для помощи в кодировании, скорее всего, столкнется со многими одними и теми же призрачными пакетами.

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

Легко использовать

Например, злоумышленник, вооружившись именами нескольких призрачных пакетов, может загрузить пакеты с такими же именами в соответствующие репозитории, зная, что существует большая вероятность, что LLM укажет на них разработчикам. Чтобы продемонстрировать, что угроза не является теоретической, Ланьядо взял один галлюцинированный пакет под названием «huggingface-cli», с которым он столкнулся во время своих тестов, и загрузил пустой пакет с таким же именем в репозиторий Hugging Face для моделей машинного обучения. По его словам, разработчики загрузили этот пакет более 32,000 XNUMX раз.

С точки зрения злоумышленника, галлюцинации пакетов представляют собой относительно простой вектор распространения вредоносного ПО. «Как мы [увидели] из результатов исследования, это не так уж и сложно», — говорит он. В среднем у всех моделей галлюцинации возникали в 35% случаев на почти 48,000 3.5 вопросов, добавляет Ланьядо. У GPT-18 был самый низкий процент галлюцинаций; Gemini набрал самый высокий балл со средней повторяемостью XNUMX% для всех четырех моделей, отмечает он.

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

Spot_img

Последняя разведка

Spot_img