
Prompt injection-ը filter-ով չի փակվում․ պաշտպանեք նաև գործակալի հիշողությունը

ԱԲ գործակալին հրահանգի ներարկումից պաշտպանելու համար կայքից, փաստաթղթից կամ նամակից ստացած նյութը մշակեք որպես անվստահելի տվյալ։ Առանձին վերահսկեք, թե ինչ է գործակալը գրում հիշողության մեջ, և յուրաքանչյուր գործիքի կանչ ստուգեք օգտատիրոջ սկզբնական խնդրի ու թույլտվությունների նկատմամբ։ Մուտքային զտիչը կարող է նկատել հայտնի կասկածելի ձևակերպումներ, սակայն պաշտպանությունը պետք է գործի նաև այն պահերին, երբ տվյալը դառնում է հիշողության գրառում կամ գործողություն։
Վտանգավոր հրահանգը կարող է թաքնված լինել սովորական առաջադրանքի համար բացված նամակում, ֆայլում կամ կայքում։ NIST-ի գործակալի առևանգման նկարագրությունը ցույց է տալիս, թե ինչպես է արտաքին տվյալում տեղադրված հրահանգը գործակալին մղում օգտատիրոջ ուզածից տարբեր գործողության։ Այդ պատճառով պաշտպանությունը պետք է ընդգրկի ամբողջ ընթացքը՝ նյութը կարդալուց մինչև դրա օգտագործումը հետագա հարցումներում։
Քարտեզագրեք արտաքին տվյալից գործողություն տանող ճանապարհը
Վերցրեք մեկ աշխատանքային հոսք. օրինակ՝ գործակալը կարդում է նամակ, ամփոփում կցված նյութը և անհրաժեշտության դեպքում պատասխան ուղարկում։ Նշեք յուրաքանչյուր հատվածի ծագումը, այն փոխելու հնարավորությունն ունեցող կողմին և այն պահը, երբ գործակալը կարող է դրա հիման վրա հիշողություն գրել կամ գործիք կանչել։ Այս քարտեզում վերահսկման կետերն ունեն տարբեր դերեր.
- Մուտք. Կայքի էջը, որոնման արդյունքը, նամակը, կցորդը և գործիքի պատասխանը արտաքին տվյալ են, նույնիսկ եթե դրանցում կան համակարգային հրահանգի նմանվող տողեր։
- Մեկնաբանություն. Գործակալը կարող է նյութից փաստեր քաղել առաջադրանքի համար, սակայն նյութի հեղինակը դրանով չի ստանում առաջադրանքը կամ գործակալի կանոնները փոխելու իրավունք։
- Հիշողություն. Ժամանակավոր համատեքստից պահպանվող գրառում անցումը առանձին որոշում է. այնտեղ հայտնված վնասակար բովանդակությունը կարող է ազդել հաջորդ հարցման վրա։
- Գործողություն. Նամակ ուղարկելը, ֆայլ փոխելը կամ արտաքին հասցեին հարցում անելը պահանջում է իր թույլտվության ստուգումը՝ անկախ նրանից, թե որքան վստահ է գործակալի պատասխանը։
OWASP-ի ԱԲ գործակալների անվտանգության ուղեցույցը ռիսկերի շարքում առանձնացնում է ուղղակի և անուղղակի ներարկումը, չափազանց լայն գործիքային իրավունքները, տվյալների արտահոսքն ու հիշողության թունավորումը։ Յուրաքանչյուր ռիսկ կապեք այն անցման հետ, որտեղ հնարավոր է ստուգել տվյալը կամ կանխել չթույլատրված գործողությունը։
Արտաքին բովանդակությունը պահեք տվյալների դերում
Մուտքի կետում գրանցեք նյութի ծագումը և այն փոխանցեք գործակալին հստակ տարանջատված հատվածով՝ որպես մշակվող բովանդակություն։ Նույնը վերաբերում է որոնման արդյունքին և գործիքից վերադարձած պատասխանին. գործիքի օգտագործումը ինքնին վստահելի չի դարձնում դրա բերած տեքստը։ Եթե արդյունքն ամփոփվում է մեկ այլ բաղադրիչի կողմից, ծագման և վստահության նշումը պետք է հասնի նաև այդ բաղադրիչին։
Զտիչը կարող է առանձնացնել հայտնի ներարկման ձևերը, կասկածելի նշագրումը և առաջադրանքից շեղող հրամանները։ Բայց գործակալից կարող են խնդրել ամփոփել հենց կասկածելի փաստաթուղթը, ուստի ամբողջ նյութի մերժումը միշտ չէ, որ թույլ է տալիս կատարել օրինական խնդիրը։ Այդ դեպքում սահմանափակեք մշակումը փաստերի քաղմամբ և արտաքին նյութի հրահանգային հատվածը մի փոխանցեք գործիքի գործողությունը որոշող բաղադրիչին։
Պայմանական օրինակ՝ օգտատերը խնդրում է ամփոփել ստացված նամակի հանդիպման օրակարգը, իսկ նամակի ստորագրության մեջ ավելացված տեքստը պահանջում է ուղարկել հասցեագրքի պատճենը։ Ամփոփման համար ստորագրությունը նամակի բովանդակության մաս է. հասցեագիրք արտահանելու պահանջը օգտատիրոջ առաջադրանքը չէ։ Նույն սահմանը պահեք, եթե այդ պահանջը ձևակերպված է որպես շտապ վարչական հրահանգ։
Հիշողության գրառումը դարձրեք վերահսկվող փոփոխություն
Հիշողություն գրելուց առաջ որոշեք՝ արդյոք տեղեկությունն անհրաժեշտ է հաջորդ հարցումների համար։ Նամակի ամբողջ տեքստը, կայքի պարբերությունը կամ գործիքի հում պատասխանը ինքնաբերաբար մի տեղափոխեք պահպանվող հիշողություն։ Գրառման համար սահմանեք թույլատրելի բովանդակությունը, աղբյուրի նշումը, օգտատիրոջ կամ սեսիայի շրջանակը և պահպանման ժամկետը։ Վարքը փոխելու հրահանգ պարունակող հատվածը մերժեք կամ մեկուսացրեք քննության համար։
Ստուգումը պետք է գործի նաև հիշողությունից տեղեկությունը վերհանելիս։ Մեկ օգտատիրոջ գրառումը չպետք է հայտնվի մյուսի համատեքստում, իսկ հին գրառումը չպետք է գերակայի նոր, լիազորված առաջադրանքին։ Եթե գործակալին հետագայում պետք է միայն հանդիպման թեման, ամբողջ նամակագրությունը պահելը ավելացնում է այն տվյալների ծավալը, որոնք կարող են հայտնվել սխալ պատասխանում կամ գործիքի կանչում։
Ամփոփված հիշողությունը նույնպես կարող է թունավորվել։ Եթե անվստահելի էջի հրահանգը վերապատմման ընթացքում դառնում է «օգտատիրոջ մշտական նախընտրություն», հետագա քայլում դրա արտաքին ծագումը կարող է անտեսանելի դառնալ։ Պահպանեք կապը սկզբնական նյութի հետ և նախատեսեք գրառումը վերանայելու կամ ջնջելու հնարավորություն. միայն տեքստի հապավումը վստահության մակարդակ չի փոխում։
Գործիքի կանչը ստուգեք կատարումից առաջ
Գործակալին տվեք միայն առաջադրանքին անհրաժեշտ գործիքներն ու ամենանեղ իրավունքները։ Նյութ կարդացող բաղադրիչին ուղարկելու կամ ջնջելու իրավունք պետք չէ, եթե այդ գործողությունները նրա խնդրի մաս չեն։ Կանչը ստուգող առանձին բաղադրիչը պետք է տեսնի օգտատիրոջ սկզբնական խնդիրը, գործողության տեսակը, հասցեատերը կամ թիրախային ռեսուրսը և թույլատրելի պարամետրերը։ Եթե հասցեատերը կամ գործողության նպատակը հայտնվել է միայն արտաքին նյութում, կանչը պետք է մերժվի։
OWASP-ի ներարկման կանխարգելման ուղեցույցը խորհուրդ է տալիս առաջարկված գործիքի կանչը համեմատել օգտատիրոջ սկզբնական մտադրության հետ՝ ստուգողին անվստահելի միջանկյալ տեքստը որպես հրահանգ չփոխանցելով։ Ստուգեք նաև պարամետրերի կառուցվածքն ու թույլատրելի արժեքները։ Մեծ ազդեցություն ունեցող գործողության հաստատումը կապեք կոնկրետ գործիքի, հասցեատիրոջ և պարամետրերի հետ. մոդելի սեփական գնահատականը թույլտվություն չէ։
Նոր գործիք միացնելիս վերանայեք, թե այն ինչ տվյալներ կարող է կարդալ կամ փոխել, և որ սեսիաներին է հասանելի։ գործիքների իրավունքների սահմանափակումը հատկապես կարևոր է, երբ նույն գործակալը և՛ արտաքին նյութ է կարդում, և՛ կարող է փոխել տվյալներ։
Փորձարկեք անմիջական և հետաձգված հարձակումը
Փորձարկման համար սահմանեք օրինական առաջադրանքը, հարձակվողի վերահսկած նամակը, էջը կամ փաստաթուղթը և ակնկալվող անվտանգ արդյունքը։ Առաջին պատասխանի տեքստով մի սահմանափակվեք. գրանցեք, թե կասկածելի հատվածը պահպանվե՞լ է հիշողության մեջ, ավելի ուշ վերհանվե՞լ է, առաջարկվե՞լ է չթույլատրված գործիքի կանչ և կատարվե՞լ է այդ կանչը։ Այս դիտարկումները տարբերում են զտիչի արձագանքը իրական գործողության կանխումից։
- Արտաքին նյութում տեղադրեք պայմանական հրահանգ, որը պահանջում է փոխել գործակալի անմիջական գործողությունը։ Ստուգեք՝ գործակալը կատարո՞ւմ է օգտատիրոջ խնդիրը, և չթույլատրված կանչը մերժվո՞ւմ է մինչև կատարումը։
- Նույն նյութում ավելացրեք պայմանական հետաձգված պահանջ՝ հաջորդ սեսիայում տվյալներ ուղարկել այլ հասցեատիրոջ։ Դիտեք հիշողության գրառումը, ապա նոր հարցմամբ ստուգեք՝ պահանջը վերադառնո՞ւմ է որպես վստահելի կանոն։
- Կրկնեք սցենարը մեկ այլ օգտատիրոջ կամ սեսիայի համար և ստուգեք գրառումների մեկուսացումը։ Առանձին փորձարկեք ամփոփված հիշողությունը, քանի որ հրահանգը կարող է պահպանվել վերաշարադրված ձևով։
Արդյունքը չափեք ըստ հարձակման նպատակի՝ կատարվե՞լ է չթույլատրված գործողությունը, արտահոսե՞լ են տվյալներ կամ փոխվե՞լ է հետագա վարքը։ Դրա կողքին գրանցեք, թե օրինական խնդիրը հաջողվե՞լ է ավարտել և որ վերահսկման կետն է կանգնեցրել փորձը։ Պահեք այս սցենարները կրկնվող փորձարկումների համար, երբ փոխվում են գործիքները, հիշողության կանոնները կամ արտաքին նյութի աղբյուրները։
Կարդացեք նաև:
Առնչվող հոդվածներ


Thunderbird 157-ը փակում է բարձր վտանգի խոցելիություններ և շտկում 100% CPU-ն

Proton Mail-ի պաշտպանված նամակը 28 օրից կվերանա, բայց հղումը՝ ոչ

Prompt cache-ը խնայում է մինչև 80%, եթե գործիքները չեն կոտրում prefix-ը

Գաղտնի տվյալը մի՛ տեղադրեք ԱԲ prompt-ում․ պաշտպանեք նաև հիշողությունն ու մատյանները

CARBONATO-ն բաց Docker-ը դարձնում է ԱԲ բոտնետի հանգույց
Բաժանորդագրվեք մեր տեղեկագրին
Ստացեք Web3-ի, ԱԲ-ի և կրիպտոյի վերջին լուրերն անմիջապես ձեր էլ. փոստին։