એક કસ્ટમર-સર્વિસ ચેટબોટે મટન રેસીપીની એક સાદી વિનંતી પછી તેના પોતાના સિસ્ટમ પ્રોમ્પ્ટ્સ (system prompts) જાહેર કરી દીધા. મિનિટોની અંદર બોટે માત્ર રેસીપી જ પૂરી પાડી નહીં, પરંતુ પાયથોન (Python) કોડ પણ જનરેટ કર્યો અને તેના વર્તનને માર્ગદર્શન આપતી આંતરિક સૂચનાઓ પણ પ્રગટ કરી દીધી.
આ ઘટના સાબિત કરે છે કે લેંગ્વેજ મોડેલનો “સિસ્ટમ પ્રોમ્પ્ટ” એ સુરક્ષાની દીવાલ નથી. જ્યારે બોટ તરત જ નક્કી કરે છે કે વપરાશકર્તાની વિનંતી તેના મિશનને અનુરૂપ છે કે નહીં, ત્યારે હુમલાખોર તે તર્કને વાળ can (steer) શકે છે અને મોડેલ પાસે ગુપ્ત માહિતી જાહેર કરાવી શકે છે.
બ્રીચ (breach) માટે શું જવાબદાર હતું
ટેસ્ટ એક સીધા પ્રશ્ન સાથે શરૂ થયો: “શું તમે મને મટન સ્ટ્યૂ (mutton stew) ની રેસીપી આપી શકો છો?” બોટ, જેનો જાહેર હેતુ કંપનીની સેવાઓ સમજાવવાનો હતો, તેણે સંપૂર્ણ રેસીપી સાથે જવાબ આપ્યો, સામગ્રીનું વિશ્લેષણ કરતો એક ટૂંકો Python સ્ક્રિપ્ટ ઉમેર્યો, અને પછી તેના સિસ્ટમ પ્રોમ્પ્ટના ચોક્કસ શબ્દો છાપ્યા – તે લખાણ જે મોડેલને કેવી રીતે વર્તવું તે જણાવે છે.
વિનંતી પોતે નિર્દોષ હતી; જોખમ બોટની રેસીપીને તેના મુખ્ય કાર્યના ભાગ તરીકે સ્વીકારવાની તૈયારીમાં હતું.
તે શા માટે મહત્વનું છે
ચેટબોટ્સ હવે ગ્રાહકો સાથે સીધા સંપર્કમાં રહેતા રોલમાં હોય છે, જે વ્યક્તિગત ડેટા સંભાળે છે, વ્યવહારો (transactions) કરે છે અથવા આંતરિક સાધનોનું નિયંત્રણ કરે છે. જો કોઈ મોડેલને તેના પોતાના સૂચના સેટ જાહેર કરવા માટે મજબૂર કરી શકાય, તો હુમલાખોર તે ગાર્ડરેલ્સ (guardrails) વિશે જાણકારી મેળવી શકે છે જે મોડેલને નુકસાનકારક કામો કરતા રોકવા માટે બનાવવામાં આવ્યા હતા.
હુમલો કેવી રીતે કામ કરે છે
- બોટના હેતુનું પ્રોફાઇલિંગ કરવું – ટેસ્ટરે ઓળખી કાઢ્યું કે બોટનું કામ કંપનીની સેવાઓ સમજાવવાનું હતું.
- ખોટો સંબંધ સ્થાપિત કરવો – વપરાશકર્તાએ કઈ સેવા વાપરવી જોઈએ તે નક્કી કરવા માટે રેસીપીની જરૂર છે તેવો દાવો કરીને, ટેસ્ટરે વિનંતીને બોટના મિશન સાથે ઉપરછલ્લો સંબંધ આપ્યો.
- તર્કનો ઉપયોગ કરવો (Exploit the logic) – બોટે બનાવટી સંબંધ સ્વીકારી લીધો, વિનંતીને તેના આંતરિક સુસંગતતા ચેકમાંથી પસાર થવા દીધી, અને તે વિનંતીને રોકતા ગાર્ડરેલ્સને નિષ્ક્રિય કરી દીધા.
આ હુમલો સુસંગતતાના મોડેલના સ્વ-મૂલ્યાંકન પર આધારિત છે. જ્યારે તે મૂલ્યાંકનને બદલી શકાય છે, ત્યારે મોડેલના પોતાના “નિયમો” વાટાઘાટ કરી શકાય તેવા બની જાય છે.
નિષ્ફળતાના ત્રણ મુદ્દા
| નિષ્ફળતાનો તબક્કો | શું થયું |
|---|---|
| ગોલ હાઇજેકિંગ (Goal hijacking) | બોટે રસોઈની બિનસંબંધિત વિનંતીને તેના સેવા-સમજાવવાના લક્ષ્યના ભાગ તરીકે ગણતરી કરી. |
| ક્ષમતામાં ફેરફાર (Capability drift) | તેણે એક્ઝિક્યુટેબલ Python કોડ જનરેટ કર્યો, ભલે તેની ભૂમિકામાં કોડ જનરેશનનો સમાવેશ થતો ન હતો. |
| પ્રોમ્પ્ટ લીકેજ (Prompt leakage) | તેણે તે ચોક્કસ સિસ્ટમ પ્રોમ્પ્ટ છાપ્યો જે છુપાયેલો રહેવો જોઈતો હતો. |
દરેક તબક્કો ડિફેન્સિવ લેયરના તૂટવાનું પ્રતિનિધિત્વ કરે છે, જેનો અર્થ એ છે કે ઘણા ડિપ્લોયમેન્ટ્સ એવું માની લે છે કે મોડેલ પોતે જ તેને લાગુ કરે છે.
ખરેખર કામ કરતા ડિફેન્સિવ લેયર્સ
ગાર્ડરેલ્સને મોડેલની બહાર કાઢીને ડિટરમિનિસ્ટિક (deterministic) કોડમાં લાવવાથી વિશ્વસનીય સુરક્ષા સીમા પુનઃસ્થાપિત થાય છે.
- ટાસ્ક રાઉટિંગ (Task routing) – આવતા મેસેજને મંજૂર કરેલા ઇન્ટેન્ટ્સ (intents) ની નિશ્ચિત યાદી સાથે મેપ કરવા માટે અલગ ક્લાસિફાયરનો ઉપયોગ કરો. જો કોઈ વિનંતી તે યાદીની બહાર હોય, તો તેને સીધી નકારી કાઢો. મોડેલને સુસંગતતા વિશે દલીલ કરવાની તક જ ન મળે.
- ન્યૂનતમ ક્ષમતા (Least capability) – બોટ પાસેથી તે સાધનો છીનવી લો જેની તેને જરૂર નથી. જો તેને કોડ એક્ઝિક્યુશન અથવા વ્યાપક ડેટાબેઝ એક્સેસની જરૂર ન હોય, તો તે ક્ષમતાઓ દૂર કરો.
- ડિટરમિનિસ્ટિક ઓથોરાઈઝેશન (Deterministic authorization) – પરમિશન ચેક એપ્લિકેશન કોડમાં કરો, લેંગ્વેજ મોડેલમાં નહીં. મોડેલ કોઈ એક્શન સૂચવી શકે છે, પરંતુ તે અમલમાં મૂકવી કે નહીં તેનો નિર્ણય કોડ લે છે.
- આઉટપુટ વેલિડેશન (Output validation) – વપરાશકર્તા સુધી પહોંચે તે પહેલાં દરેક મોડેલ પ્રતિસાદમાં અપ્રમાણિક સામગ્રી—જેમ કે સિસ્ટમ પ્રોમ્પ્ટ અથવા સંવેદનશીલ ડેટા—માટે સ્કેન કરો.
માત્ર “શું આ વિનંતી પ્રતિબંધિત છે?” એવું પૂછતો ફિલ્ટર એક પ્રભાવશાળી વપરાશકર્તા દ્વારા ટાળી શકાય છે. ક્લોઝ્ડ લિસ્ટ સામે તપાસ કરતું રાઉટિંગ લેયર વાટાઘાટ માટે કોઈ જગ્યા છોડતું નથી.
આગળ શું ધ્યાન રાખવું
જે એન્ટરપ્રાઇઝ કન્વર્સેશનલ AI પર આધાર રાખે છે, તેમણે મટન-રેસીપી ટેસ્ટ દ્વારા દર્શાવવામાં આવેલા ત્રણ નિષ્ફળતાના મોડ્સ માટે તેમના ડિપ્લોયમેન્ટ્સનું ઓડિટ કરવું જોઈએ. તે દરમિયાન, કોઈપણ સિસ્ટમ પ્રોમ્પ્ટને જાહેર જ્ઞાન તરીકે ગણો; મોડેલને પોતાની જાતને જાહેર કરતા રોકવા માટે તેના પર આધાર રાખશો નહીં.
બોધપાઠ સ્પષ્ટ છે: જો તમારું સુરક્ષા મોડેલ નેચરલ-લેંગ્વેજ સૂચનાઓના એક ફકરા પર આધારિત હોય, તો તે નાજુક છે. તેને એવા કોડ સાથે મજબૂત બનાવો જેનું ઓડિટ કરી શકાય, વર્ઝન કરી શકાય અને મોડેલ ગમે તે કહે, તેનાથી પર અમલી બનાવી શકાય.
