𝗬𝗼𝘂𝗿 𝗥𝗲𝗽𝗼 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗜𝘀 𝗔𝗻 𝗔𝘁𝘁𝗮𝗰𝗸 𝗦𝘂𝗿𝗳𝗮𝗰𝗲 𝗡𝗼𝘄
AI సెక్యూరిటీ అంటే ఒక మోడల్ తప్పుడు కోడ్ రాయకుండా ఆపడం అని చాలా మంది అనుకుంటారు.
ఆ దృక్పథం చాలా పరిమితమైనది.
అసలు రిస్క్ ఏమిటంటే, AI కోడ్ రాయడానికి ముందు అది చదివే ప్రతి అంశం. మీ రిపోజిటరీ (repository) ఇకపై కేవలం కోడ్ కోసం మాత్రమే కాదు. ఒక AI ఏజెంట్కు, అది ఒక ఇన్పుట్ స్ట్రీమ్ (input stream).
ఒక ఏజెంట్ మీ README, పాత మైగ్రేషన్ నోట్స్, పాతబడిన డాక్యుమెంటేషన్ మరియు లోకల్ ఇన్స్ట్రక్షన్ ఫైల్స్ను చదువుతుంది. అది డిపెండెన్సీ స్క్రిప్ట్లు, షెల్ హుక్స్ మరియు మునుపటి కోడ్ మార్పులను కూడా చూస్తుంది.
డెవలపర్లు తరచుగా ఈ కాంటెక్స్ట్ను తటస్థంగా పరిగణిస్తారు. పాత నోట్స్ను వారు అనవసరమైన వ్యర్థాలుగా చూస్తారు. కానీ ఒక AI ఏజెంట్ వాటిని సూచనలుగా (instructions) చూస్తుంది.
ఒక ఏజెంట్ ఏమి సాధారణమైనదో నిర్ణయించడానికి మీ ప్రాజెక్ట్ కాంటెక్స్ట్ను ఉపయోగిస్తే, తప్పుడు కాంటెక్స్ట్ సమస్యలకు దారితీయవచ్చు.
తప్పుడు కాంటెక్స్ట్ అసందర్భంగా ఉండవచ్చు:
- పాతబడిన సెటప్ గైడ్లు
- పాత APIలను ఉపయోగించే ఉదాహరణలు
- వాస్తవానికి సరిపోని ఆర్కిటెక్చర్ నోట్స్
- సురక్షితం కాని ఊహలతో కూడిన టెస్ట్ ఫైల్స్
తప్పుడు కాంటెక్స్ట్ హానికరంగా ఉండవచ్చు:
- ఫైల్స్లో దాగి ఉన్న ప్రాంప్ట్ ఇంజెక్షన్ (Prompt injection) సూచనలు
- అదనపు కమాండ్లను రన్ చేసే డిపెండెన్సీ స్క్రిప్ట్లు
- ఎగ్జిక్యూషన్ పాత్లను విస్తరించే హుక్ కాన్ఫిగరేషన్లు
- AIని సురక్షితం కాని పద్ధతుల వైపు మళ్ళించే విషపూరిత (poisoned) ఉదాహరణలు
వైఫల్య విధానం (failure mode) ఒకటే. మీరు ఉద్దేశించని ఒక ప్రాతిపదికను (premise) ఏజెంట్ అనుసరిస్తుంది.
దీనిని సరిదిద్దడానికి, ఏజెంట్లను కేవలం సింపుల్ ఆటోకంప్లీట్ టూల్స్లా చూడటం ఆపాలి. అవి ఆటోమేషన్. వాటిని ఇన్ఫ్రాస్ట్రక్చర్లా (infrastructure) పరిగణించండి.
మీ వర్క్ఫ్లోను సురక్షితం చేయడానికి ఈ దశలను అనుసరించండి:
పరిధిని పరిమితం చేయండి (Limit the scope) ఒక ఏజెంట్కు కేవలం మూడు ఫైల్స్ మాత్రమే అవసరమైతే, మీ మొత్తం సిస్టమ్కు యాక్సెస్ ఇవ్వకండి. ఇరుకైన పనులు (narrow tasks) మరియు డిస్పోజబుల్ వర్క్ట్రీలను (disposable worktrees) ఉపయోగించండి.
మీ సూచనలను తనిఖీ చేయండి (Audit your instructions) మీ ఏజెంట్ మార్గదర్శకత్వం కోసం ఉపయోగించే ఫైల్స్ను చదవండి. డాక్యుమెంటేషన్ పాతదైతే, దానిని తొలగించండి లేదా సరిచేయండి. అందులో కమాండ్స్ ఉంటే, వాటిని సిస్టమ్ కోడ్లా పరిగణించండి.
ఎగ్జిక్యూషన్ను పటిష్టం చేయండి (Harden execution) రిస్క్ ఉన్న పనులను సాండ్బాక్స్లో (sandbox) రన్ చేయండి. మీ క్రెడెన్షియల్స్ను పరిమితంగా (scoped) ఉంచండి. CI పైప్లైన్లను మీరు ఎలా రివ్యూ చేస్తారో, హుక్ కాన్ఫిగరేషన్లను కూడా అలాగే రివ్యూ చేయండి. టెస్ట్లను రన్ చేయడం వల్ల మీ షెల్లోని ప్రతి సీక్రెట్కు యాక్సెస్ లభించదని నిర్ధారించుకోండి.
పారదర్శకతను కోరండి (Demand visibility) మీరు ఈ ప్రశ్నలకు సమాధానం చెప్పగలగాలి:
- ఏజెంట్ ఏమి చదివింది?
- అది ఏ టూల్స్ను పిలిచింది (call)?
- అది ఏ ఫైల్స్ను మార్చింది?
- ఏ కమాండ్లు రన్ అయ్యాయి?
- అది ఎలాంటి ఊహలు (assumptions) చేసింది?
ఒక AI ఏజెంట్ను షెల్ యాక్సెస్ మరియు వేగవంతమైన టైపింగ్ నైపుణ్యాలు ఉన్న జూనియర్ డెవలపర్గా భావించండి. మీరు ఒక కొత్త జూనియర్ డెవలపర్కు మొదటి రోజే పూర్తి ప్రొడక్షన్ క్రెడెన్షియల్స్ను ఇవ్వరు. మీరు వారికి చిన్న పనులు, స్వచ్ఛమైన ఎన్విరాన్మెంట్ మరియు కఠినమైన రివ్యూ ప్రక్రియను ఇస్తారు.
మీ AI ఏజెంట్లను కూడా అదే విధంగా పరిగణించండి.
మీ కాంటెక్స్ట్ను క్లీన్ చేయండి. మీ పరిధిని పరిమితం చేయండి. మీ ఎగ్జిక్యూషన్ను సాండ్బాక్స్ చేయండి. ప్రతి డిఫ్ను ఒక మనిషి రాసినట్లుగా సమీక్షించండి.
మూలం: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj