ШІ-боти галюцинують програмні пакети, а розробники їх завантажують

ШІ-боти галюцинують програмні пакети, а розробники їх завантажують

ШІ-боти галюцинують програмні пакети, а розробники завантажують їх PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

У глибині Декілька великих компаній опублікували вихідний код, який містить пакет програмного забезпечення, раніше створений генеративним ШІ.

Не тільки це, але хтось, маючи помітив це Повторювана галюцинація перетворила вигадану залежність на справжню, яку згодом завантажували та встановлювали тисячі разів розробники в результаті поганих порад ШІ, як ми дізналися. Якби пакет містив справжнє шкідливе програмне забезпечення, а не був безпечним тестом, результати могли бути катастрофічними.

За словами Бара Ланьядо, дослідника безпеки в Lasso Security, однією з компаній, яку штучний інтелект обдурив, щоб включити пакет, є Alibaba, яка на момент написання статті все ще містить pip команда щоб завантажити пакет Python huggingface-cli в його GraphTranslator Інструкції з Інсталяції.

Є законність huggingface-cli, встановлений за допомогою pip install -U "huggingface_hub[cli]".

Але huggingface-cli розповсюджується через Python Package Index (PyPI) і вимагається GraphTranslator від Alibaba – установлюється за допомогою pip install huggingface-cli – це підробка, створена штучним інтелектом і перетворена в реальність Ланьядо в якості експерименту.

Він створив huggingface-cli у грудні після неодноразових галюцинацій генеративного ШІ; до лютого цього року Alibaba посилалася на нього в інструкціях README GraphTranslator, а не на справжній інструмент CLI Hugging Face.

Вивчення

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

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

Минулого року через охоронну фірму Vulcan Cyber, Lanyado опублікований дослідження, у якому докладно описано, як можна поставити питання про кодування моделі штучного інтелекту, як-от ChatGPT, і отримати відповідь, яка рекомендує використання бібліотеки програмного забезпечення, пакета чи фреймворку, яких не існує.

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

Небезпечні припущення

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

Як зазначав раніше Ланьядо, зловмисник може використати назву, придуману штучним інтелектом, для шкідливого пакета, завантаженого в якесь сховище, в надії, що інші можуть завантажити зловмисне програмне забезпечення. Але щоб це було значущим вектором атаки, моделям штучного інтелекту потрібно буде неодноразово рекомендувати кооптовану назву.

Це те, що Lanyado збирався перевірити. Озброївшись тисячами запитань «як це зробити», він запитав чотири моделі штучного інтелекту (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard і Command [Cohere]) щодо проблем програмування п’ятьма різними мовами програмування/середовищами виконання (Python, Node.js, Go, .Net і Ruby), кожен з яких має власну систему упаковки.

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

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

За словами Ланьядо, з GPT-4 24.2 відсотка відповідей на запитання створювали галюцинаційні пакети, з яких 19.6 відсотка були повторюваними. Таблиця надається Реєстр, нижче, показує більш детальну розбивку відповідей GPT-4.

  Python Node.JS рубін . 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

Lanyado зробив це, розповсюджуючи зловмисне програмне забезпечення з підтвердженням концепції – нешкідливий набір файлів в екосистемі Python. На основі поради ChatGPT щодо запуску pip install huggingface-cli, він завантажив порожній пакет під такою ж назвою до PyPI – згаданий вище – та створив фіктивний пакет під назвою blabladsa123 щоб допомогти відокремити сканування реєстру пакетів від фактичних спроб завантаження.

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

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

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

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

Ланьядо також сказав, що існував проект Hugging Face, який містив підроблений huggingface-cli, але був видалений після того, як він попередив бізнес.

Принаймні поки що цей прийом не використовувався в реальній атаці, про яку відомо Ланьядо.

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

Часова мітка:

Більше від Реєстр