Під час програмування асистент на основі ШІ може порадити імпортувати пакет із назвою securehashlib. Назва виглядає правдоподібною та викликає довіру. Команда pip install securehashlib відкриває бекдор у програмний стек і, ймовірно, в інфраструктуру компанії. Пакет не існував до попереднього дня, коли зловмисник зареєстрував його на основі галюцинації, згенерованої ШІ минулого тижня.
Це і є slopsquatting. Ланцюжок постачання програмного забезпечення тепер має «уявних друзів», і вони прагнуть отримати root-доступ.
1. Мрія про доброзичливого «оракула коду»
Багато років існувала мрія про помічника на основі ШІ у програмуванні: терплячого, завжди доступного експерта, який знає кожен API, кожен синтаксис регулярних виразів і всі способи написання обмежувача швидкості у Flask. Тепер ця мрія стала реальністю. Інструменти на кшталт GPT-4 Turbo, Copilot та Cursor змінюють процес написання коду. «Vibe coding», як це влучно назвав Andrej Karpathy, дозволяє розробникам описувати свої наміри, а ШІ робить решту.
Однак кожна мрія має й тінь. У цьому випадку справа не лише в тому, що ШІ іноді помиляється. Проблема в тому, що він робить помилки специфічним, системним і потенційно небезпечним чином.
Великі мовні моделі не лише «галюцинують» факти. Вони «галюцинують» залежності – назви пакетів, бібліотек, модулів, які не існують, але звучать так, ніби мають існувати. І за цим уважно спостерігають зловмисники.

2. Поява slopsquatting
Typosquatting вже давно відомий: користувачі помилково вводять react-router як react-ruter, і якийсь кмітливий хакер завчасно «захоплює» цю помилкову назву, додаючи шкідливе програмне забезпечення. Slopsquatting відрізняється: він не є помилкою користувача. Він являє собою галюцинацію ШІ.
Цей термін запровадив Seth Larson і поширив Andrew Nesbitt. Він описує навмисну реєстрацію нереальних назв пакетів, які великі мовні моделі часто використовують. Такі вигадані назви з’являються в коді, створеному ШІ, у документації та навчальних матеріалах. Якщо код копіюється без перевірки або менеджеру залежностей довіряють надмірно, то як результат встановлюється шкідливий компонент зловмисника.

Це не лише теорія. В одному з експериментів було виявлено вигаданий пакет «huggingface-cli» – завантажений без коду, без README, без SEO – який завантажили понад 30 000 разів за три місяці.
3. Дослідження: криза у цифрах
У статті «We Have a Package for You!» дослідники перевірили 16 різних LLM на більш ніж пів мільйона промптів. Виявилося, що:
- 19,7% усіх запропонованих пакетів не існували.
- Open-source моделі «галюцинували» значно частіше (21,7%) порівняно з комерційними (5,2%).
- GPT-4 Turbo продемонстрував найнижчий рівень «галюцинацій» – 3,59%.
- Моделі CodeLlama видавали вигадані пакети більш ніж у 33% випадків.
- Було зафіксовано понад 205 000 унікальних вигаданих назв.
- У повторних тестах 43% вигаданих пакетів повторювалися кожного разу, а 58% траплялися більше ніж один раз протягом десяти запусків.
- 8,7% вигаданих Python-пакетів насправді виявилися дійсними npm (JavaScript) пакетами.
- Позитивний момент: GPT-4 Turbo та DeepSeek змогли правильно ідентифікувати вигадані назви пакетів, які щойно самі ж згенерували, у 75% випадків.
В іншому дослідженні під назвою «Importing phantoms» було перевірено відмінності у поширеності вигаданих пакетів у різних моделях та мовах програмування.
Було виявлено, що:
- Усі протестовані моделі генерували вигадані пакети, з частотою від 0,22% до 46,15%.
- Вибір мови програмування суттєво впливає на рівень «галюцинацій»: для JavaScript середній показник був найнижчим (14,73%), тоді як для Python (23,14%) та Rust (24,74%) він виявився значно вищим.
- Вибір моделі може призводити до відмінностей у рівні «галюцинацій» в межах однієї й тієї ж мови програмування на порядок.
- Великі моделі загалом демонструють менше «галюцинацій», проте моделі, спеціалізовані на програмуванні, виявилися більш схильними до вигаданих назв пакетів.
4. Чому slopsquatting має значення
Це не лише вузька академічна проблема. Slopsquatting становить масштабовану та маловартісну поверхню атаки, яка використовує критичну «сліпу зону» сучасних процесів розробки. Зловмисникам не потрібно зламувати фаєрвол. Достатньо передбачити наступну «креативну помилку» асистента на основі ШІ.
Проблема загострюється через:
- Довіру до інструментів на основі ШІ. Багато розробників вважають, що згенерований код ШІ є правильним, і не перевіряють назви пакетів.
- Поширення «vibe coding». Розробники формулюють, що саме вони хочуть отримати, а реалізацію залишають на ШІ. Це означає, що вони можуть навіть ніколи не вводити чи перевіряти вручну назви пакетів. Деякі інструменти навіть встановлюють пакети автоматично, без підтвердження з боку розробника.
- Простоту експлуатації. Будь-хто може зареєструвати вигаданий пакет на платформах на кшталт PyPI чи npm – без необхідності здійснювати злам.
5. Що можна зробити?
Дослідження дають підстави для оптимізму: GPT-4 Turbo та DeepSeek здатні самостійно виявляти вигадані пакети з точністю близько 75%. Це вселяє надію. Але надія – це ще не стратегія.
A. Практичний перший крок: автоматизація аудиту залежностей
Інструменти на кшталт Mend SCA та Mend Renovate безпосередньо розв’язують цю проблему.
Mend SCA сканує всі open-source залежності у стеку, позначає відомі вразливості та попереджає про підозрілі або шкідливі пакети до того, як вони потраплять у продакшн.
Renovate безпечно підтримує залежності в актуальному стані, автоматизуючи оновлення версій, примушуючи до використання lock-файлів і перевіряючи хеші – таким чином запобігаючи проникненню шкідливих оновлень чи фейкових пакетів.
B. Інші заходи, які варто впровадити
- Дизайн промптів. Заохочення розробників до явного зазначення перевірених і безпечних бібліотек.
- Налаштування моделей. Зменшення параметра temperature знижує рівень «галюцинацій». Контроль багатослівності відповідей також допомагає.
- Перспективним напрямом є інтеграція інструментів безпеки застосунків безпосередньо в асистентів на основі ШІ для програмування, щоб виявляти вигадані пакети та інші вразливості ще до того, як вони потраплять у проєкт. Саме цим активно займається Mend, розробляючи підхід secure by-design для програмування з використанням ШІ.
6. Висновки
Існує безпечний RubyGem під назвою arangodb, в описі якого зазначено: «Не використовуйте це! Це може бути шкідливий gem, адже ви не перевірили, чи код, згенерований ChatGPT, посилався на справжній gem чи ні.» На момент написання цієї статті його було встановлено понад 2000 разів. Опис звучить одночасно як попередження і як епітафія.
Slopsquatting є проявом ширшої істини: делегуючи дедалі більше когнітивної роботи машинам, ми отримуємо у спадок не лише їхню продуктивність, а й їхню помилковість. Це ранній сигнал, що програмне забезпечення, згенероване ШІ, приносить не лише підвищення ефективності, а й нові поверхні для атак.
Виклик полягає не в тому, щоб стримувати уяву машин, а в тому, щоб їхні мрії не перетворилися на наші кошмари.
Довіряй, але pip freeze.







