𝗜 𝗚𝗮𝘃𝗲 𝗖𝗹𝗮𝘂𝗱𝗲 𝗖𝗼𝗱𝗲 𝘁𝗵𝗲 𝗞𝗲𝘆𝘀. 𝗦𝗼 𝗗𝗶𝗱 𝗮 𝗪𝗼𝗿𝗺.
AI కోడింగ్ ఏజెంట్లు జైల్బ్రేక్ (jailbroken) చేయబడటం లేదు. మీరు వాటిని దేని కోసం తయారుచేశారో, అవి సరిగ్గా అదే చేస్తున్నాయి. కమాండ్లను రన్ చేయడానికి అవి మీ క్రెడెన్షియల్స్ను ఉపయోగిస్తాయి. సమస్య ఏమిటంటే, అటాకర్లు (attackers) ఇన్పుట్ను అందించగలరు.
ఇటీవలి లోపాలు (vulnerabilities) ఇది జరిగే మూడు వేర్వేరు మార్గాలను చూపుతున్నాయి.
- సప్లై చైన్ వార్మ్ (The Supply Chain Worm) Mini Shai-Hulud అనే వార్మ్ 170 కంటే ఎక్కువ ప్యాకేజీలను ప్రభావితం చేసింది. ఇది కేవలం కీలను దొంగిలించి వెళ్ళిపోదు. ఇది మీ కాన్ఫిగరేషన్ ఫైల్స్లోకి తనను తాను రాసుకుంటుంది. ఇది .vscode/tasks.json లేదా .claude/settings.json లలో దాక్కుంటుంది. మీరు ఒక ఫోల్డర్ను ఓపెన్ చేసినప్పుడు లేదా సెషన్ను ప్రారంభించినప్పుడు ఈ ఫైల్లు ఆటోమేటిక్గా కోడ్ను రన్ చేస్తాయి. మీరు ఆ హానికరమైన ప్యాకేజీని తొలగించినప్పటికీ, ఆ మాలిషియస్ హుక్ (malicious hook) మీ డిస్క్లోనే ఉండిపోతుంది.
- అలోలిస్ట్ బైపాస్ (The Allowlist Bypass) ఆటో-రన్ సురక్షితంగా ఉండటానికి Cursor ఎడిటర్ అలోలిస్ట్ (allowlist)ను ఉపయోగిస్తుంది. అటాకర్లు export వంటి షెల్ బిల్ట్-ఇన్లను (shell built-ins) ఉపయోగించి దీనిని బైపాస్ చేసే మార్గాన్ని కనుగొన్నారు. ప్రాంప్ట్ ఇంజెక్షన్ (prompt injection) ఉపయోగించి, అటాకర్ ఏజెంట్ను ఒక విషపూరితమైన ఎన్విరాన్మెంట్ వేరియబుల్ను (poisoned environment variable) సెట్ చేసేలా చేస్తారు. ఇది ఆమోదించబడిన కమాండ్ మీరు అనుకోని విధంగా ప్రవర్తించేలా చేస్తుంది. ఈ సెక్యూరిటీ కంట్రోల్ విఫలమైంది ఎందుకంటే ఇది యంత్రాల కోసం కాకుండా మనుషుల కోసం రూపొందించబడింది.
- ప్రోటోకల్ లోపం (The Protocol Flaw) mcp-remote ప్రాక్సీలో ఒక క్లిష్టమైన కమాండ్ ఇంజెక్షన్ లోపం ఉంది. మీరు ఒక మాలిషియస్ MCP సర్వర్కు కనెక్ట్ అయితే, హ్యాండ్షేక్ (handshake) సమయంలో అది మీ మెషీన్పై కమాండ్లను అమలు చేయగలదు. క్లయింట్ తాను కనెక్ట్ అయ్యే సర్వర్ను నమ్మడం వల్ల ఇది జరుగుతుంది.
ప్రధాన సమస్య సరళమైనది. కోడింగ్ ఏజెంట్ డేటా మరియు కమాండ్ల మధ్య ఉన్న గీతను చెరిపివేస్తుంది. ఒక LLM సూచనలను (instructions) మరియు బయటి డేటాను ఒకే విధంగా చూస్తుంది. మీరు చెప్పేది మరియు ప్రపంచం ఏజెంట్కు చెప్పేది మధ్య ఎటువంటి సరిహద్దు ఉండదు.
మిమ్మల్ని మీరు ఎలా రక్షించుకోవాలి:
- మీ ఎన్విరాన్మెంట్ వేరియబుల్స్లో లాంగ్-లివ్డ్ కీలకు బదులుగా షార్ట్-లివ్డ్ టోకెన్లను ఉపయోగించండి.
- సీక్రెట్స్ (secrets) లేదా ప్రొడక్షన్ను తాకే ఏ టాస్క్ కైనా ఆటో-రన్ను ఆపివేయండి.
- .claude/settings.json వంటి మీ కాన్ఫిగరేషన్ ఫైల్లలో ఊహించని మార్పుల కోసం గమనిస్తూ ఉండండి.
- ప్రావెనెన్స్ అటెస్టేషన్లను (provenance attestations) మూలం యొక్క నిరూపణగా పరిగణించండి, భద్రత యొక్క నిరూపణగా కాదు.
- మీ డిపెండెన్సీలను (dependencies) నిర్దిష్ట హాష్లకు (hashes) పిన్ చేయండి.
మీ AI ఏజెంట్ను ఇతర హై-ప్రివిలేజ్ ప్రాసెస్ (high-privilege process) లాగా పరిగణించండి. దానికి కఠినమైన సరిహద్దులు అవసరం.
మీరు ఏజెంట్లను ఆటో-రన్ మోడ్లో నడుపుతుంటే, అది ఎప్పుడు పని చేయాలి మరియు ఎప్పుడు ఆపాలి అని మీరు ఎలా నిర్ణయిస్తారు?
మూలం: https://dev.to/kkierii/i-gave-claude-code-the-keys-so-did-a-worm-34a4
ఐచ్ఛిక అభ్యాస కమ్యూనిటీ: https://t.me/GyaanSetuAi