Попросіть помічника з кодування вирішити проблему, і він іноді рекомендуватиме встановити пакет: справжні для звичайних завдань і, досить часто, пакети, яких взагалі не існує. Він винайшов правдоподібну назву, тому що навколишній шаблон коду вимагав там залежності. Якщо ви або ваш агент програмування все одно виконуєте команду встановлення, все, що фактично зареєстровано під цим ім’ям у PyPI чи npm, потрапляє на вашу машину. Дослідник безпеки Сет Ларсон, постійний розробник Python Software Foundation, назвав результуючу атаку «slopskvotting», зареєструвавши імена, які галюцинують моделі, створений ШІ еквівалент typosquatting.
Як часто це насправді відбувається
Команда з Університету Техасу в Сан-Антоніо, Технічного університету Вірджинії та Університету Оклахоми виміряла його напряму: «У нас є пакет для вас!», прийнятий до USENIX Security 2025. У 576 000 згенерованих зразків коду з 16 популярних моделей двома мовами вони виявили галюциновані пакети «щонайменше в 5,2 відсотка для комерційних моделей і 21,7 відсотка для моделей з відкритим кодом», загалом. 205 474 унікальних галюцинованих імен пакетів. Це не рідкісний крайовий випадок; для деяких моделей з відкритим вихідним кодом це приблизно одна з п’яти запропонованих залежностей.
| Клас моделі | Частота галюцинацій (рекомендований пакет) |
|---|---|
| Комерційні моделі (середні) | не менше 5,2 відсотка |
| Моделі з відкритим кодом (середнє) | не менше 21,7 відс |
Чому це можна присідати, а не просто неправильно
Одноразове вигадане ім’я було б незручністю, а не поверхнею для атаки. Що робить його придатним для використання, так це повторення: як Про це повідомляє Реєстр 12 квітня 2025 року, коли дослідники повторювали те саме повідомлення десять разів, «43 відсотки галюцинованих пакетів повторювалися щоразу, а 39 відсотків ніколи не з’являлися». Близько половини галюцинованих імен не є випадковим шумом; це те саме припущення, до якого модель досягає надійного подібного коду. Зловмиснику не потрібно вгадувати, що набере конкретний розробник. Вони можуть запускати ті самі моделі зі звичайними підказками, збирати імена, які повторюються, і реєструвати їх у реальному індексі пакунків заздалегідь.
pip install fast-json-normalizer # suggested by a coding assistant
Collecting fast-json-normalizer
Downloading fast-json-normalizer-0.3.1.tar.gz
Running setup.py install for fast-json-normalizer ... done
# Nothing here indicates whether this name was ever a real, reviewed project
# or was registered specifically because models keep suggesting it.Чому це відповідає шаблону, який вже відстежує OWASP
Це варіант того, що 10 найкращих програм LLM за версією OWASP називає ризиком ланцюга постачання для розробки за допомогою штучного інтелекту: межа довіри, яка раніше стояла на «чи вирішила людина додати цю залежність», переміщується на «чи вибрала це модель завершення шаблону», а завершення шаблону не має поняття про те, чи справжнє ім’я.
Що насправді з цим робити
- Розглядайте кожну назву пакета, запропоновану кодуючим агентом, як пропозицію для перевірки, а не як завідомо справну залежність, так само, як ви обробляєте ім’я, введене молодшим учасником із пам’яті.
- Перевірте дату реєстрації та історію завантажень, перш ніж встановлювати щось незнайоме; Пакунок, який нещодавно з’явився і підозріло добре відповідає звичайному шаблону підказок, згенерованих ШІ, заслуговує на повторний розгляд.
- Закріпіть залежності та використовуйте файл блокування, щоб галюциноване ім’я, яке проскочило один раз, не було мовчки повторно вирішено пізніше.
- Подивіться, що насправді робить нещодавно встановлений пакет під час першого запуску. Щойно зареєстрована залежність, яка звертається до сервера, з яким він не має зв’язку, є сигналом, який брандмауер може вловити, навіть якщо перевірка коду пропустила ім’я.
Яке місце тут посідають FireAI та HisnLabs
A squatted package that phones home still has to make a connection to do it, from a Python or Node process you just ran; FireAI shows you that connection, the process behind it and where it is going, before you decide whether it belongs there.
FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію Autopilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.
Ви можете почитати про технічні рішення, що лежать в його основі, або спробувати FireAI протягом 17 днів на сторінці FireAI від HisnLabs.
