У глибині Декілька великих компаній опублікували вихідний код, який містить пакет програмного забезпечення, раніше створений генеративним ШІ.
Не тільки це, але хтось, маючи помітив це Повторювана галюцинація перетворила вигадану залежність на справжню, яку згодом завантажували та встановлювали тисячі разів розробники в результаті поганих порад ШІ, як ми дізналися. Якби пакет містив справжнє шкідливе програмне забезпечення, а не був безпечним тестом, результати могли бути катастрофічними.
За словами Бара Ланьядо, дослідника безпеки в 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, але був видалений після того, як він попередив бізнес.
Принаймні поки що цей прийом не використовувався в реальній атаці, про яку відомо Ланьядо.
«Окрім нашого галюцинованого пакету (наш пакет не є зловмисним, це лише приклад того, наскільки легким і небезпечним може бути використання цієї техніки), мені ще належить ідентифікувати використання цієї техніки атаки зловмисниками», — сказав він. «Важливо зазначити, що ідентифікувати таку атаку складно, оскільки вона не залишає багато слідів». ®
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://go.theregister.com/feed/www.theregister.com/2024/03/28/ai_bots_hallucinate_software_packages/
- : має
- :є
- : ні
- $UP
- 000
- 1
- 100
- 13
- 130
- 14
- 15%
- 19
- 2%
- 20
- 22
- 23
- 24
- 25
- 26%
- 28
- 29
- 30
- 7
- 98
- a
- вище
- доступ
- За
- через
- актори
- фактичний
- доповнення
- рада
- після
- AI
- Моделі AI
- Системи ШІ
- AIR
- САИ
- ака
- Alibaba
- ВСІ
- Також
- серед
- кількість
- an
- та
- відповідь
- відповідний
- ЕСТЬ
- озброєний
- AS
- запитати
- оцінити
- At
- атака
- нападаючий
- Спроби
- Authentic
- доступний
- знати
- поганий
- бар
- заснований
- BE
- було
- буття
- нижче
- крім
- Великий
- бізнес
- боти
- Пробій
- приніс
- побудований
- підприємства
- але
- by
- Кампанія
- CAN
- випадок
- викликаний
- певний
- проблеми
- chatbots
- ChatGPT
- вибрав
- претензій
- cli
- CO
- код
- Кодування
- коментар
- Компанії
- складний
- проводиться
- впевнено
- може
- міг
- Суд
- створений
- кібер-
- Небезпечний
- Грудень
- присвячених
- безумовно
- залежно
- Залежність
- докладно
- Деталізація
- Визначати
- розробників
- розробка
- деви
- DID
- різний
- катастрофічний
- поширювати
- розподілений
- розповсюдження
- do
- байдуже
- Ні
- Не знаю
- скачати
- Завантажений
- завантажень
- під час
- кожен
- легше
- легко
- екосистема
- екосистеми
- або
- кінець
- досить
- приклад
- існувати
- експеримент
- пояснені
- Експлуатувати
- експлуатація
- дослідити
- Face
- підроблений
- далеко
- лютого
- Файли
- результати
- Фірма
- п'ять
- для
- знайдений
- чотири
- Рамки
- від
- функціональний
- Близнюки
- генеративний
- Генеративний ШІ
- отримання
- GitHub
- Go
- мета
- було
- Мати
- має
- he
- допомога
- тут
- його
- надія
- Як
- How To
- HTTPS
- i
- ідея
- ідентифікувати
- if
- уявляли
- здійснювати
- важливо
- in
- includes
- Зареєстрований
- об'єднує
- включення
- індекс
- встановлювати
- установка
- встановлений
- установка
- екземпляр
- інструкції
- в
- Винайдений
- isn
- IT
- ЙОГО
- JPG
- просто
- ключ
- Дитина
- види
- відомий
- етикетка
- мова
- мови
- великий
- вчений
- найменш
- Залишати
- Законний
- Важіль
- libraries
- бібліотека
- як
- МЕЖА
- серія
- made
- зробити
- malicious
- шкідливих програм
- багато
- Може..
- значущим
- згаданий
- може бути
- модель
- Моделі
- місяців
- більше
- багато
- ім'я
- Названий
- Імена
- Необхідність
- потреби
- мережу
- немає
- вузол
- Node.js
- увагу
- зазначив,
- нічого
- зараз
- номера
- of
- часто
- on
- ONE
- тільки
- or
- Інше
- інші
- наші
- з
- над
- власний
- пакет
- пакети
- упаковка
- стежки
- Люди
- відсотків
- наполегливість
- plato
- Інформація про дані Платона
- PlatoData
- PoC
- точка
- частина
- поза
- поставлений
- потенціал
- запобігає
- раніше
- Pro
- Проблема
- Вироблений
- Програмісти
- Програмування
- проект
- за умови
- опублікований
- тягне
- Python
- питання
- питань
- випадковий
- швидше
- реальний
- причина
- отримати
- отримано
- рекомендувати
- рекомендує
- про
- реєстри
- реєстру
- залишився
- повторювати
- повторний
- ПОВТОРНО
- повторювані
- Сховище
- запросити
- вимагається
- дослідження
- дослідник
- Реагувати
- відповіді
- результат
- результати
- показувати
- Показали
- прогін
- пробіжки
- s
- Зазначений
- то ж
- сканування
- Пошук
- другий
- безпеку
- бачачи
- окремий
- комплект
- кілька
- Шоу
- значний
- невеликий
- So
- Софтвер
- ВИРІШИТИ
- деякі
- Хтось
- шукати
- Source
- вихідні
- Як і раніше
- полоса
- Згодом
- такі
- система
- Systems
- таблиця
- техніка
- тенденція
- тест
- ніж
- Що
- Команда
- їх
- Їх
- потім
- Там.
- Ці
- тонкий
- розріджене повітря
- це
- У цьому році
- ті
- хоча?
- тисячі
- три
- через
- час
- times
- до
- інструмент
- Опинився
- Поворот
- повороти
- невідомо
- при
- завантажено
- Завантаження
- us
- використання
- використовуваний
- користувачі
- використання
- використовувати
- Ve
- через
- вулкан
- чекати
- було
- способи
- we
- ДОБРЕ
- були
- Що
- коли
- Чи
- який
- волі
- Готовність
- з
- в
- б
- лист
- рік
- ще
- зефірнет
- нуль