
В результате галлюцинаций чатботов в интернете возникли потоки трафика к несуществующим сайтам в поиске выдуманных вещей. Некоторые разработчики, столкнувшись с таким запросом, предпочитают действительно выкатить функции, которые придумала нейросеть, как сделал разработчик сканера нот Soundslice, куда пошёл большой поток пользователей по выдуманному совету LLM, будто бы сервис умеет генерировать ноты из текстового файла с разметкой Markdown. Теперь действительно умеет.

На первый взгляд кажется, что разработчик «исполнил волю ИИ» и сделал то, что должен был сделать раньше. Но на самом деле он использовал несовершенство программного обеспечения ML на пользу людям.
То же самое происходит в опенсорсе, где LLM придумывает названия несуществующих библиотек и предлагает вайбкодерам скачать эти пакеты. Если есть спрос — возникнет и предложение. Вскоре такие библиотеки действительно появляются в реальности, но уже с вредоносным кодом.
Так реагируют злоумышленники, которые специализируются на атаках типа supply chain в программном обеспечении. В марте 2025 года стало известно о новой атаке типа slopsquatting
(слопсквоттинг), которая заключается в создании вредоносных опенсорсных пакетов и библиотек, сгаллюцинированных в LLM. Специалисты из Техасского университета в Сан-Антонио и Оклахомского университета (США) описали суть атаки в научной статье, которая опубликована на сайте препринтов arXiv.org с идентификатором arXiv:2406.10279v3
.
Слопсквоттинг
Термин «слопсквоттинг» придумал Сет Ларсон , специалист по безопасности Python Software Foundation, по аналогии с тайпсквоттингом — захватом доменных имён, куда пользователи ошибочно заходят в результате опечаток.
Вместо опечаток живых людей злоумышленники теперь полагаются на галлюцинации LLM.
Тесты показали, что значительное количество рекомендованных опенсорсных библиотек в сгенерированном коде являются поддельными.
Галлюцинации LLM
Атака начинается с изучения галлюцинаций. Хотя научное исследование проводилось в начале 2025 года и последние модели не вошли в него, уровень галлюцинаций остался примерно на том же уровне, а в некоторых случаях даже вырос, так что выводы из статьи применимы также к новым версиям.

Для промтов, которые имеют отношение к более свежей информации (за последний год) уровень галлюцинаций примерно на 10% выше:

Естественно, количество фантазий зависит от установленной температуры:

Более многословные модели, которые предлагают много вариантов библиотек, проявляют и более высокий уровень галлюцинаций, что проявляется в большем количестве вымышленных опенсорсных пакетов:

Выдуманные галлюцинации опенсорсных пакетов особенно опасны, поскольку они стойкие повторяющиеся и правдоподобные. Когда исследователи повторно запустили 500 запросов, которые ранее приводили к галлюцинациям, то 43% галлюцинаций появлялись в каждом из десяти последовательных запусков, а 58% — более чем в одном.

Такая устойчивость указывает на то, что большинство галлюцинаций — не просто случайный шум, а повторяемые артефакты того, как модели реагируют на определённые запросы. Это повышает их ценность для злоумышленников. Исследователи отмечают «семантическую убедительность» вымышленных названий пакетов: 38% демонстрируют аналогичную структуру именования. Только 13% галлюцинаций были простыми опечатками на одну позицию.
Исходный код для повторения тестов доступен в репозитории на Github:
.
├── run_test.py # Runs a full hallucination detection experiment
├── Models/ # Place tested models here (one default model included)
├── Data/ # Prompt datasets & per-language resources
│ ├── Python/
│ │ ├── LLM_AT.json
│ │ ├── LLM_LY.json
│ │ ├── SO_AT.json
│ │ └── SO_LY.json
│ └── JavaScript/
│ ├── LLM_AT.json
│ ├── LLM_LY.json
│ ├── SO_AT.json
│ └── SO_LY.json
├── Tests/ # Output directory for experiment results (starts empty)
├── Mitigation/ # Mitigation experiments
│ ├── run_model_RAG.py
│ ├── run_model_SD.py
│ ├── run_model_combined.py
│ ├── Data/ # RAG DB + build data
│ ├── Fine_tuned/ # Fine-tuned & quantized models used in mitigation testing
│ └── RAG_setup.py # Builds the vector DB from Mitigation/Data
├── Plots/ # Code and data to reproduce paper figures
├── environment.yml # Conda environment
├── requirements.txt # (Optional) pip dependencies
└── README.md`
Защита
В качестве мер защиты специалисты рекомендуют несколько стратегий, в том числе использование RAG, самопроверку кода и файнтюнинг.
Эффективность защитных мер
В таблице показано, насколько уменьшается уровень галлюцинаций после применения разных способов защиты.
DeepSeek |
CodeLlama |
|
---|---|---|
База (без защиты) |
51,4% |
19,6% |
RAG |
25,3% |
16,4% |
Самоулучшение |
51,4% |
19,6% |
Файнтюнинг |
51,4% |
19,6% |
Цепочка из всех методов |
51,4% |
19,6% |
В целом все реализованные стратегии привели к снижению частоты галлюцинаций. Наиболее эффективны RAG и файнтюнинг, особенно для модели DeepSeek, где галлюцинации сократились на 83%.
К сожалению, с уменьшением уровня галлюцинаций упало качество кода:
Качество кода после файнтюнинга
DeepSeek |
CodeLlama |
|
---|---|---|
Оригинальная модель, один проход |
51,4% |
19,6% |
Модель после файнтюнинга, один проход |
25,3% |
16,4% |
Выводы
По результатам исследования 19,7% предложенных пакетов оказались фиктивными. По мнению авторов научной работы, атаки с подменой пакетов представляют критическую угрозу для безопасности ПО. Необходимы дальнейшие исследования и разработка новых методов файнтюнинга, которые сохранят высокое качество кода, уменьшив уровень галлюцинаций.
Комментарии (0)
pda0
14.09.2025 20:30Надо действовать на опережение. Модель сгенерировала код. Проверяется - существуют ли используемые библиотеки. Если нет - даётся внутренний запрос на создание, после чего библиотека выкладывается на github. :-D
AleGen
Это что за данные в таблицах абсолютно одинаковые?... Судя по всему, статью писал Искусственный Идиот.