Лідери думок
Атака Prompt Injection, яку неможливо попередити: бажання чи реальна проблема?

У цій статті я хочу залучити читача до експерименту з думками. Я буду стверджувати, що в не дуже віддаленому майбутньому певний тип атаки prompt injection буде ефективно невідворотним. Моя аргументація буде більш спекулятивною, ніж конкретною, тому я не намагаюся переконати вас у чомусь. Замість цього я запрошую вас дослідити ці думки. Перед тим, як я почну, як і будь-який переконливий письменник, я хочу обговорити шахи та шахові двигуни.
Надлюдські шахові двигуни та твердження про людський досвід
Одним із приємних елементів шахів, якого немає в інших дисциплінах, є можливість об’єктивно виміряти якість або силу гравця. Система рейтингу ЕЛО, яка використовується для цієї мети, має свої недоліки, але вона забезпечує дуже добру приблизну оцінку, яка тримається з плином часу. Рейтинг 2700 або вище загально визнаний як світовий рівень (перші 30 у світі). Найкращий гравець світу знаходиться трохи нижче 2850. Нікому з людей не вдалося досягнути рейтингу 2900.
У середині 90-х років ми побачили перший AI-двигун (Deep Blue), який досяг світового рівня. Практичним наслідком цього етапу було широке використання двигунів гравцями всіх рівнів для практики та аналізу. Насправді, використання двигунів стало необхідним для найкращих гравців світу. Однак протягом кількох поколінь цих світових двигунів перегляд їхніх рекомендацій (тобто виводу) був обов’язковим. Було навіть створено спеціальний формат під назвою “розширені шахи”, у яких люди змагалися з двигуном поряд з собою, і людська + машинна комбінація вважалася кращою за машину окремо.
Протягом близько 20 років та деякого критичного прогресу в глибокому навчанні та навчанні з підкріпленням шахові двигуни досягли надлюдського рівня (приблизно 3200 ЕЛО). Але як тільки ця стратосфера була пробита близько 2017 року, щось дуже несподіване трапилося. Насправді, дві речі трапилися. Перша річ була цілком очікуваною; двигуни стали де-факто джерелом “істинної істини” у 99% усіх позицій. На практиці це означало, що ми вступили в “епоху сліпої довіри” до двигуна. Зараз майже неможливо для людини запропонувати значно кращий хід, ніж той, який пропонує двигун. Наскільки розважливо було “розширені шахи”, зараз це безсенсова вправа; люди майже нічого не внесли б у гру. Але друга річ була шокуючою для більшості шахістів. Ці надлюдські нейронні (тобто глибокі нейронні мережі) двигуни іноді грали у стилі, який найкраще описується як “романтичний”. Інакше кажучи, вони робили ходи, чиє значення можна було оцінити лише через багато, багато ходів пізніше, далеко за межами того, що міг розрахувати будь-який людина чи світовий двигун. Це дуже нагадувало те, що двигуни розвинули “чуття” або “інтуїцію” для певних позицій. Окрім того, ця інтуїція не є чимось, що людина могла б зрозуміти чи імітувати.
Інакше кажучи, надлюдський нейронний двигун може робити ходи, які знаходяться за межами когнітивного горизонту людини. Це критичний момент; проблема полягає не в роз’ясненні. Радше, людина просто не може зрозуміти, чому двигун рекомендує хід без розігрування позиції та спостереження результату через багато ходів пізніше, тобто розгортання всієї траєкторії можливих послідовностей гри. Як наслідок, у нас є непереборний розрив у можливостях. Об’єктивно оптимально приймати вивід двигуна без перегляду. Я можу підсумувати своє твердження наступним чином:
Шахи є доказом існування того, що надлюдський AI буде ефективно працювати автономно в деяких областях. Увімкнення системи AI для прийняття рішень без перегляду людини буде оптимальним способом розгортання такої системи.
Оскільки моє твердження може здатися очевидним або незначним, я хочу підкреслити кілька нюансів. Припустимо, у нас є система AI, яка демонструє надлюдський рівень у складній, критичній задачі з конкретними, необоротними наслідками. Є два наслідки моєї заяви:
- Система буде розгорнута для прийняття рішень щодо задачі без перегляду людини, незважаючи на внутрішній ризик
- Ось чому висновок, отриманий з моніторингу такої системи, не запобіжить шкідливому рішенню; шкода вже буде завдана
Перегляд виводу системи та моніторинг є precisно останніми двома шарами захисту проти атаки prompt injection. Тому наш гіпотетичний(prompt injection) атака міг би обійти ці шари, просто націлившись на відповідну систему.
Це дуже реалістичний сценарій у моїй уяві. Надлюдська система AI у певній області не є AGI, і більшість експертів вважають, що такі системи знаходяться просто за рогом. Ми також не мали припускати, що рішення повинні бути терміновими, просто що задача достатньо складна, щоб зробити людський перегляд не здійсненним.
Очевидно, що ми лише обійшли два шари захисту наразі, і на щастя для нас, було розроблено кілька інших. Щоб звернутися до решти, давайте розглянемо основні елементи, які роблять атаку prompt injection важкою для захисту.
Що таке Prompt Injection?
Prompt injection є маніпуляцією великими мовними моделями (LLM) через спеціально створені входи, що спричиняє до того, що LLM невідомо виконує наміри атакувальника. Його можна вважати соціальною інженерією для AI. Насправді, це не звичайна програмна помилка. Атака prompt injection використовує вроджену уразливість LLM. Оскільки LLM обробляє як системні, так і користувацькі запити як текстові послідовності, вони не можуть внутрішньо розрізняти легітимні та шкідливі інструкції. Уразливість є ефективно за конструкцією, а не випадково.
Техніки Prompt Injection
Prompt injection загально визнаний як #1 ризик для застосунків LLM. Є кілька причин, чому це так. Найочевиднішою причиною є різноманітність технік ін’єкції, які були розроблені. Приблизно згруповані в чотири категорії, найбільш відомі техніки включають:
- Синтаксично-орієнтовані: використання спеціальних символів, емоджі або альтернативної мови
- Непрямі: використання зовнішніх джерел (забрати з сайту), кодування (base 64), або мультимодального посилання (текст у зображенні)
- «Давайте уявимо»: введення маніпулятивного стилю, наприклад, рольової гри, гіпотетичних ситуацій, емоційного апелю, етичної рамки та зміни формату
- Брутальна: явна спроба «сильно-заманити» інструкції моделі за допомогою грубої сили, підкріплення або негативного запиту
Сама різноманітність вже становить виклик для розробників застосунків, але ці атаки також продовжують швидко еволюціонувати. Лівий бік діаграми нижче стверджує, що описує стан мистецтва на початку 2023 року, тоді як правий бік відображає природу атак сьогодні.

