మీ రిపో కాంటెక్స్ట్ ఇప్పుడు ఒక అటాక్ సర్ఫేస్
AI కోడింగ్ సెక్యూరిటీ అంటే కేవలం ఒక మోడల్ తప్పు కోడ్ రాయకుండా ఆపడం మాత్రమే కాదు.
అసలు ప్రమాదం ఏంటంటే, ఏజెంట్ కోడ్ రాయకముందు అది ఏమి చదువుతుందనే దానిపై ఆధారపడి ఉంటుంది. మీ రిపోజిటరీ ఇప్పుడు కేవలం కోడ్ కోసం మాత్రమే కాదు. అది ఇప్పుడు AI ఏజెంట్ల కోసం ఒక ఇన్పుట్ స్ట్రీమ్.
మీ రిపోలో ఉన్న ప్రతిదీ ఏజెంట్ను నడిపించే (steering) అంశంగా మారవచ్చు:
- పాత README ఫైళ్లు
- పాతబడిన మైగ్రేషన్ నోట్స్
- కాలం చెల్లిన డాక్యుమెంటేషన్
- దాగి ఉన్న ప్రాజెక్ట్ కన్వెన్షన్స్
- లోకల్ ఇన్స్ట్రక్షన్ ఫైళ్లు
- డిపెండెన్సీ స్క్రిప్ట్లు మరియు షెల్ హుక్స్
డెవలపర్లు తరచుగా ఈ ఫైళ్లను హాని లేని అనవసరమైన అంశాలుగా భావిస్తారు. కానీ ఒక AI ఏజెంట్ సామాజిక సందర్భాన్ని (social context) చూడలేదు. అది కేవలం టెక్స్ట్, టూల్స్ మరియు ప్యాటర్న్స్ను మాత్రమే చూస్తుంది. మీ డాక్యుమెంటేషన్ పాతది లేదా గందరగోళంగా ఉంటే, ఏజెంట్ ఆ గందరగోళాన్నే ప్రామాణికంగా (standard) తీసుకుంటుంది.
చెడు కాంటెక్స్ట్ రెండు రూపాల్లో వస్తుంది:
- బోరింగ్ ఎర్రర్స్ (Boring errors):
- పాతబడిన సెటప్ ఇన్స్ట్రక్షన్స్
- డిప్రికేటెడ్ (deprecated) APIలను ఉపయోగించే ఉదాహరణలు
- పాత ఆర్కిటెక్చర్ నోట్స్
- అడ్వర్సరియల్ అటాక్స్ (Adversarial attacks):
- ఫైళ్లలో ప్రాంప్ట్ ఇంజెక్షన్ (Prompt injection)
- హానికరమైన డిపెండెన్సీ స్క్రిప్ట్లు
- కోడ్ను సురక్షితం కాని ప్యాటర్న్స్ వైపు మళ్ళించే విషపూరితమైన (poisoned) ఉదాహరణలు
మీరు ఒక ఏజెంట్కు టెస్ట్లను రన్ చేయడానికి, ఫైళ్లను వెతకడానికి లేదా పుల్ రిక్వెస్ట్లను (pull requests) ఓపెన్ చేయడానికి అధికారం ఇచ్చినప్పుడు, మీరు ప్రమాద పరిధిని (blast radius) పెంచుతారు. హుక్ సిస్టమ్ (hook system) అనేది ఇప్పుడు కేవలం ఉత్పాదకత సాధనం మాత్రమే కాదు. అది ఆటోమేషన్. మీరు దానిని ఆటోమేషన్లాగే పరిగణించాలి.
మీ వర్క్ఫ్లో గురించి ఈ ప్రశ్నలు వేసుకోండి:
- హుక్ను ఎవరు ఎడిట్ చేయగలరు?
- ఏజెంట్ ఏ ఎన్విరాన్మెంట్ వేరియబుల్స్ను చూడగలదు?
- ఏజెంట్ డెవలపర్ క్రెడెన్షియల్స్ను పొందుతుందా?
- ఆ టూల్ రిపో బయట డేటాను రాస్తుందా?
ఏజెంట్లను మ్యాజిక్ టెక్స్ట్ బాక్సులుగా చూడకండి. వాటిని డెవలపర్ ఇన్ఫ్రాస్ట్రక్చర్గా పరిగణించండి.
మీ ఏజెంటిక్ వర్క్ఫ్లోను ఎలా సురక్షితం చేయాలి:
- పరిధిని తగ్గించండి: ఏజెంట్కు కేవలం మూడు ఫైళ్లు మాత్రమే అవసరమైతే, మొత్తం ప్రాజెక్ట్ను దానికి చూపించకండి.
- కాంటెక్స్ట్ను శుభ్రం చేయండి: పాత డాక్యుమెంట్లను లేదా పాత ఇన్స్ట్రక్షన్స్ను తొలగించండి లేదా సరిచేయండి.
- ఎగ్జిక్యూషన్ను కఠినతరం చేయండి: రిస్క్ ఉన్న పనులను సాండ్బాక్స్ (sandbox)లో రన్ చేయండి. క్రెడెన్షియల్స్ను పరిమితంగా ఉంచండి.
- పారదర్శకతను కోరండి: ఏజెంట్ ఖచ్చితంగా ఏమి చదివింది, ఏ టూల్స్ను పిలిచింది మరియు ఏ కమాండ్స్ను రన్ చేసింది అనేది తెలుసుకోండి.
ఒక AI ఏజెంట్ అనేది షెల్ యాక్సెస్ మరియు వేగవంతమైన టైపింగ్ సామర్థ్యం ఉన్న జూనియర్ డెవలపర్లాంటిది. మీరు ఒక కొత్త జూనియర్ డెవలపర్కు మొదటి రోజే పూర్తి ప్రొడక్షన్ క్రెడెన్షియల్స్ను ఇవ్వరు. మీరు వారికి చిన్న పనులు, స్పష్టమైన కాంటెక్స్ట్ మరియు పరిమిత అనుమతులను మాత్రమే ఇస్తారు.
మీ ఏజెంట్లను కూడా అదే విధంగా పరిగణించండి.
Source: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj
Optional learning community: https://t.me/GyaanSetuAi