உருவாக்கச் செயல்பாட்டில் சூழல் மாறிகளைச் செலுத்துவது என்பது standard நவீனத்தில் பயிற்சி CI/CD pipelines. அணிகள், மதிப்புகளை நேரடியாகக் குறிப்பிடாமல், இரகசியங்கள், டோக்கன்கள் மற்றும் இயக்க நேர உள்ளமைவுகளை உருவாக்கங்களுக்குள் அனுப்புவதற்காக, உருவாக்கச் செயல்பாட்டில் சூழல் மாறிகளைச் செலுத்துகின்றன. மேலோட்டமாகப் பார்க்கையில், இது ஒரு எளிய மற்றும் பாதுகாப்பான முறையாகத் தெரிகிறது.
இருப்பினும், நடைமுறையில், இது பெரும்பாலும் மென்பொருள் விநியோகச் சங்கிலியில் மிகவும் குறைத்து மதிப்பிடப்படும் அபாயங்களில் ஒன்றாக மாறிவிடுகிறது.
ஏனென்றால், குழுக்கள் உருவாக்கச் செயல்முறையில் சூழல் மாறிகளைச் செலுத்தியவுடன், அந்த மதிப்புகள் தனித்து இயங்குவதை நிறுத்திவிடுகின்றன. அவை அந்தச் செயல்முறைக்குள் இயங்கும் எல்லாவற்றிற்கும் அணுகக்கூடியதாகிவிடுகின்றன. pipelineபில்ட் ஸ்கிரிப்டுகள், CLI கருவிகள், மூன்றாம் தரப்பு செயல்பாடுகள் மற்றும் சார்புநிலைகள் கூட அவற்றை வாசிக்க முடியும்.
இங்குதான் விஷயங்கள் சீர்குலையத் தொடங்குகின்றன.
இந்த வழிகாட்டியில், நிஜ உலகில் குழுக்கள் உருவாக்கச் செயல்முறையில் சூழல் மாறிகளை எவ்வாறு புகுத்துகின்றன என்பதைப் பார்ப்போம். pipelineகசிவுகள் உண்மையில் எங்கு நிகழ்கின்றன, மற்றும் மேம்பாட்டு வேகத்தைக் குறைக்காமல் உருவாக்கச் செயல்முறையை எவ்வாறு பாதுகாப்பது.
உருவாக்கச் செயல்பாட்டில் சூழல் மாறிகளைச் செலுத்துவதன் அர்த்தம் என்ன?
அடிப்படையில், சூழல் மாறிகளைச் செலுத்துவது என்பது ஒரு குறிப்பிட்ட நிரலுக்குள் மதிப்புகளை அனுப்புவதாகும். pipeline இயங்கு நேரத்தில், பணிகள் செயல்படுத்தப்படும்போது அவற்றை அணுகும்படி செய்ய வேண்டும்.
இந்த மதிப்புகளில் பொதுவாக API விசைகள், தரவுத்தள நற்சான்றிதழ்கள், டோக்கன்கள் அல்லது சூழல் சார்ந்த உள்ளமைவு ஆகியவை அடங்கும். அவற்றை நேரடியாகக் குறியீட்டில் சேமிப்பதற்குப் பதிலாக, CI/CD கட்டமைப்பு தொடங்கும் போது கணினி அவற்றை மாறும் தன்மையுடன் ஏற்றுகிறது.
இது ஒரு உண்மையான சிக்கலைத் தீர்க்கிறது. இது குறியீட்டைத் தூய்மையாக வைத்திருக்கிறது, நகலெடுப்பைத் தவிர்க்கிறது, மேலும் அதே போன்ற செயல்பாட்டை அனுமதிக்கிறது. pipeline ஸ்டேஜிங், டெஸ்டிங் மற்றும் புரொடக்ஷன் சூழல்களில் இயங்குவதற்கு.
இருப்பினும், இந்த மாதிரி, உருவாக்கச் சூழல் கட்டுப்படுத்தக்கூடியதாகவும் கணிக்கக்கூடியதாகவும் உள்ளது என்ற, தற்போது செல்லுபடியாகாத ஒரு அனுமானத்தைச் சார்ந்துள்ளது.
நவீன pipelineஅவை இரண்டும் அல்ல. அவை பல படிகள், வெளிப்புற ஒருங்கிணைப்புகள் மற்றும் குறியீட்டை மாறும் தன்மையுடன் செயல்படுத்தும் சார்புகளை உள்ளடக்கியுள்ளன. இதன் விளைவாக, ஒரு மாறி உள்ளிடப்பட்டவுடன், அது இனி வெறும் உள்ளமைவாக இருப்பதில்லை. அது செயல்படுத்தும் சூழலின் ஒரு பகுதியாக மாறிவிடுகிறது.
உருவாக்கச் செயல்பாட்டில் சுற்றுச்சூழல் மாறிகள் கசியும் இடங்களில்
பெரும்பாலான கசிவுகள், யாரோ ஒருவர் ஒரு இரகசியத்தை வெளிப்படையாக அம்பலப்படுத்துவதால் நடப்பதில்லை. அவை நடப்பதற்குக் காரணம் என்னவென்றால்... pipelineடெவலப்பர்கள் முழுமையாக எதிர்பார்க்காத விதங்களில் அவை நடந்துகொள்கின்றன.
உதாரணமாக, ஒரு டெவலப்பர் தோல்வியுறும் பில்டைப் பிழைதிருத்தம் செய்ய விரிவான லாகிங்கை இயக்கலாம். ஒரு CLI கருவி அதன் வெளியீட்டின் ஒரு பகுதியாகச் சூழல் மாறிகளை அச்சிடலாம். ஒரு சார்புநிலை, அதன் செயலாக்கத்தின் ஒரு பகுதியாகச் செயல்முறை மாறிகளை அமைதியாக அணுகலாம்.
இந்தச் செயல்கள் எதுவும் தனித்தனியாகப் பார்க்கும்போது சந்தேகத்திற்குரியதாகத் தெரியவில்லை. இருப்பினும், அவை ஒன்றுசேர்ந்து பல கசிவு வழிகளை உருவாக்குகின்றன.
ரகசியங்கள் இதில் போய் முடியலாம்:
- சேமிக்கப்பட்டு அட்டவணைப்படுத்தப்படும் உருவாக்கப் பதிவுகள்
- பிழைத்திருத்த வெளியீடு குழுக்களிடையே பகிரப்பட்டது
- வெளிப்புறக் குறியீட்டை இயக்கும் மூன்றாம் தரப்பு CI செயல்பாடுகள்
- நிறுவலின் போது அல்லது இயக்க நேரத்தில் செயல்படுத்தப்படும் சார்புகள்
- உருவாக்கத்தின் போது உருவாக்கப்பட்ட தற்காலிக கலைப்பொருட்கள்
பதிவேடுகளில் ஒரு இரகசியம் வெளிப்பட்டவுடன், அது அரிதாகவே கட்டுக்குள் இருக்கும். பதிவேடுகள் பல கணினி அமைப்புகளில் நகலெடுக்கப்பட்டு, சேமிக்கப்பட்டு, தக்கவைக்கப்படுகின்றன. அந்த நிலையில், அதன் வெளிப்பாடு அசல் பதிவேட்டையும் தாண்டி வெகுதூரம் பரவிவிடுகிறது. pipeline.
இதனால்தான் சூழல் மாறி கசிவுகள் பெரும்பாலும் தாமதமாகவும், பாதிப்பு ஏற்கனவே ஏற்பட்ட பின்னரும் கண்டறியப்படுகின்றன.
குழுக்கள் ஏன் உருவாக்கச் செயல்பாட்டில் சூழல் மாறிகளைச் செலுத்துகின்றன?
இந்த அபாயங்கள் இருந்தபோதிலும், அணிகள் சூழல் மாறி உட்செலுத்தலை பெரிதும் சார்ந்துள்ளன. அதற்குக் காரணமும் உண்டு.
இது செயல்படுத்துகிறது pipelineநெகிழ்வுத்தன்மையுடன் இருப்பதற்கு, ஒரே பணிப்பாய்வு வெவ்வேறு சூழல்களுக்கு ஏற்ப தன்னை மாற்றியமைத்துக் கொள்ளவும், பல சேவைகளுக்கு எதிராக அங்கீகாரம் பெறவும், குறியீட்டை மாற்றாமல் அதன் செயல்பாட்டை மாறும் தன்மையுடன் மாற்றிக்கொள்ளவும் முடியும்.
வேகமாக மாறிவரும் டெவொப்ஸ் சூழல்களில், இந்த நெகிழ்வுத்தன்மை இன்றியமையாதது. இருப்பினும், நெகிழ்வுத்தன்மை எப்போதும் சில சமரசங்களுடன் வருகிறது. ஒரு சூழல் எவ்வளவு மாறும் தன்மையுடையதாக இருக்கிறதோ, அந்த அளவிற்கு நெகிழ்வுத்தன்மையும் இருக்கும். pipeline அது ஆக ஆக, அதன் உள்ளே என்ன நடக்கிறது என்பதைக் கட்டுப்படுத்துவது மேலும் கடினமாகிறது. ஒவ்வொரு கூடுதல் படிநிலையும், ஒருங்கிணைப்பும் அல்லது சார்புநிலையும், முக்கியமான தரவுகளை அணுகக்கூடிய இடங்களின் எண்ணிக்கையை அதிகரிக்கிறது.
இதன் விளைவாக, சூழல் மாறி உட்செலுத்துதல் என்பது ஒரு உள்ளமைவு விவரத்திலிருந்து ஒரு பாதுகாப்பு அக்கறையாக மாறுகிறது.
உருவாக்கச் செயல்பாட்டில் சூழல் மாறிகளைச் செலுத்தும்போது ஏற்படும் பொதுவான அபாயங்கள்
அபாயங்கள் வெறும் கோட்பாட்டு ரீதியானவை அல்ல. அவை நிஜத்தில் தோன்றுகின்றன. pipelineஒவ்வொரு நாளும்.
பதிவேடுகளில் கசியும் இரகசியங்கள்
பதிவுகள் அவற்றில் ஒன்று வெளிப்பாட்டின் மிகவும் பொதுவான மூலங்கள்பிழைத்திருத்தக் குறியீடுகள், CLI கருவிகள் மற்றும் ஸ்டேக் ட்ரேஸ்கள் போன்றவை, டெவலப்பர்கள் கவனிக்காமலேயே முக்கியமான மதிப்புகளைப் பெரும்பாலும் வெளிப்படுத்துகின்றன.
ஒருமுறை வெளிப்பட்டால், அந்த மதிப்புகள் அமைப்புகள் முழுவதும் விரைவாகப் பரவுகின்றன.
அதிகப்படியான அனுமதி அணுகல்
நிறைய pipelineஇது எல்லா மாறிகளையும் எல்லா வேலைகளுக்கும் வெளிப்படுத்துகிறது. இது தேவையற்ற அபாயத்தை உருவாக்குகிறது.
ஒரு படிநிலையின் பாதுகாப்பு மீறப்பட்டால், அதற்கு உண்மையில் தேவைப்படாத சான்றுகளை அதனால் அணுக முடியும்.
சார்புநிலை மற்றும் செயல் துஷ்பிரயோகம்
நவீன pipelineஇவை மூன்றாம் தரப்புக் கருவிகளையும் ஒருங்கிணைப்புகளையும் பெருமளவில் சார்ந்துள்ளன. இந்தக் கூறுகள் உங்கள் இரகசியங்கள் இயங்கும் அதே சூழலில் இயங்குகின்றன.
அவற்றுள் ஒன்று தீங்கிழைக்கும் வகையில் செயல்பட்டால், அது செலுத்தப்பட்ட மாறிகளை யாருக்கும் தெரியாமல் அணுக முடியும்.
படி OWASPவிநியோகச் சங்கிலித் தாக்குதல்கள், உருவாக்கச் செயல்முறையில் உள்ள நம்பகமான கூறுகளை அடிக்கடி சுரண்டுகின்றன. சூழல் மாறிகள் பெரும்பாலும் எளிதான இலக்காகின்றன.
குறியீட்டில் உள்ள மாற்று இரகசியங்கள்
விடுபட்ட மாறிகள் காரணமாக உருவாக்கங்கள் தோல்வியடையும்போது, குழுக்கள் சில சமயங்களில் மாற்று மதிப்புகளைச் சேர்க்கின்றன. pipelineஓடிக்கொண்டிருக்கிறது.
காலப்போக்கில், இந்த மதிப்புகள் commitபணியமர்த்தப்பட்ட அல்லது பணியில் ஈடுபடுத்தப்பட்ட, நீண்ட கால பாதிப்பை உருவாக்கும்.
உருவாக்கச் செயல்பாட்டில் சூழல் மாறிகளைப் பாதுகாப்பாகச் செருகுவதற்கான சிறந்த நடைமுறைகள்
| பகுப்பு | சிறந்த பயிற்சி | ஏன் இது முக்கியமானது |
|---|---|---|
| ரகசிய சேமிப்பு | ஒரு வால்ட் அல்லது சிஐ சீக்ரெட்ஸ் மேனேஜரைப் பயன்படுத்தவும் | குறியீட்டில் வெளிப்படுவதைத் தடுக்கிறது |
| நுழைவு கட்டுப்பாடு | ஒவ்வொரு பணிக்கும் அணுகலை வரம்பிடவும் | தாக்குதல் பரப்பைக் குறைக்கிறது |
| உள்நுழைந்து | முகமூடி உணர்திறன் மதிப்புகள் | கசிவைத் தடுக்கிறது |
| நோக்கம் மற்றும் ஆயுட்காலம் | குறுகிய கால சான்றுகளைப் பயன்படுத்தவும் | வெடிப்பு ஆரத்தை வரம்பிடவும் |
| சரிபார்த்தல் | மாறிகள் விடுபட்டிருந்தால் உருவாக்கங்கள் தோல்வியடையும் | பாதுகாப்பற்ற மாற்று வழிகளைத் தவிர்க்கிறது |
ஏன் பல CI/CD பாதுகாப்புக் கருவிகள் சுற்றுச்சூழல் மாறி கசிவுகளைத் தவறவிடுகின்றன
பெரும்பாலான பாதுகாப்பு கருவிகள், உருவாக்கம் முடிந்த பிறகு குறியீடு அல்லது சார்புகளை ஸ்கேன் செய்வதில் கவனம் செலுத்துகின்றன.
இருப்பினும், நிரல் செயல்படுத்தப்படும்போது சூழல் மாறி கசிவுகள் ஏற்படுகின்றன.
A pipeline இரகசியங்களைச் சரியாகச் செலுத்த முடிந்தாலும், பதிவுகள் அல்லது இயக்க நேரச் செயல்பாடுகள் மூலம் அவை வெளிப்படலாம். ஒரு ஸ்கேனர் இந்தப் சிக்கலைக் கண்டறியும் நேரத்திற்குள், அந்த இரகசியம் ஏற்கெனவே வெளிப்பட்டிருக்கலாம்.
இது கண்டறிதலுக்கும் தடுப்பிற்கும் இடையே ஒரு இடைவெளியை உருவாக்குகிறது.
அணிகளுக்கு, செயல்படும்போது கட்டுப்பாடுகள் தேவை. pipeline அது முடிந்த பிறகு அல்ல, இயங்குகிறது.
சுற்றுச்சூழல் மாறி உட்செலுத்தலைப் பாதுகாப்பதற்கு நாங்கள் பரிந்துரைக்கும் முறை
நடைமுறையில், பயனுள்ள பாதுகாப்பு என்பது சில நிலையான கொள்கைகளைச் சார்ந்தே அமைகிறது.
ரகசியங்களை வெளியே சேமித்து வைக்கவும் pipelineஅவற்றை இயக்க நேரத்தில் மட்டும் உள்ளிடவும். குறைந்தபட்ச தேவையான அளவிற்கு அணுகலைக் கட்டுப்படுத்தவும். முடிந்தவரை குறுகிய கால நற்சான்றிதழ்களைப் பயன்படுத்தவும்.
அதே நேரத்தில், எப்படி என்பதைக் கண்காணிக்கவும் pipelineமுக்கியமான தரவுகள் அணுகப்படுகின்றன. கசிவு வெளிப்படுவதற்கு முன்பே, எதிர்பாராத அணுகல் முறைகள் பெரும்பாலும் அபாயத்தைக் குறிக்கின்றன.
இந்த அணுகுமுறை பாதுகாப்பை, பாதிப்பு ஏற்பட்டாலும் பின்னர் கண்டறிவதை விடுத்து, முன்னெச்சரிக்கையான கட்டுப்பாட்டிற்கு மாற்றுகிறது.
சைஜெனி எவ்வாறு பாதுகாக்க உதவுகிறது CI/CD ரகசிய ஊசி
உருவாக்கத்திற்குப் பிந்தைய ஸ்கேனிங்கை மட்டும் சார்ந்திருப்பதற்குப் பதிலாக, சைஜெனி எவ்வாறு என்பதைப் பகுப்பாய்வு செய்கிறது. pipelineநிரல்கள் இயங்கும்போது சூழல் மாறிகளைப் பயன்படுத்துகின்றன. பணிகளுக்கு இடையே இரகசியங்கள் எவ்வாறு நகர்கின்றன, உருவாக்கப் படிநிலைகள் அவற்றை எவ்வாறு அணுகுகின்றன, மற்றும் சார்புநிலைகள் செயலாக்கச் சூழலுடன் எவ்வாறு தொடர்பு கொள்கின்றன என்பவை இதில் அடங்கும்.
உதாரணமாக, ஒரு pipeline மாறிகளை மிகவும் பரவலாக வெளிப்படுத்துதல், ஒரு படிநிலையில் முக்கியமான மதிப்புகள் பதிவேடுகளில் அச்சிடப்படும் அபாயம் ஏற்படுதல், அல்லது ஒரு சார்புநிலை எதிர்பாராத விதமாக நற்சான்றுகளை அணுக முயற்சித்தல்.
அதே நேரத்தில், guardrails கொள்கையை நேரடியாக அமல்படுத்துங்கள் pipelineகுழுக்கள் பாதுகாப்பற்ற கட்டமைப்புகளைத் தடுக்கவும், குறிப்பிட்ட பணிகளுக்கான இரகசிய அணுகலைக் கட்டுப்படுத்தவும், அபாயகரமான உள்ளமைவுகள் உற்பத்தி நிலையை அடைவதற்கு முன்பே அவற்றைத் தடுக்கவும் முடியும்.
ஏனென்றால் இது உள்ளேயே நடக்கிறது CI/CD பணிப்பாய்வு, டெவலப்பர்கள் தங்கள் பணிபுரியும் முறையை மாற்ற வேண்டியதில்லை. பாதுகாப்பு அதன் ஒரு பகுதியாகிறது. pipelineஇது ஒரு தனிப் படிநிலை அல்ல.
இதன் விளைவாக, குழுக்கள் இரகசியங்கள் எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதைத் தெளிவாகக் காணவும், அவை வெளிப்படும் விதத்தைக் கட்டுப்படுத்தவும், விநியோக வேகத்தைக் குறைக்காமல் கசிவுகளின் அபாயத்தைக் குறைக்கவும் முடிகிறது.
இறுதி எண்ணங்கள்
இருப்பினும், இது பெரும்பாலும் கவனிக்கப்படாத ஒருவித ஆபத்தையும் ஏற்படுத்துகிறது.
சூழல் மாறிகளைப் பயன்படுத்துவதா வேண்டாமா என்பதல்ல சவால்; மாறாக, செயலாக்கத்தின் போது அவற்றின் வெளிப்பாட்டை எவ்வாறு கட்டுப்படுத்துவது என்பதே சவால்.
நவீன டெவொப்ஸ் சூழல்களில், உருவாக்கச் செயல்முறைக்குப் பிறகு கசிவுகளைக் கண்டறிவதை விட, செயல்முறையின்போதே அவற்றைத் தடுப்பது மிகவும் முக்கியமானது.




