Лідери думок
Атака ін’єкції запиту, якої не можна попередити: мрійливість чи реальна проблема?

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

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

Ми вже обговорили останні два шари (вивід, моніторинг) вище, тому давайте зосередимося на перших чотирьох.
Розглядаючи шар введення, це досить розумно припустити, що санітарна обробка або валідування запиту буде досить успішним у виявленні непрямих атак. Однак, якщо ін’єкція доставляється безпосередньо, і як запропоновано вище, покладаючись на семантичну інтерпретацію, можливо, санітарна обробка є неважливою (нічого не потрібно санітарно обробляти), і валідування є неможливим за замовчуванням, оскільки обчислення повинно бути завершено для ідентифікації питання.
Є практично жодних обмежень на те, які периліся ви можете побудувати у шарі виявлення. Фактично, ви навіть можете використовувати спеціальний LLM для виявлення ін’єкції. Однак ще раз, це буде важко для класифікатора або детектора аномалій позначити запит як підозрілий, коли отрута хитро схована в семантиці.
Шар моделі може бути досить ефективним, коли область завдань вузька, а настройка є можливою. Подібний аргумент можна зробити для шару системи, коли використання інструментів є передбачуваним. Однак, принаймні інтуїтивно, жоден з них не підніме тривогу, якщо ін’єкція відкине інтерпретатор.
Будинок з карт
Моя мета, коли я почав писати цю статтю, була описати «непередбачувану» атаку ін’єкції запиту у широких рисах. Можливо, я закінчився тим, що слідував «не-конструктивному» підходу, роблячи дірки в існуючих шарах захисту. Техніки захисту продовжують розвиватися швидко, і так само робить поверхня атаки. Ця гра не показує ознак закінчення. Однак я також вважаю, що ми не будемо тими, хто буде грати в неї надто довго. Я б припустив, що успішна ін’єкція запиту в майбутньому все ще буде в природній мові, просто мова, яку люди не можуть зрозуміти; і я б припустив, що це буде авто-виявлено системою, побудованою для цієї конкретної мети або, можливо, випадково після звернення до пов’язаного завдання, такого як пошук семантичної двозначності в деякому просторі представлення.
