AI-సదుపాయం కలిగిన GitHub Actionsలను కేవలం ఒకే ఒక కామెంట్తో హైజాక్ చేయవచ్చు, దీనివల్ల API కీలు, క్లౌడ్ టోకెన్లు మరియు ఇతర రహస్యాలు (secrets) లీక్ అయ్యే ప్రమాదం ఉంది. ఒక సెక్యూరిటీ రీసెర్చర్ 22 ఓపెన్-సోర్స్ రిపోజిటరీలను కనుగొన్నారు, ఇక్కడ పబ్లిక్ ట్రిగ్గర్, “skip prompts” ఫ్లాగ్తో నడిచే AI టూల్ మరియు ఎక్స్పోజ్ చేయబడిన సీక్రెట్స్ కలిసి డేటాను దొంగిలించడానికి (exfiltration) సులభమైన మార్గాన్ని సృష్టిస్తున్నాయి.
ఈ లోపం ఎలా పనిచేస్తుంది
ప్రస్తుతం ప్రాజెక్ట్లు తమ CI పైప్లైన్లలో నేరుగా AI ఏజెంట్లను—Claude Code, GitHub Copilot CLI మరియు ఇటువంటి సాధనాలను—అనుసంధానిస్తున్నాయి. ఒక వర్క్ఫ్లో స్టెప్ షెల్ కమాండ్ను రన్ చేస్తుంది మరియు తరచుగా ఇంటరాక్టివ్ పర్మిషన్ రిక్వెస్ట్లను విస్మరించమని టూల్కు చెప్పడానికి ఒక ఫ్లాగ్ను జోడిస్తుంది. ఏదైనా పబ్లిక్ ఇన్పుట్—ఒక ఇష్యూ (issue), కామెంట్ లేదా పుల్-రిక్వెస్ట్ టైటిల్—పై వర్క్ఫ్లో ప్రారంభమైనప్పుడు, అటాకర్ కేవలం ఒక లైన్ టెక్స్ట్ను పోస్ట్ చేస్తే సరిపోతుంది, దానిని AI ఒక కమాండ్గా పరిగణిస్తుంది.
“skip prompts” ఫ్లాగ్ వల్ల ఇప్పటికే పరిమితి లేని షెల్ యాక్సెస్ పొందిన AI, వర్క్ఫ్లో ఎక్స్పోజ్ చేసే ఏ ఎన్విరాన్మెంట్ వేరియబుల్ లేదా ఫైల్నైనా చదువుతుంది. ఒకవేళ ఆ జాబ్ సీక్రెట్స్ను—API కీలు, క్లౌడ్ సర్వీస్ టోకెన్లు లేదా పూర్తి సర్వీస్-అకౌంట్ క్రెడెన్షియల్స్ను—లోడ్ చేస్తే, AI ఆ విలువలను అటాకర్ నియంత్రణలో ఉన్న సర్వర్కు పంపిస్తుంది. దీనికి కోడ్ మార్పు అవసరం లేదు, కొత్త డిపెండెన్సీ అవసరం లేదు, కేవలం హానిలేనిదిగా కనిపించే ఒక కామెంట్ మాత్రమే సరిపోతుంది.
వాస్తవ ప్రపంచ ఉదాహరణలు
రీసెర్చర్ ఇప్పటికే ప్యాచ్ చేయబడిన మూడు బలహీనమైన (vulnerable) రిపోజిటరీలను ధృవీకరించారు:
- pymc-labs/pymc-marketing – ప్రాంప్ట్ ఇంజెక్షన్ ద్వారా Anthropic API కీని పొందడానికి ఒక పబ్లిక్ ఇష్యూను ఉపయోగించవచ్చు.
- MadAppGang/dingo – ఈ వర్క్ఫ్లో Claude Code కి పూర్తి Bash యాక్సెస్ను ఇచ్చింది మరియు అదే జాబ్లో రెండు సీక్రెట్స్ను ఎక్స్పోజ్ చేసింది.
- MadAppGang/claudish – dingo ప్రాజెక్ట్ వలె అదే బలహీనమైన టెంప్లేట్ను ఉపయోగించింది.
ఒక ఫైండింగ్లో లైవ్ క్లౌడ్-సర్వీస్ అకౌంట్ కీ బయటపడింది, దీనిని రీసెర్చర్ నేరుగా ఒక ప్రముఖ AI ప్రొవైడర్ యొక్క సెక్యూరిటీ టీమ్కు నివేదించారు. మరో పన్నెండు నివేదికలు మెయింటైనర్ల వద్ద పెండింగ్లో ఉన్నాయి; ఫిక్స్లు లైవ్ అయ్యే వరకు వారి పేర్లను వెల్లడించడం లేదు.
ఇందులో ఉన్న ప్రమాదం ఏమిటి?
అటాకర్ ఒక సీక్రెట్ను సేకరించినప్పుడు, నష్టం తక్షణమే మరియు భారీగా ఉండవచ్చు. క్లౌడ్-సర్వీస్ అకౌంట్ కీ కంప్యూట్ రిసోర్సెస్, స్టోరేజ్ బకెట్లు మరియు ఇతర పెయిడ్ సర్వీస్లకు పరిమితి లేని యాక్సెస్ ఇస్తుంది. లార్జ్-లాంగ్వేజ్-మోడల్ ప్రొవైడర్ యొక్క API కీ ద్వారా అపరిమితమైన క్వెరీలను రన్ చేయవచ్చు, ఇది వేల డాలర్ల ఖర్చుకు దారితీయవచ్చు. ఈ ఎక్స్ప్లాయిట్ CI ఎన్విరాన్మెంట్లోనే రన్ అవుతుంది కాబట్టి, ఈ బ్రీచ్ (breach) తదుపరి దశలకు వ్యాపించవచ్చు: కంప్రమైజ్ అయిన రన్నర్పై నిర్మించిన ఏ ఆర్టిఫాక్ట్ అయినా మాలీషియస్ కోడ్ను కలిగి ఉండవచ్చు, తద్వారా ఒకే రిపోజిటరీని సప్లై-చైన్ వెక్టర్గా మార్చవచ్చు.
AI-అసిస్టెడ్ CI పై ఆధారపడే టీమ్లకు, లాభనష్టాల మధ్య తేడా స్పష్టంగా ఉంది. ఆటో-జనరేటెడ్ కోడ్, లింటింగ్ లేదా డాక్యుమెంటేషన్ యొక్క సౌలభ్యం, ఒక పబ్లిక్ కామెంట్ రహస్య బ్యాక్డోర్గా మారే ప్రమాదంతో పోల్చి చూడాలి.
ఈ లోపాన్ని గుర్తించడం ఎందుకు కష్టం?
రీసెర్చర్ మొదట ఆరు నివేదికలను సమర్పించారు, కానీ అవి తర్వాత ఉపసంహరించబడ్డాయి. ఈ ఉపసంహరణలు GitHub Actions యొక్క పర్మిషన్ చెక్ల గురించి ఉన్న అంచనాల వల్ల జరిగాయి, Action యొక్క సోర్స్ కోడ్ను లైన్-బై-లైన్ సమీక్షించడం వల్ల కాదు. డాక్యుమెంటేషన్ మరియు అంతర్ దృష్టి (intuition) తప్పుదారి పట్టించవచ్చు; AI-సదుపాయం కలిగిన స్టెప్ యొక్క సెక్యూరిటీ పోశ్చర్ను ధృవీకరించడానికి ఉన్న ఏకైక నమ్మదగిన మార్గం, టూల్ను రన్ చేసే కోడ్ను మరియు దానిని అనుసంధానించే వర్క్ఫ్లో YAMLని తనిఖీ చేయడం.
నివారణ చర్యల జాబితా (Mitigation checklist)
మీరు GitHub Actions వర్క్ఫ్లోలో AI CLI లేదా ఇటువంటి టూల్ను ఉపయోగిస్తుంటే, మెర్జ్ చేసే ముందు ఈ రెండు ప్రశ్నలకు సమాధానం చెప్పండి:
వర్క్ఫ్లోను ఎవరు ట్రిగ్గర్ చేయగలరు? ట్రిగ్గర్లను నమ్మదగిన ఈవెంట్లకు (ఉదా., ప్రొటెక్టెడ్ బ్రాంచ్లకు పుష్ చేయడం) పరిమితం చేయండి లేదా బాహ్య కంట్రిబ్యూటర్ల ద్వారా ప్రారంభించబడే రన్ల కోసం స్పష్టమైన ఆమోదం (explicit approval) అవసరమని నిర్దేశించండి. అదనపు గేటింగ్ లేకుండా
on: issue_commentలేదాon: issuesఉపయోగించకండి.అదే జాబ్లో ఏ సీక్రెట్స్ లోడ్ చేయబడ్డాయి? పరిమితి లేని షెల్ యాక్సెస్ కలిగిన AI ఏజెంట్ను రన్ చేసే జాబ్లో API కీలు, క్లౌడ్ టోకెన్లు లేదా సర్వీస్-అకౌంట్ క్రెడెన్షియల్స్ను ఎప్పుడూ ఎక్స్పోజ్ చేయకండి. సీక్రెట్స్ ఎక్కువగా ఉండే స్టెప్స్ను, AI టూల్స్ను పిలవని ప్రత్యేకమైన (isolated) జాబ్స్ లేదా రన్నర్లకు వేరు చేయండి.
అదనపు హార్డెనింగ్ స్టెప్స్:
- పర్మిషన్ ప్రాంప్ట్లను స్కిప్ చేసే ఫ్లాగ్ను తొలగించండి, తద్వారా షెల్ కమాండ్లను అమలు చేసే ముందు AI టూల్ స్పష్టమైన నిర్ధారణను (explicit confirmation) కోరాల్సి ఉంటుంది.
- AI టూల్ చదవగలిగే ఏ ఎన్విరాన్మెంట్ వేరియబుల్నైనా శానిటైజ్ లేదా రిడక్ట్ చేసే స్టెప్ను జోడించండి.
- ఏదైనా ఎండ్ పాయింట్లకు డేటా దొంగతనం (exfiltration) జరగకుండా నిరోధించడానికి నెట్వర్క్ ఎగ్రెస్ కంట్రోల్స్ ఉన్న సెల్ఫ్-హోస్టెడ్ రన్నర్లను ఉపయోగించండి.
ప్రతిపాదన: CIలో AI యొక్క ఉపయోగం
ఉత్పాదకత పెరుగుదల వల్ల కలిగే ప్రయోజనాలు ఈ ప్రమాదం కంటే ఎక్కువగా ఉంటాయని మద్దతుదారులు వాదిస్తారు. ఆటోమేటెడ్ కోడ్ సలహాలు రివ్యూ సమయాన్ని తగ్గిస్తాయి మరియు AI-డ్రైవెన్ టెస్టింగ్ బగ్లను త్వరగా బయటపెడుతుంది. అయినప్పటికీ, అదే సౌలభ్యం అటాక్ సర్ఫేస్ను పెంచుతుంది. పరిష్కారం AIని వదిలివేయడం కాదు, షెల్-లెవల్ ప్రివిలేజెస్ కలిగిన ఏ టూల్నైనా సంభావ్య వెక్టర్గా పరిగణించడం.
తదుపరి గమనించవలసినవి
ఈ పరిశోధనలు AI-సదుపాయం కలిగిన Actions కోసం మరింత కఠినమైన డిఫాల్ట్ అనుమతుల గురించి GitHub సెక్యూరిటీ ఫోరమ్లలో ఇప్పటికే చర్చలకు దారితీశాయి. భవిష్యత్తులో ప్లాట్ఫారమ్ అప్డేట్లలో ఇవి ఉండవచ్చు:
- AI టూల్స్ నేరుగా షెల్ యాక్సెస్ లేకుండా, ఒక శాండ్బాక్స్డ్ ఎన్విరాన్మెంట్లో మాత్రమే పనిచేసేలా చేసే ఒక ఫ్లాగ్.
- ఇష్యూ బాడీలు లేదా కామెంట్లలో ప్రాంప్ట్-ఇంజెక్షన్ ప్యాటర్న్లను గుర్తించే ఇన్బిల్ట్ ఫీచర్.
- ఒక వర్క్ఫ్లో పబ్లిక్ ట్రిగ్గర్లను మరియు సీక్రెట్లు ఉన్న జాబ్స్ను కలిపి ఉపయోగించినప్పుడు వచ్చే ఆటోమేటెడ్ అలర్ట్లు.
ప్రస్తుతానికి, దీని బాధ్యత రిపోజిటరీ మెయింటైనర్ల పైనే ఉంది. గుర్తించబడిన 22 రిపోజిటరీలు ఈ సమస్య కేవలం ఒక చోటే పరిమితం కాదని చూపుతున్నాయి; ఇదే విధమైన వర్క్ఫ్లో ప్యాటర్న్ను అనుసరించే ఏ ప్రాజెక్ట్ అయినా ప్రమాదంలోనే ఉంటుంది. అటాకర్ కంటే ముందే CI కాన్ఫిగరేషన్లను వేగంగా ఆడిట్ చేయడం ద్వారా ఈ సమస్యను గుర్తించవచ్చు.
ముఖ్య అంశం: పబ్లిక్ GitHub ఇష్యూలోని ఒకే ఒక్క లైన్ టెక్స్ట్, మీ CI ఎన్విరాన్మెంట్పై AI ఏజెంట్కు పూర్తి నియంత్రణను ఇచ్చి, మీరు అక్కడ భద్రపరిచిన సీక్రెట్లను దొంగిలించేలా చేయవచ్చు. మీ వర్క్ఫ్లోలను ఎవరు ప్రారంభించగలరో తనిఖీ చేయండి, AI-ఆధారిత దశలకు సీక్రెట్లను దూరంగా ఉంచండి మరియు నియంత్రణ లేని అనుమతులను ఇచ్చే ప్రతి ఫ్లాగ్ను నిశితంగా పరిశీలించండి. డేటా ఉల్లంఘన వల్ల కలిగే నష్టం, క్రమబద్ధమైన సమీక్ష కోసం చేసే ప్రయత్నం కంటే చాలా ఎక్కువగా ఉంటుంది.
