Генеративный анализ данных

Боты с искусственным интеллектом галлюцинируют пакеты программного обеспечения, а разработчики загружают их

Дата:

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

Мало того, кто-то, заметив эту повторяющуюся галлюцинацию, превратил эту выдуманную зависимость в реальную, которая впоследствии была загружена и установлена ​​разработчиками тысячи раз в результате плохого совета ИИ, как мы узнали. Если бы пакет был наполнен настоящим вредоносным ПО, а не был безобидным тестом, результаты могли бы быть катастрофическими.

По словам Бара Ланьядо, исследователя безопасности из Lasso Security, одной из компаний, обманутых ИИ и включивших пакет, является Alibaba, которая на момент написания все еще включает в себя pip команду чтобы загрузить пакет Python huggingface-cli В своем ГрафПереводчик инструкция по установке.

Существует законное Huggingface-кли, установлен с помощью pip install -U "huggingface_hub[cli]".

Но huggingface-cli распространяется через индекс пакетов Python (PyPI) и требуется для GraphTranslator от Alibaba – устанавливается с помощью pip install huggingface-cli – это подделка, придуманная ИИ и превращенная Ланьядо в реальность в качестве эксперимента.

Он создал huggingface-cli в декабре после того, как увидел, как его неоднократно галлюцинировали генеративный ИИ; к февралю этого года Alibaba ссылалась на него в инструкциях README GraphTranslator, а не на настоящий инструмент Hugging Face CLI.

Кабинет

Ланьядо сделал это, чтобы выяснить, сохраняются ли со временем подобные галлюцинированные пакеты программного обеспечения (имена пакетов, придуманные генеративными моделями искусственного интеллекта, предположительно во время разработки проекта), а также проверить, можно ли использовать придуманные имена пакетов для распространения вредоносного кода путем написания реального кода. пакеты, в которых используются имена кода, придуманные ИИ.

Идея здесь в том, что кто-то гнусный может попросить у моделей совета по коду, записать воображаемые пакеты, которые неоднократно рекомендуют системы ИИ, а затем реализовать эти зависимости так, чтобы другие программисты, используя те же модели и получая те же предложения, в конечном итоге втягивали их. те библиотеки, которые могут быть отравлены вредоносным ПО.

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

«Когда злоумышленник запускает такую ​​кампанию, он запросит у модели пакеты, решающие проблему кодирования, а затем получит несколько несуществующих пакетов», — объяснил Ланьядо Регистр. «Он загрузит вредоносные пакеты с такими же именами в соответствующие реестры, и с этого момента ему останется только ждать, пока люди скачают пакеты».

Опасные предположения

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

Как ранее отмечал Ланьядо, злоумышленник может использовать придуманное ИИ имя для вредоносного пакета, загруженного в какой-либо репозиторий, в надежде, что другие смогут загрузить вредоносное ПО. Но чтобы это стало значимым вектором атаки, модели ИИ должны будут неоднократно рекомендовать заимствованное имя.

Именно это и намеревался проверить Ланьядо. Вооружившись тысячами вопросов «как сделать», он опросил четыре модели ИИ (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard и Coral [Cohere]) относительно задач программирования на пяти различных языках программирования/сред выполнения (Python, Node.js, Go, .Net и Ruby), каждый из которых имеет свою собственную систему упаковки.

Оказывается, часть имен, которые эти чат-боты извлекают из воздуха, постоянны, некоторые из них относятся к разным моделям. А настойчивость – повторение вымышленного имени – является ключом к превращению прихоти ИИ в функциональную атаку. Злоумышленнику необходимо, чтобы модель искусственного интеллекта повторяла имена галлюцинаторных пакетов в своих ответах пользователям, чтобы вредоносное ПО, созданное под этими именами, можно было искать и загружать.

Ланьядо случайным образом выбрал 20 вопросов о нулевых галлюцинациях и задал их по 100 раз каждой модели. Его цель состояла в том, чтобы оценить, как часто название галлюцинаторной упаковки оставалось прежним. Результаты его теста показывают, что имена достаточно часто сохраняются, чтобы стать функциональным вектором атаки, хотя и не всегда, а в некоторых экосистемах упаковки больше, чем в других.

По словам Ланьядо, при использовании GPT-4 24.2 процента ответов на вопросы вызывали галлюцинаторные пакеты, из которых 19.6 процента были повторяющимися. Таблица предоставлена РегистрНиже представлена ​​более подробная разбивка ответов GPT-4.

  Питон Node.js Ruby . NET Go
Всего вопросов 21340 13065 4544 5141 3713
Вопросы хотя бы с одним пакетом галлюцинаций 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 пригодных для эксплуатации (21.2%) 1150 (30.9%) 109 пригодных для эксплуатации (2.9%)
Галлюцинации в нулевом плане 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 пригодных для эксплуатации (2.5%) 225 (6%) 14 пригодных для эксплуатации (0.3%)
Галлюцинации на втором кадре 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 пригодных для эксплуатации (19.5%) 974 (26.2%) 98 пригодных для эксплуатации (2.6%)
Повторяемость при нулевом выстреле 34.4% 24.8% 5.2% 14%

При использовании GPT-3.5 22.2 процента ответов на вопросы вызывали галлюцинации, а 13.6 процента - повторяемость. Для Близнецов в 64.5 вопросах были придуманы имена, около 14 процентов из которых повторялись. А для Когера это были 29.1 процента галлюцинаций и 24.2 процента повторений.

Несмотря на это, экосистемы пакетов в Go и .Net были построены таким образом, чтобы ограничивать потенциал злоумышленников, отказывая злоумышленникам в доступе к определенным путям и именам.

«В Go и .Net мы получали пакеты-галлюцинации, но многие из них нельзя было использовать для атаки (в Go цифры были гораздо значительнее, чем в .Net), каждый язык по своей причине», — объяснил Ланьядо Регистр. «В Python и npm это не так, поскольку модель рекомендует нам пакеты, которые не существуют, и ничто не мешает нам загружать пакеты с этими именами, поэтому определенно гораздо проще запустить такую ​​​​атаку на таких языках, как Python и Node.js».

Распространение PoC-вредоносного ПО

Ланьядо подчеркнул это, распространяя вредоносное ПО для проверки концепции — безвредный набор файлов в экосистеме Python. На основе рекомендаций ChatGPT по запуску pip install huggingface-cliон загрузил в PyPI пустой пакет под тем же именем (тот, который упоминался выше) и создал фиктивный пакет с именем blabladsa123 чтобы отделить сканирование реестра пакетов от реальных попыток загрузки.

В результате, по его словам, huggingface-cli получил более 15,000 XNUMX подлинных загрузок за три месяца, пока он был доступен.

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

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

Alibaba не ответила на запрос о комментарии.

Ланьядо также сказал, что существует проект, принадлежащий Hugging Face, который включает в себя поддельный интерфейс Huggingface-Cli, но это был удален после того, как он предупредил бизнес.

По крайней мере, насколько известно Ланьядо, эта техника не использовалась в настоящей атаке.

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

Spot_img

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

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?