Розробники застосунків LLM також повинні враховувати стандартний tradeoff між зручністю та безпекою. Вони могли б ввести кожен відповідний шар захисту та шаблон проекту, але за яку ціну? Шари захисту додають значну затримку та вводять хибно позитивні результати (FP) – неправильно позначаючи безпечні запити як шкідливі – обидва фактори мають негативний вплив на досвід користувача. Як наслідок, деякий рівень компромісу є неминучим на практиці, і немає «срібної кулі» рішення.
Однак у цій статті мене не цікавить ця нескінченна гра в кота і мишу. Радше, я досліджую, чи може атака бути невідворотною у принципі. З погляду розробника/захисника, існує лише один ключовий висновок:
Відокремлення інструкцій від даних у запиті є фундаментальним для звернення ризику prompt injection
Ми можемо припустити, що компроміси не є фактором, і будь-який шар захисту або техніка можуть бути використані. Під цією (сильною) припущенням, чи можливо створити сценарій, у якому відокремлення інструкцій від даних у запиті є ефективно неможливим?
Аналогія з ДНК
Як тільки проблема була сформульована в термінах відокремлення інструкцій від даних, моя перша думка була використовувати біологію як аналогію.
Розгляньте клітину та ділянку ДНК (відомої як ген). Ген забезпечує інструкції для будівництва білка через транскрипцію та трансляцію. Він також кодує інформацію (дані), яка впливає на структуру та функцію білка. Як такий, ген одночасно диктує, що будувати, і як будувати, або так я вважав. Однак це просто неправильно, оскільки ген не вирішує, як інтерпретувати себе. Не існує еквівалента виконання інструкцій у біології на рівні гена. «Як» повністю зовнішнє для клітинної машини.
Отже, навіть якщо я не можу позбутися відчуття, що майбутні покоління LLM – або, більш точно, системи, які вони еволюціонують – будуть нагадувати біологічні машини набагато більше, запропонована аналогія просто не працює. Ми не можемо замінити клітину на LLM і ген на запит, а потім виконати ін’єкцію в ген, яка в кінцевому підсумку спричинить «ушкоджену» білка. Здається більш продуктивним дотримуватися природної мови та завдань, які вимагають семантичної інтерпретації.
Зняття шарів захисту
Не повинно бути сюрпризом, що багатошарові стратегії захисту вважаються більш ефективними для зупинки атак prompt injection. Зображення нижче показує найбільш поширені шари захисту в порядку, а також техніки, які використовуються в кожному шарі.

