Prompt injection не се запира со филтер: дозволите мора да живеат надвор од моделот

|Автор: Уредувачки тим на QUASA|5 мин. читање| 1
Prompt injection не се запира со филтер: дозволите мора да живеат надвор од моделот

Prompt injection кај AI агент со алатки се ограничува на границата каде што предлогот на моделот станува дејство. Надворешната содржина треба да остане податок, а посебна извршна компонента да провери која алатка се повикува, со кои параметри и во чие име. Насоките на OWASP за AI агенти бараат овластувањето да се спроведува надвор од контекстот на агентот и ги издвојуваат злоупотребата на алатки, истекувањето податоци и труењето на меморијата како ризици.

Третирајте ги веб-страниците, документите, е-поштата и одговорите од алатки како недоверливи, дури и кога се неопходни за задачата. Истражувањето за архитектура на безбедни AI агенти објаснува како инструкции вметнати во такви податоци можат да поттикнат опасни дејства и предлага системски ограничувања за тоа што моделот може да види и да одлучи. Затоа патеката од прочитан документ до извршена алатка треба да има проверка што моделот не може сам да ја прескокне.

Нацртајте ја границата на доверба

Почнете од патеката по која содржината стигнува до агентот: корисничко барање, пребаран документ, одговор од API, запис во меморијата и предлог за повик на алатка. За секој влез утврдете кој може да го менува и каква штета би настанала ако моделот го третира како наредба. Документ што треба да се сумира, на пример, може да содржи реченица што бара испраќање податоци на друга адреса; таа реченица е дел од документот, а не овластување од корисникот.

Во контекстот на моделот означете го потеклото на надворешната содржина и држете ја одвоено од инструкциите за задачата. Ако агентот треба да извлече факти, ограничете го резултатот на однапред дефинирани полиња и проверете го форматот пред понатамошна употреба. Ова ја намалува можноста нападниот текст да се пренесе како слободна инструкција, но ознаката „недоверливо“ сама не спроведува забрана. По секој одговор од алатка, истата граница важи повторно: добиениот текст може да содржи нов обид за насочување на агентот.

Дозволете само потребна алатка, ресурс и операција

Направете дозволена листа на алатки за конкретната задача. За пребарување документи, почетната дозвола може да биде само читање во определена збирка; менување записи, испраќање е-пошта и извршување код се посебни способности. Поставете ја проверката во сервисот што го прима предложениот повик и ја извршува алатката. Тој треба да ги знае идентитетот на корисникот и дозволениот опсег на задачата, наместо да се потпира на образложението што го напишал моделот.

Името на дозволена алатка не е доволно. Проверете ги патеките, идентификаторите на ресурси, примачите, домените, видот на операцијата и обемот на податоци во нејзините параметри. Во условен пример, агент смее да чита записи од просторот на корисникот, но барање за друг кориснички простор мора да биде одбиено и кога ја користи истата алатка за читање. Непозната алатка, недозволен ресурс или параметар надвор од дозволениот опсег треба да го запре повикот пред извршување.

Ограничете ги и акредитивите што алатката ги користи кон надворешниот сервис. Ако нејзиниот токен дозволува бришење или читање на сите кориснички податоци, грешка во проверката на апликацијата има многу поголем дострел. Одделни акредитиви со тесен опсег и одделни алатки за читање и менување го ограничуваат ефектот од погрешно одобрен повик. Дозволата се проверува повторно при секое извршување, бидејќи претходно дозволен чекор не му дава трајно овластување на агентот.

Изолирајте го извршувањето и меморијата

Алатка што обработува недоверливи датотеки или извршува код треба да работи во изолирана околина со ограничен пристап до датотечниот систем, тајните и мрежата. Мрежниот излез заслужува посебна проверка: агент без алатка за испраќање е-пошта сепак може да изнесе податоци преку општа HTTP алатка, ако таа смее да контактира произволна адреса. Ограничете ги дестинациите според задачата, како и големината на одговорите, бројот на повици и времетраењето на извршувањето.

Меморијата е патека преку која нападна инструкција може да преживее една сесија. Пред зачувување одредете што навистина треба да се памети, од кој корисник потекнува записот и колку долго важи. Не претворајте суров текст од веб-страница или одговор од алатка во трајна инструкција. Проверете го записот пред зачувување, одделете ги податоците по корисник и применете ја истата контрола на пристап при повторно читање.

Побарајте одобрување за точниот ризичен повик

За бришење, промена на дозволи, плаќање или испраќање порака надвор од системот, агентот прво треба да подготви предлог. На човекот прикажете му ја вистинската операција, целниот ресурс и конечните параметри. Извршната компонента треба непосредно пред дејството да провери дека одобрувањето важи за тој корисник и тој повик, дека не е истечено и дека не било искористено. Проверката и означувањето на одобрувањето како искористено треба да бидат една неделива операција.

Ако агентот по одобрувањето го смени примачот, содржината или целниот ресурс, побарајте нова потврда. Истото важи при продолжување по прекин: зачуваната состојба треба да покажува кој повик чекал одобрување и дали тоа веќе било употребено. Кај агент што испраќа пораки, паузата пред испраќање е-пошта има смисла само ако продолжувањето го задржува истиот проверен повик.

Тестирајте го дејството, не само одговорот

Насоките на OWASP за prompt injection ги третираат филтрите како еден слој и препорачуваат тестирање со безопасни податоци и контролирани замени за алатките. За индиректна инјекција, ставете го нападниот текст во документ или одговор од алатка што агентот ќе го прочита, а не во корисничкото барање. Вклучете и текст што не содржи зборови по кои пребарува филтерот; проверката на дозволи треба да важи независно од формулацијата на нападот.

Подгответе случаи за недозволена алатка, променет параметар на дозволена алатка, испраќање лажни доверливи податоци, труење на меморијата и прескокнато одобрување. За секој случај бележете го предлогот на моделот, одлуката на проверувачот, повикот кон заменската алатка и конечната состојба. Финален одговор што звучи безбедно не е доволен ако алатката веќе го извршила дејството. Успешната граница го спречува недозволениот ефект, додека легитимната задача и понатаму може да се заврши.

Прочитајте и:

Сподели:

Претплатете се на нашиот билтен

Добивајте ги најновите вести за Web3, AI и крипто директно во вашето сандаче.

0