సీక్రెట్ లీకేజ్ అనేది ఎల్లప్పుడూ చెడ్డ కోడ్ లేదా హాని కలిగించే లైబ్రరీల వల్ల జరగదు. కొన్నిసార్లు, ఇది CI రన్ల సమయంలో మనం సీక్రెట్లను ఎలా నిర్వహిస్తామనే దానిపై ఆధారపడి ఉంటుంది, మరియు అది ఎలా తప్పుగా జరగవచ్చో చెప్పడానికి CVE‑2025‑30066 ఒక పాఠ్యపుస్తక ఉదాహరణ. మార్చబడిన ఫైల్లను గుర్తించడానికి విస్తృతంగా ఉపయోగించే GitHub యాక్షన్ tj‑actions/changed‑files. pull requestsరహస్య సమాచారం బయటకు పొక్కడానికి ఒక నిశ్శబ్ద మార్గంగా మారింది. అసలు ఏం జరిగిందో మరియు మీ సమాచారాన్ని మీరు ఎలా కట్టడి చేసుకోగలరో ఇక్కడ ఉంది. CI/CD రహస్యాలు pipeline.
CVE‑2025‑30066లో ఏమి జరిగింది?
2025 మార్చి మధ్యలో, tj‑actions/changed‑files హ్యాక్ చేయబడింది. దాడి చేసిన వ్యక్తి హానికరమైన వెర్షన్ను సూచించేలా ఇప్పటికే ఉన్న వెర్షన్ ట్యాగ్లను (v45.0.7 వరకు) తిరిగి రాశాడు. commitడెవలపర్లు గమనించకుండానే ఇది యాక్షన్ ప్రవర్తనను మార్చింది; కొత్త వెర్షన్ ఏదీ విడుదల కాలేదు, కేవలం కంటికి కనిపించని ట్యాగ్ ట్యాంపరింగ్ మాత్రమే జరిగింది.
పేలోడ్ సూటిగా ఉన్నప్పటికీ ప్రమాదకరమైనది: అది రిమోట్గా బేస్64-ఎన్కోడ్ చేయబడిన పైథాన్ స్క్రిప్ట్ను లాగింది, అది క్రెడెన్షియల్స్ కోసం రన్నర్ మెమరీని స్కాన్ చేసి, వాటిని లాగ్లలోకి డంప్ చేయడం లేదా బయటకు పంపడం చేసేది. ఇది tj‑actions/changed‑files లోని లాజికల్ కోడ్ లోపం కాదు; పునరుపయోగించగల ఆ యాక్షన్ను ఉపయోగించే CI వర్క్ఫ్లోలలో రహస్యాల లీకేజ్ ఎలా జరగవచ్చో చూపించే ఒక దుర్వినియోగం ఇది. CVE‑2025‑30066 బఫర్ ఓవర్ఫ్లోల గురించి కాదు; అది రహస్యాలు లీక్ అవ్వడానికి వీలు కల్పించిన ఒక CI డిజైన్ వైఫల్యం గురించినది.
ప్రభావం: tj‑actions/changed‑files యొక్క ప్రభావిత వెర్షన్లను ఉపయోగించే ఏ రిపోలోనైనా రహస్య లీకేజీ ప్రమాదం ఉంది, ముఖ్యంగా ఫైల్ ప్యాటర్న్లు లేదా CI అవుట్పుట్లలో సున్నితమైన టోకెన్లు లేదా ఫైల్లను అసురక్షితంగా నిర్వహించినట్లయితే.
పునర్వినియోగ చర్యలపై ఆధారపడిన వర్క్ఫ్లోలను ఇది ఎందుకు ప్రభావితం చేస్తుంది
DevSecOps వర్క్ఫ్లోలు tj‑actions/changed‑files పై ఎక్కువగా ఆధారపడతారు:
- ఆటోమేట్ pull request తనిఖీలు
- నిర్దిష్ట మార్గాలలో మార్చబడిన ఫైల్లను గుర్తించండి
- అనవసరమైన CI ఉద్యోగాలను నివారించండి
కానీ ఈ వర్క్ఫ్లోలు తరచుగా ఒక విషయాన్ని విస్మరిస్తాయి: గ్లోబ్ ప్యాటర్న్లు సున్నితమైన డేటాను ఎలా కలిగి ఉండవచ్చో. డెవలపర్లు tj‑actions/changed‑files డిఫాల్ట్గా సురక్షితంగా ప్రవర్తిస్తుందని భావిస్తారు. అయితే, మీరు గ్లోబ్ చేస్తే configs/** మరియు రహస్యాలు నిల్వ చేయబడతాయి configs/secrets.envమీరు ఇప్పుడే CI అవుట్పుట్లు లేదా లాగ్లలోకి ఒక రహస్య ఫైల్ను జోడించారు. అది యాక్షన్లో ఉన్న బగ్ కాదు; అది ఒక CI/CD రహస్య లీకేజీకి దారితీసే రూపకల్పన వైఫల్యం. CVE‑2025‑30066 దీనికి ఒక స్పష్టమైన ఉదాహరణ.
రహస్య లీకేజీ ఎలా జరిగింది (దుర్బలత్వ విశ్లేషణ)
CVE‑2025‑30066 వెనుక ఉన్న ప్రధాన వైఫల్యాన్ని విశ్లేషిద్దాం:
- గ్లోబింగ్ నమూనాలు వంటివి **/*.env అనుకోకుండా రహస్య ఫైల్లను సరిపోల్చారు
- tj‑actions/changed‑files ఆ రహస్యాలను మార్చబడిన ఫైల్లుగా పరిగణించింది
- రహస్యాలు స్టెప్ అవుట్పుట్లు, లాగ్లు లేదా తదుపరి జాబ్లలోకి చేరాయి
ఇలా జరగడానికి కారణం, సీక్రెట్లను వెర్షన్-కంట్రోల్డ్ పాత్లలో నిల్వ చేయడం (ఇది మంచి ఆలోచన కాదు), మరియు CI కాన్ఫిగ్ వాటిని గ్లోబింగ్ నుండి స్పష్టంగా మినహాయించకపోవడం (ఇది కూడా మంచిది కాదు). కాబట్టి ఇది కోడ్ బగ్ కాదు, tj‑actions/changed‑files అవుట్పుట్లతో సీక్రెట్ లీకేజీకి కారణమవుతున్న పేలవమైన CI డిజైన్ పరిశుభ్రత.
ఆచరణాత్మక దోపిడీ మార్గం: CI జాబ్ నుండి క్రెడెన్షియల్ బహిర్గతం వరకు
tj‑actions/changed‑files ద్వారా రహస్య లీకేజీకి కారణమైన ఉదాహరణ CI సెటప్:
If configs/secrets.env మార్చబడింది:
- దీనిని tj‑actions/changed‑files ఫ్లాగ్ చేసింది
- అది చేర్చబడింది దశలు.మార్చబడిన.అవుట్పుట్లు.అన్ని_మార్చబడిన_ఫైల్లు
- తర్వాతి దశలు దానిని లాగ్ చేశాయి లేదా స్క్రిప్ట్లకు పంపాయి, తద్వారా రహస్యాలు లీక్ అయ్యాయి.
CI లాజిక్ సీక్రెట్లను సాధారణ ఫైల్స్లా పరిగణించడం వల్ల ఈ లీక్ జరిగింది. సీక్రెట్ లీకేజ్ అక్కడే మొదలవుతుంది, బఫర్ ఓవర్ఫ్లో వల్ల కాదు, లోపభూయిష్టమైన CI డిజైన్లో tj-actions/changed-filesను దుర్వినియోగం చేయడం వల్ల.
వ్యాప్తి ఈ క్రింది అవుట్పుట్లతో జరుగుతుంది:
If రహస్యాలు.env ఆ జాబితాలో ఉంటే, దాని ఫైల్ పేరు మరియు బహుశా దానిలోని విషయాలు బిల్డ్ లాగ్లలో కనిపించవచ్చు. ఈ క్రింది షరతులతో కూడిన తర్కం కూడా వర్తిస్తుంది:
సున్నితమైన అంశాలను బహిర్గతం చేయగలదు. ఇది ఒక CI/CD సీక్రెట్ లీకేజీకి దారితీసే డిజైన్ వైఫల్యం, అంతేగానీ యాక్షన్ కోడ్లోని లోపం కాదు.
పునర్వినియోగ వర్క్ఫ్లోలను సురక్షితంగా ఉపయోగించడం మరియు లీకేజీని నివారించడం ఎలా
మీరు tj‑actions/changed‑filesను వదిలివేయాల్సిన అవసరం లేదు. మీరు రహస్యాలకు ప్రాధాన్యతనిచ్చే దృక్పథంతో పునర్వినియోగించదగిన Actionsను ఉపయోగించాలి:
రహస్యాల నిర్వహణ ఉత్తమ పద్ధతులు
- రహస్యాలను ఎప్పటికీ వెర్షన్ కంట్రోల్ చేయవద్దు
- సున్నితమైన మార్గాలతో సరిపోలే గ్లోబ్ నమూనాలను నివారించండి
- పర్యావరణ-ఆధారిత రహస్యాలను ఉపయోగించండి (GITHUB_ENV, వాల్ట్లు, GitHub సీక్రెట్లు)
CI/CD ఆకృతీకరణ Guardrails
- చర్యలను ఎల్లప్పుడూ మార్చలేని SHAలకు పిన్ చేయండి, ట్యాగ్లకు కాదు (ఎప్పుడూ ఉపయోగించవద్దు @v45)
- tj‑actions/changed‑files అవుట్పుట్ను కలుషితమైనదిగా పరిగణించి, దానిని శుభ్రపరచండి లేదా ఫిల్టర్ చేయండి.
- శుభ్రపరిచినట్లయితే మాత్రమే అవుట్పుట్లను సెట్ చేయండి
⚠️ అసురక్షిత ఉదాహరణ:
రహస్యాల లీకేజీ మరియు CVE‑2025‑30066 వెనుక ఉన్న దుర్వినియోగం కచ్చితంగా పైన చెప్పినదే.
సురక్షిత ప్రత్యామ్నాయం:
ఇలా చేయడం ద్వారా, మీరు నివారిస్తారు CI/CD tj‑actions/changed‑files ద్వారా రహస్య లీకేజీకి దారితీసే డిజైన్ వైఫల్యం.
అదనంగా:
- రహస్యాలు కనిపించే అవకాశం ఉన్న చోట లాగింగ్ను నిలిపివేయండి లేదా పరిమితం చేయండి
- గిట్హబ్ యొక్క సీక్రెట్ మాస్కింగ్ ఫీచర్లను ఉపయోగించండి
- బిల్డ్ లాగ్లు మరియు ఆర్టిఫ్యాక్ట్లకు యాక్సెస్ను పరిమితం చేయండి
త్వరిత రహస్యాలు-సురక్షిత CI వినియోగ తనిఖీ జాబితా
| మంచి సాదన |
|---|
| వెర్షన్-నియంత్రిత ఫైళ్ళలో రహస్యాలను నిల్వ చేయవద్దు |
| ఆధారాల కోసం వాల్ట్లు లేదా గిట్హబ్ సీక్రెట్లను ఉపయోగించండి |
| tj‑actions/changed‑files ను ఎల్లప్పుడూ మార్చలేని SHA లకు పిన్ చేయండి |
| tj‑actions/changed‑files నుండి వచ్చే అవుట్పుట్లను ఫిల్టర్ చేయండి లేదా శుభ్రపరచండి |
| గ్లోబ్ నమూనాలలో రహస్య మార్గాలను ఎప్పుడూ చేర్చవద్దు |
| సున్నితమైన డేటాను బహిర్గతం చేసే అవకాశం ఉన్న లాగ్లను మాస్క్ చేయండి లేదా పరిమితం చేయండి |
| వారసత్వంగా వచ్చిన CI కాన్ఫిగరేషన్లను తరచుగా ఆడిట్ చేయండి |
క్సైజెని పాత్ర: పెద్ద ఎత్తున CI రహస్యాల అమలు
క్సైజెని సురక్షితం CI/CD pipelineదృష్టి సారించడం ద్వారా నిజ ప్రపంచంలో రహస్యాలను ఎలా నిర్వహిస్తారు, ఉపయోగిస్తారు మరియు బహిర్గతం చేస్తారు DevOps వర్క్ఫ్లోలు. ఇది కేవలం కోడ్ను స్కాన్ చేయడం గురించి మాత్రమే కాదు; లైవ్ ద్వారా సీక్రెట్ మేనేజ్మెంట్ ఉత్తమ పద్ధతులను అమలు చేయడం గురించి కూడా. pipeline విశ్లేషణ.
అసురక్షిత అవుట్పుట్ వినియోగ గుర్తింపు
- గిట్హబ్ చర్యలను స్కాన్ చేస్తుంది ఉపయోగాల కోసం ఎకో, రన్, మరియు అవుట్పుట్లు ఇక్కడ ${{ steps.*.outputs.* }} సున్నితమైన విలువలను కలిగి ఉండవచ్చు
- రహస్యాలు ప్రత్యక్షంగా, ఉద్దేశపూర్వకంగా లేదా పొరపాటున ప్రస్తావించబడినప్పుడు లేదా ముద్రించబడినప్పుడు గుర్తిస్తుంది
లీక్ అయిన రహస్యాల పర్యవేక్షణ
- లాగ్లు మరియు స్టెప్ అవుట్పుట్లలో అధిక ఎంట్రోపీ విలువలను (API కీలు, టోకెన్లు) గుర్తిస్తుంది
- రహస్యాలు కనిపించినప్పుడు హెచ్చరికలను ప్రేరేపిస్తుంది pipeline లాగ్లు, డౌన్స్ట్రీమ్లో మాస్క్ చేయబడినప్పటికీ
తప్పుగా కాన్ఫిగర్ చేయబడిన చర్య వినియోగం
- అన్ని గిట్హబ్ చర్యలను ట్రాక్ చేస్తుంది pipelineరాజీపడిన వెర్షన్ల వాడకాన్ని గుర్తించడానికి (ఉదా, tj-actions/changed-files@v45)
- సంభావ్య రహస్యాలను కలిగి ఉన్న ఫైల్-సరిపోలిక నమూనాలను ఆడిట్ చేస్తుంది /*.env, *.key, లేదా .env.*
పాలసీ-ఆధారిత CI Guardrails
- థర్డ్-పార్టీ యాక్షన్ల కోసం SHA-పిన్నింగ్ను అమలు చేస్తుంది
- లాగ్లలోకి రహస్యాలను చేర్చగల అసురక్షిత ఫైల్ గ్లోబ్ల వాడకాన్ని నిరోధిస్తుంది
- నిరోధిస్తుంది pipelineవర్క్ఫ్లో అవుట్పుట్లలో భాగంగా సున్నితమైన విలువలను విడుదల చేయడం నుండి
వర్క్ఫ్లోలను మీ ముప్పు పరిధిలో భాగంగా పరిగణించడం ద్వారా, సీక్రెట్ హైజీన్ కేవలం ఒక ఉత్తమ పద్ధతి మాత్రమే కాకుండా, అది ఒక అంతర్నిర్మిత రక్షణగా ఉండేలా క్సైజెని నిర్ధారిస్తుంది.
ముగింపు: ఒక సాధారణ చర్య దుర్వినియోగంతో రహస్యాల లీకేజీ ప్రారంభం కావచ్చు
CVE‑2025‑30066 అనేది లైబ్రరీ బగ్ కాదు; అది ఒక CI/CD tj‑actions/changed‑filesను సరిగ్గా ఉపయోగించకపోవడం వల్ల డిజైన్ వైఫల్యం ఏర్పడింది. DevSecOps బృందాలు గ్రహించవలసినది:
- CIలోని ప్రతి గ్లోబ్/ఫైల్ రిఫరెన్స్ను సంభావ్య లీక్ పాయింట్గా పరిగణించండి
- రహస్యాలు పొరపాటున చేర్చబడకుండా ఉండేందుకు వర్క్ఫ్లోలను క్రమం తప్పకుండా ఆడిట్ చేయండి.
- సురక్షిత వాల్ట్లు లేదా ఎన్విరాన్మెంట్ సీక్రెట్లను ఉపయోగించండి, సీక్రెట్లను వెర్షన్ కంట్రోల్లోకి ఎప్పుడూ చెక్ ఇన్ చేయవద్దు.
- అన్ని వర్క్ఫ్లో అవుట్పుట్లను శుభ్రపరచండి లేదా ఫిల్టర్ చేయండి
- ఆడిట్ చేయగలిగేలా నిర్వహించడానికి సున్నితమైన వర్క్ఫ్లో కార్యకలాపాలను నమోదు చేయండి
CI అనేది కోడ్. వర్క్ఫ్లోలు కోడ్. లాగ్లు మరియు అవుట్పుట్లు కోడ్. ప్రతి దశలో మీ రహస్యాలను కాపాడుకోండి, లేకపోతే రహస్యం లీక్ అయ్యే ప్రమాదం ఉంది, దీనికి హ్యాకర్ అవసరం లేదు, కేవలం ఒక చెడ్డ అనుభవం చాలు. CI/CD రూపకల్పన ఎంపిక.





