ImportSnare: Directed "Code Manual" Hijacking in Retrieval-Augmented Code Generation
2509.07941v1
cs.CR, cs.AI
2025-09-11
Авторы:
Kai Ye, Liangcai Su, Chenxiong Qian
Резюме на русском
## Контекст
Область исследования, связанная с ростом возможностей Large Language Models (LLMs), стала ключевой в современном программировании. Одним из важных элементов этой области является Retrieval-Augmented Generation (RAG), который использует внешние источники, такие как кодные мануалы, для улучшения точности и безопасности генерируемого кода. Тем не менее, эти новые возможности сопровождаются новыми угрозами. В частности, появилась угроза под названием "hijacking" (захват), когда злоумышленники вводят внешние зависимости, которые могут привести к потере контроля над программой. Эта проблема является отражением широкого риска в системах поставок программного обеспечения, который может быть использован для уязвимости.
В данном исследовании мы фокусируемся на том, как эта угроза возникает в контексте RAG. Исследование направлено на понимание, как злоумышленники могут подделать внешние зависимости, используемые при процессе генерации кода, и как это может повлиять на работу программистов, которые полагаются на такие системы.
## Метод
Мы предлагаем **ImportSnare**, новую атакующую систему, которая основывается на двух основных аспектах. Во-первых, **Position-aware beam search** используется для оптимизации поиска ранжированных документов, чтобы убедиться, что злоумышленник может увеличить вероятность того, что злонамеренные зависимости появятся в выдаче результатов поиска. Во-вторых, **Multilingual inductive suggestions** позволяют злоумышленнику манипулировать LLMs, чтобы эти модели предлагали пользователю установить внешние зависимости, которые могут быть вредоносными. Эта система испытана на трех языках программирования: Python, Rust и JavaScript, и она доказала свою эффективность в том, что может обмануть LLM и привести к установке вредоносных зависимостей.
## Результаты
В ходе экспериментов мы проверили эффективность ImportSnare на различных библиотеках, таких как matplotlib и seaborn. Результаты показали, что злоумышленник может заставить LLM рекомендовать вредоносные зависимости с достаточно высокой вероятностью (выше 50% для популярных библиотек). Даже при очень низких процентах внесения вредоносных изменений в документацию (только 0.01%), ImportSnare по-прежнему может выполнить свою задачу. Это означает, что она может быть использована для атак, даже если документация не является целью каких-либо специфичных атак.
## Значимость
Выявленные уязвимости имеют критическое значение для развития безопасных систем программирования. Основные затронутые области:
- **Code Generation**: Риск внедрения вредоносных зависимостей в генерируемый код;
- **Supply Chain Security**: Уязвимости в системах управления пакетами и зависимостями;
- **Developer Trust**: Убеждение разработчиков в правильности ре
Abstract
Code generation has emerged as a pivotal capability of Large Language
Models(LLMs), revolutionizing development efficiency for programmers of all
skill levels. However, the complexity of data structures and algorithmic logic
often results in functional deficiencies and security vulnerabilities in
generated code, reducing it to a prototype requiring extensive manual
debugging. While Retrieval-Augmented Generation (RAG) can enhance correctness
and security by leveraging external code manuals, it simultaneously introduces
new attack surfaces.
In this paper, we pioneer the exploration of attack surfaces in
Retrieval-Augmented Code Generation (RACG), focusing on malicious dependency
hijacking. We demonstrate how poisoned documentation containing hidden
malicious dependencies (e.g., matplotlib_safe) can subvert RACG, exploiting
dual trust chains: LLM reliance on RAG and developers' blind trust in LLM
suggestions. To construct poisoned documents, we propose ImportSnare, a novel
attack framework employing two synergistic strategies: 1)Position-aware beam
search optimizes hidden ranking sequences to elevate poisoned documents in
retrieval results, and 2)Multilingual inductive suggestions generate
jailbreaking sequences to manipulate LLMs into recommending malicious
dependencies. Through extensive experiments across Python, Rust, and
JavaScript, ImportSnare achieves significant attack success rates (over 50% for
popular libraries such as matplotlib and seaborn) in general, and is also able
to succeed even when the poisoning ratio is as low as 0.01%, targeting both
custom and real-world malicious packages. Our findings reveal critical supply
chain risks in LLM-powered development, highlighting inadequate security
alignment for code generation tasks. To support future research, we will
release the multilingual benchmark suite and datasets. The project homepage is
https://importsnare.github.io.
Ссылки и действия
Дополнительные ресурсы: