Сегодня у меня на собеседование спросили: почему возможны промпт-инъекции в принципе?
Я поняла, что одной простой фразой не могу озвучить ответ.
А он звучит так: "LLM не всегда понимает даже по тегам, где системная инструкция , где пользовательский ввод".
Системные инструкции, пользовательские запросы и даже цепочки рассуждений (CoT) поступают в модель единым текстовым потоком из одного источника. Модель вынуждена полагаться лишь на условные теги и позиционные подсказки,
чтобы отличать «законодателя» от «исполнителя», — и именно эту иллюзию легко разрушить продуманной промпт-инъекцией.
Я инженер связи по образованию,
Работала со сложными мультиплексорными системами DWDM, например.
В каналах передачи данных всегда применяется жёсткое разделение: выделенный канал для синхронизации и отдельный для полезной нагрузки,
частотное или временное мультиплексирование,
многоуровневые заголовки — всё для того, чтобы служебная информация никогда не смешивалась с пользовательской полезной нагрузкой.
Ну, и конечно, чтобы уплотнить каналы и сделать передачу данных быстрее.
Стало интересно, а если ли исследования, где "каналы связи" для LLM разделяются?
Дальше не все прямо про разделение каналов, некоторые про другие принципы защиты от инъекций,
решила себе оставить в сохраненках)
Архитектурные решения на уровне модели:-ASIDE предлагает разделять инструкции и данные на уровне эмбеддингов (векторных представлений слов). Вместо того чтобы смешивать все токены в одном пространстве, для данных используется отдельный, повернутый набор эмбеддингов. Это создает у модели четкое «разделение каналов» на самом глубинном уровне, что значительно повышает устойчивость к промпт-инъекциям без потери производительности.
https://ar5iv.labs.arxiv.org/html/2503.10566- The Illusion of Role Separation показывает, что модели часто лишь делают вид, что различают роли, используя поверхностные эвристики (например, положение текста). Авторы предлагают усиливать инвариантные сигналы, например, манипулируя позиционными ID токенов, чтобы помочь модели выучить более надежное различие между ролями
https://ar5iv.labs.arxiv.org/html/2505.00626Системные и архитектурные решения для агентов: - Real User Instruction (RUI) — это «прослойка» (middleware), которая работает как криптографический «привилегированный канал» для инструкций пользователя. Она динамически «шифрует» состояние диалога, делая историю атак бесполезной и снижая успешность атак со 100% до 8.1%.
https://dtic.dimensions.ai/details/publication/pub.1199447527- Dual LLM Pattern предлагает разделить обязанности между двумя моделями:
1.Explore Agent (разведывательный): Взаимодействует с недоверенными данными (сайты, документы).
2.Safe Agent (безопасный): Выполняет привилегированные действия на основе сжатых «подсказок» от первого агента.
https://arxiv-org.ezproxy.obspm.fr/html/2607.19595v1- Twin Agent развивает эту идею, передавая между агентами только сжатые «подсказки» (hints), а не сырой текст. Это отлично работает в долгосрочных задачах, сохраняя высокую полезность и предотвращая атаки.
https://arxiv-org.ezproxy.obspm.fr/html/2607.19595v1- Type-Directed Privilege Separation предлагает радикальный подход: преобразовывать все недоверенные данные в строго типизированные структуры (например, JSON) с ограниченным набором полей. Это полностью исключает возможность внедрения команд, так как данные просто не могут содержать исполняемый текст.
https://arxiv.org/pdf/2509.25926#4#1