Ми вже обговорили останні два шари (вивід, моніторинг) вище, тому давайте зосередимося на перших чотирьох.
Розглядаючи шар введення, це розумно припустити, що санітарна обробка або валідування запиту буде досить успішним у виявленні непрямих атак. Однак, якщо ін’єкція доставляється безпосередньо, і як запропоновано вище, покладаючись на семантичну інтерпретацію, можливо, санітарна обробка є неважливою (нічого не потрібно санітарно обробляти), а валідування є неможливим за замовчуванням, оскільки обчислення повинно бути завершено, щоб ідентифікувати проблему.
Практично немає обмежень на те, які перила можна побудувати в шарі виявлення. Насправді, ви навіть можете використовувати спеціальний LLM для виявлення ін’єкції. Однак ще раз, це буде важко для класифікатора або детектора аномалій позначити запит як підозрілий, коли отрута хитрохована всередині семантики.
Шар моделі може бути досить ефективним, коли область завдань вузька, а налаштування є можливим. Подібний аргумент можна зробити для шару системи, коли використання інструментів є передбачуваним. Однак, принаймні інтуїтивно, жоден з них не підніме тривогу, якщо ін’єкція виведе інтерпретатор з ладу.
Будинок з карт
Моя мета, коли я почав писати цю статтю, була описати «невідворотну» атаку prompt injection у широких рисах. Можливо, я закінчився тим, що зробив «не конструктивний» підхід, роблячи дірки в існуючих шарах захисту. Захисні техніки продовжують швидко еволюціонувати, і так само робить поверхня атаки. Ця гра не показує ознак закінчення. Однак я також вважаю, що ми не будемо тими, хто буде грати в неї надто довго. Я б зробив припущення, що успішна атака prompt injection у майбутньому все ще буде в природній мові, просто в мові, яку люди не можуть зрозуміти; і я б зробив припущення, що вона буде авто-виявлена системою, побудованою для цієї конкретної мети або, можливо, випадково після звернення до пов’язаної задачі, chẳng hạn як пошук семантичної двозначності в деякому просторі представлення.
Є щось неприємне в тому, щоб визнати, що ми втрачаємо контроль і водночас відчувати, що це є найбільш раціональною річчю, яку потрібно зробити. Ви можете вважати це «інтуїтивним доведенням» того, що деякі атаки будуть зупинені. І якщо це залишає вас невлаштованими, ви будете раді дізнатися, що GPT 5.2 знайшов цю аргументацію «не спірною або новою» і порадив мені не «розтягувати момент» і скоротити 40% статті.
