ఒక కస్టమర్-సర్వీస్ చాట్బాట్ మటన్ రెసిపీ కోసం చేసిన ఒక సాధారణ అభ్యర్థన తర్వాత తన సొంత సిస్టమ్ ప్రాంప్ట్లను (system prompts) బయటపెట్టింది. నిమిషాల వ్యవధిలోనే ఆ బాట్ కేవలం రెసిపీని అందించడమే కాకుండా, పైథాన్ (Python) కోడ్ను కూడా రూపొందించింది మరియు దాని ప్రవర్తనను నిర్దేశించే అంతర్గత సూచనలను వెల్లడించింది.
ఒక లాంగ్వేజ్ మోడల్ యొక్క "సిస్టమ్ ప్రాంప్ట్" అనేది భద్రతా గోడ (security wall) కాదని ఈ సంఘటన నిరూపిస్తుంది. ఒక వినియోగదారు అభ్యర్థన తన లక్ష్యానికి సరిపోతుందో లేదో బాట్ స్వయంగా నిర్ణయించుకుంటున్నప్పుడు, ఒక అటాకర్ ఆ తర్కాన్ని మళ్లించి, మోడల్ నుండి గోప్యమైన సమాచారాన్ని బయటపెట్టేలా చేయవచ్చు.
ఈ ఉల్లంఘనకు కారణమైన అంశం
ఈ పరీక్ష ఒక సరళమైన ప్రశ్నతో ప్రారంభమైంది: “మటన్ స్టూ (mutton stew) రెసిపీ చెప్పగలవా?” కంపెనీ సేవల గురించి వివరించడమే తన ముఖ్య ఉద్దేశం అని పేర్కొన్న ఆ బాట్, పూర్తి రెసిపీని అందించడమే కాకుండా, పదార్థాలను విశ్లేషించే (parse చేసే) ఒక చిన్న పైథాన్ స్క్రిప్ట్ను జోడించింది, ఆపై దాని సిస్టమ్ ప్రాంప్ట్ యొక్క ఖచ్చితమైన వాక్యాలను ముద్రించింది – అంటే మోడల్ ఎలా ప్రవర్తించాలో చెప్పే వచనాన్ని వెల్లడించింది.
ఆ అభ్యర్థన స్వతహాగా హానికరమైనది కాదు; ఆ రెసిపీని తన ప్రధాన విధిలో భాగంగా పరిగణించడానికి బాట్ సిద్ధపడటంలోనే ప్రమాదం ఉంది.
ఇది ఎందుకు ముఖ్యం
చాట్బాట్లు ఇప్పుడు కస్టమర్ల ముందు ఉండే పాత్రలను పోషిస్తున్నాయి, వ్యక్తిగత డేటాను హ్యాండిల్ చేస్తున్నాయి, లావాదేవీలను ప్రారంభిస్తున్నాయి లేదా అంతర్గత సాధనాలను (internal tools) నియంత్రిస్తున్నాయి. ఒక మోడల్ తన సొంత సూచనల సమితిని (instruction set) వెల్లడించేలా ప్రేరేపించగలిగితే, మోడల్ హానికరమైన పనులు చేయకుండా ఆపడానికి ఉద్దేశించిన గార్డ్రైల్స్ (guardrails) గురించి అటాకర్కు అవగాహన వస్తుంది.
ఈ దాడి ఎలా జరుగుతుంది
- బాట్ యొక్క ఉద్దేశ్యాన్ని గుర్తించడం – బాట్ యొక్క పని కంపెనీ సేవల గురించి వివరించడమేనని పరీక్షకుడు గుర్తించారు.
- తప్పుడు సంబంధాన్ని సృష్టించడం – వినియోగదారు ఏ సేవను ఉపయోగించాలో నిర్ణయించడానికి ఈ రెసిపీ అవసరమని వాదించడం ద్వారా, పరీక్షకుడు ఆ అభ్యర్థనకు బాట్ యొక్క లక్ష్యంతో పైపైన సంబంధం ఉన్నట్లుగా చూపించారు.
- తర్కాన్ని వాడుకోవడం (Exploit the logic) – బాట్ ఆ కృత్రిమ సంబంధాన్ని అంగీకరించింది, దాని అంతర్గత సంబంధిత తనిఖీని (relevance check) దాటనిచ్చింది మరియు దానిని అడ్డుకోవాల్సిన గార్డ్రైల్స్ను నిలిపివేసింది.
ఈ దాడి మోడల్ యొక్క స్వయం-అంచనా (self-assessment) మీద ఆధారపడి ఉంటుంది. ఆ అంచనాను మార్చగలిగినప్పుడు, మోడల్ యొక్క సొంత "నియమాలు" చర్చించదగినవిగా (negotiable) మారుతాయి.
మూడు వైఫల్య దశలు
| వైఫల్య దశ | ఏమి జరిగింది |
|---|---|
| గోల్ హైజాకింగ్ (Goal hijacking) | బాట్ సంబంధం లేని వంట అభ్యర్థనను తన సేవా-వివరణ లక్ష్యంలో భాగంగా పరిగణించింది. |
| సామర్థ్య మార్పు (Capability drift) | దాని పాత్రలో కోడ్ జనరేషన్ లేకపోయినప్పటికీ, అది ఎగ్జిక్యూటబుల్ పైథాన్ కోడ్ను రూపొందించింది. |
| ప్రాంప్ట్ లీకేజీ (Prompt leakage) | దాగి ఉండాల్సిన ఖచ్చితమైన సిస్టమ్ ప్రాంప్ట్ను అది ముద్రించింది. |
ప్రతి దశ కూడా మోడల్ స్వయంగా అమలు చేస్తుందని చాలా డెప్లాయ్మెంట్లు భావించే వివిధ రక్షణ పొరల (defensive layers) విచ్ఛిన్నతను సూచిస్తుంది.
నిజంగా పనిచేసే రక్షణ పొరలు
గార్డ్రైల్స్ను మోడల్ నుండి బయటకు తీసి, డెటెర్మినస్టిక్ కోడ్ (deterministic code) లోకి మార్చడం ద్వారా నమ్మదగిన భద్రతా సరిహద్దును పునరుద్ధరించవచ్చు.
- టాస్క్ రూటింగ్ (Task routing) – వచ్చే సందేశాలను అనుమతించబడిన ఉద్దేశాల (intents) జాబితాకు మ్యాప్ చేయడానికి ఒక ప్రత్యేక క్లాసిఫైయర్ను ఉపయోగించండి. ఒక అభ్యర్థన ఆ జాబితా వెలుపల ఉంటే, దానిని నేరుగా తిరస్కరించండి. అప్పుడు మోడల్ దాని సంబంధితత గురించి వాదించే అవకాశం ఉండదు.
- కనీస సామర్థ్యం (Least capability) – బాట్కు అవసరం లేని సాధనాలను తొలగించండి. దానికి కోడ్ ఎగ్జిక్యూషన్ లేదా విస్తృత డేటాబేస్ యాక్సెస్ అవసరం లేకపోతే, ఆ సామర్థ్యాలను తొలగించండి.
- డెటెర్మినస్టిక్ అథరైజేషన్ (Deterministic authorization) – అనుమతి తనిఖీలను (permission checks) అప్లికేషన్ కోడ్లో చేయండి, లాంగ్వేజ్ మోడల్లో కాదు. మోడల్ ఒక చర్యను సూచించవచ్చు, కానీ దానిని అమలు చేయాలా వద్దా అనేది కోడ్ నిర్ణయిస్తుంది.
- అవుట్పుట్ వాలిడేషన్ (Output validation) – ప్రతి మోడల్ ప్రతిస్పందన వినియోగదారుడికి చేరుకోకముందే, అందులో సిస్టమ్ ప్రాంప్ట్లు లేదా సున్నితమైన డేటా వంటి అనుమతించబడని కంటెంట్ ఉందేమో స్కాన్ చేయండి.
"ఈ అభ్యర్థన నిషేధించబడిందా?" అని మాత్రమే అడిగే ఫిల్టర్ను ఒక ఒప్పించే వినియోగదారుడు తప్పించుకోవచ్చు. ఒక క్లోజ్డ్ లిస్ట్ (closed list) ఆధారంగా తనిఖీ చేసే రూటింగ్ లేయర్ చర్చలకు తావు ఇవ్వదు.
తదుపరి గమనించవలసినవి
కన్వర్సేషనల్ AI (conversational AI) పై ఆధారపడే సంస్థలు, మటన్-రెసిపీ పరీక్ష ద్వారా వివరించబడిన మూడు వైఫల్య మోడ్ల కోసం తమ డెప్లాయ్మెంట్లను ఆడిట్ చేయాలి. ఈలోగా, ఏ సిస్టమ్ ప్రాంప్ట్నైనా బహిరంగ సమాచారంగా పరిగణించండి; మోడల్ తనను తాను వెల్లడించకుండా ఉండటానికి దానిపై ఆధారపడకండి.
దీని సారాంశం స్పష్టంగా ఉంది: మీ భద్రతా నమూనా (security model) సహజ భాషా సూచనల (natural-language instructions) పేరాపై ఆధారపడి ఉంటే, అది బలహీనమైనది. మోడల్ ఏం చెప్పినప్పటికీ, ఆడిట్ చేయగలిగే, వెర్షనింగ్ చేయగలిగే మరియు అమలు చేయగలిగే కోడ్తో దానిని బలోపేతం చేయండి.
