ரூட்கிட் கண்டறிதல் - குறியீட்டு ஒருமைப்பாடு

ரூட்கிட்கள் இனி சிஸ்டம் அட்மின்களுக்கு மட்டுமானவை அல்ல: அவை ரெப்போக்களிலும் இருக்கின்றன.

பொருளடக்கம்

கட்டாயம் படிக்க வேண்டிய பதிவுகள்

சமீபத்திய சுவாரஸ்யமான பதிவு

ரூட்கிட் என்பது என்ன?

ரூட்கிட் என்பது இனி வெறும் கீழ்நிலை தீம்பொருள் அல்ல. அதன் சாராம்சத்தில், அது மறைவாகச் செயல்படக்கூடியது. அங்கீகரிக்கப்படாத அணுகலை வழங்கும் தீம்பொருள் தன் இருப்பை மறைத்துக்கொண்டு. பாரம்பரிய சூழல்களில், ரூட்கிட்கள் கெர்னல் ஸ்பேஸ் அல்லது சிஸ்டம் சேவைகளில் இயங்குகின்றன. இருப்பினும், இன்று, அவை உங்கள் ரெபாசிட்டரிகள், CI சிஸ்டம்கள் மற்றும் பேக்கேஜ் மேனிஃபெஸ்ட்களிலும் வசித்து, வெளிப்படையாகத் தெரிந்தே மறைந்து, குறியீட்டின் ஒருமைப்பாட்டைக் குலைத்து, பில்ட் சிஸ்டம்களைப் பாதிக்கின்றன.

சிஸ்டம் ரூட்கிட்கள் முதல் ரெபாசிட்டரி ரூட்கிட்கள் வரை

ஒரு காலத்தில் சிஸ்டம் இன்ஜினியர்கள் கெர்னல் ரூட்கிட்களுக்காக மிகவும் சிரமப்பட்டனர். இவை ஒரு சிஸ்டத்தின் மீது முழுமையான கட்டுப்பாட்டை அளித்து, சிஸ்டம் அழைப்புகளை இடைமறித்து, செயல்முறைகளை மறைத்து, குறியீட்டின் ஒருமைப்பாட்டைப் பாதித்து வந்தன. இப்போது, ​​ஒரு டெவலப்பரை மையமாகக் கொண்ட சூழ்நிலையைக் கருத்தில் கொள்வோம்: ஒரு தீங்கிழைக்கும் நபர் உங்கள் கணினியில் ஒரு ரூட்கிட்டைச் செலுத்துகிறார். கிட் ரெப்போ or சார்பு மரம்இந்த ரெபாசிட்டரி ரூட்கிட் என்பது, உங்கள் பில்ட் வெளியீடுகளைக் கையாளும் அல்லது பின்கதவுகள் வழியாக ஊடுருவும் ஒரு குறியீடாகும். இது, ஒரு சிஸ்டம் அவற்றை இயக்கும் முன்பே, உங்கள் பேக்கேஜ் ஆர்டிஃபேக்டுகளின் ஒரு பகுதியாக மாறிவிடுகிறது. ரூட்கிட்கள் உங்கள் சோர்ஸ், டிபென்டென்சிகள் மற்றும் பிறவற்றிற்குள் ஊடுருவிச் செல்கின்றன. CI/CD பாய்கிறது.

குறியீட்டுத் தொகுப்புகள் மற்றும் சார்புநிலைகளில் ரூட்கிட்கள் எவ்வாறு மறைந்திருக்கின்றன

டெவலப்பர்கள் கட்டாயம் கவனிக்க வேண்டிய, உறுதியான ரூட்கிட் தாக்குதல் முறைகளைப் பற்றி விரிவாகப் பார்ப்போம்:

  • தெளிவற்ற அல்லது தவறாக வழிநடத்தும் commits
    கற்பனை செய்து பாருங்கள் a commit அது “தட்டச்சுப் பிழையைச் சரிசெய்” என்று கூறினாலும், உண்மையில் அது இயங்கும் நேரத்தில் தீங்கிழைக்கும் பேலோடுகளை மறைகுறியாக்கம் நீக்கும் ஒரு லோடரைச் செலுத்துகிறது. ரூட்கிட் கண்டறிதல் என்பது தந்திரமானது, ஏனெனில் commit செய்திகள் நோக்கத்தை மறைக்கின்றன.
  • மாற்றப்பட்ட அல்லது பின்கதவு கொண்ட நூலகங்கள்
    ஒரு பொதுவான பயன்பாட்டுச் செயல்பாடு, நுட்பமாகப் பின்கதவு செய்யப்பட்ட பதிப்பால் மாற்றப்பட்டுள்ளது. அது சோதனைகளில் தேர்ச்சி பெற்றாலும், வேலை நேரம் முடிந்த பிறகு இரகசியங்களை ஒரு தொலைநிலை சேவையகத்தில் பதிவு செய்கிறது. அந்த நூலகம் பழக்கமானதாகத் தோன்றினாலும், குறியீட்டின் நம்பகத்தன்மை சிதைக்கப்பட்டுள்ளது.
  • சமரசம் செய்யப்பட்ட மூன்றாம் தரப்பு தொகுப்புகள் மற்றும் கடந்து செல்லும் சார்புகள்
    நீங்கள் நிறுவியது lib-crypto@2.0.1; மூலத்தில், யாரோ பதிப்பை விஷமாக்கியுள்ளனர். 2.0.0 தீம்பொருளுடன். இப்போது உங்கள் pipeline தற்செயலாக ஒரு ரூட்கிட்டைப் பதிவிறக்கியிருக்கலாம், அல்லது அதைவிட மோசமாக, உங்கள் லாக்ஃபைல் திசைமாறி, நீங்கள் அந்தப் பாதிப்புள்ள குறியீட்டைப் பதிவிறக்கியிருக்கலாம்.
  • தூங்கும் குறியீடு மற்றும் தர்க்கக் குண்டுகள்

நிரல் வாரக்கணக்கில் அல்லது மாதக்கணக்கில் பாதிப்பில்லாமல் இருந்து, பின்னர் விழித்துக்கொள்ளும். உதாரணமாக:

இன்று சோதனைகள் வெற்றி பெறுகின்றன, ஆனால் காலம் கடந்த பிறகே குறியீட்டின் நம்பகத்தன்மை குறைவதை நீங்கள் கவனிக்கிறீர்கள்.

DevOps-இல் ரூட்கிட் கண்டறிதல் ஏன் முக்கியத்துவம் பெறுகிறது?

உங்கள் ரூட்கிட்கள் pipeline மேலும், ரெப்போக்கள் உண்மையான டெவலப்பர் பணிப்பாய்வுகளுக்கு அச்சுறுத்தலாக அமைகின்றன:

  • கவனிக்கப்படாமல் கடந்துசெல்லும் திருத்தப்பட்ட கட்டமைப்புகள்: ஒரு ரூட்கிட் என்றால் hooks உங்கள் பில்ட் ஸ்கிரிப்ட்டில், உதாரணமாக ஒரு தீங்கிழைக்கும் நிறுவிய பின் or setup.pyஆனால், உங்கள் CI தேர்ச்சி பெற்றுவிடும், ஆனாலும் உங்களுக்குத் தெரியாமலேயே பாதிப்புக்குள்ளான கோப்புகளை நீங்கள் பதிவேற்றுவீர்கள்.
  • சீரற்ற அல்லது மீண்டும் உருவாக்க முடியாத கட்டமைப்புகள்: ஒரு ரூட்கிட் காரணமாக, டெவலப்பர் மெஷின்களுக்கும் சிஐ ஏஜென்ட்களுக்கும் இடையே பில்டுகள் வேறுபடலாம். அந்த வேறுபாடு, கோட் ஒருமைப்பாட்டிற்கு ஒரு எச்சரிக்கை அறிகுறியாகும், ஆனால் நீங்கள் அதைச் சரிபார்க்கும் பட்சத்தில் மட்டுமே.
  • வெளியீடுகள் முழுவதும் தொடரும் சமரசம்: ஒருமுறை உட்பொதிந்துவிட்டால், அது கிளை இணைப்புகள், செர்ரி-பிக்ஸ் மற்றும் எதிர்கால வெளியீடுகளைத் தாங்கி நிற்கும். இதைவிட மோசமாக, அது புதுப்பிப்புகளுக்குள் ஊடுருவி, உங்கள் விநியோகச் சங்கிலியைச் சீர்குலைக்கக்கூடும்.
  • Pipeline டெவலப்பர் சூழல்களில் நச்சுத்தன்மை மற்றும் பக்கவாட்டு நகர்வு: ஒரு ரூட்கிட், CI உள்ளமைவுகள், பகிரப்பட்ட ரன்னர்கள் மற்றும் பகிரப்பட்ட நற்சான்றிதழ்களைக் கொண்ட டெவலப்பர் இயந்திரங்கள் வழியாகப் பரவக்கூடும். குறியீட்டின் ஒருமைப்பாடு, குறியீட்டில் மட்டுமல்லாமல், சூழல்கள் முழுவதிலும் மீறப்படுகிறது.

நடைமுறை ரூட்கிட் கண்டறிதல் Pipelines

உங்கள் ரூட்கிட் கண்டறிதல் திறனை மேம்படுத்துவதற்கான, டெவலப்பர்களுக்கு எளிதான, செயல்படுத்தக்கூடிய நுட்பங்கள் இதோ:

• முக்கியமான கோப்புகளுக்கான ஹாஷ் சரிபார்ப்பு மற்றும் சார்புகள்

முக்கிய கோப்புகளுக்கு SHA-256 (அல்லது அது போன்ற) ஒன்றைக் கணக்கிடுங்கள் தேவை.txt, தொகுப்பு-பூட்டு. jsonஅல்லது உயர் மட்ட உருவாக்க ஸ்கிரிப்டுகள்:

அந்தக் கோப்புகளில் செய்யப்படும் எந்தவொரு மாற்றமும், தீங்கிழைக்கும் சாத்தியமுள்ள ஒரு நகர்வைக் குறிக்கிறது.

• SBOM (மென்பொருள் மூலப்பொருட்களின் பட்டியல்) சரிபார்ப்பு

உருவாக்குதல் SBOM Syft அல்லது SPDX போன்ற கருவிகளைக் கொண்டு, உங்கள் பில்டில் எந்தெந்த சார்புநிலைகள் (மற்றும் பதிப்புகள்) உள்ளன என்பதைத் துல்லியமாகக் கண்காணிக்கவும். ஒப்பிடவும். SBOMஎதிர்பாராத அல்லது தீங்கிழைக்கும் சேர்த்தல்களைக் கண்டறிய, உருவாக்கங்கள் முழுவதும் கண்காணிக்கப்படுகிறது.

• கையொப்பமிடப்பட்டது commitமற்றும் கையொப்ப சரிபார்ப்பு

அமலாக்கு Git commit -S மற்றும் CI இல் கையொப்பங்களைச் சரிபார்க்கவும்:

புதிய, கையொப்பமிடப்படாத, அல்லது சந்தேகத்திற்குரிய வகையில் கையொப்பமிடப்பட்ட commit இது ஒரு சோர்ஸ்-ரூட்கிட் ஆய்வுச் சோதனையாக இருக்கலாம்.

• உருவாக்கத்தின் போது அல்லது இயங்கும் போது நடத்தை அடிப்படையிலான முரண்பாடு கண்டறிதல்

அசாதாரணமான நடத்தைகளைக் கண்டறிய, உங்கள் கட்டமைப்பை செயல்திறன் பகுப்பாய்வு மூலம் கருவியாக்குங்கள்: எடுத்துக்காட்டாக, செயல்பாட்டின் போது ஏற்படும் எதிர்பாராத பிணைய அழைப்புகள். npm நிறுவு or குழாய் நிறுவல்அல்லது, பாதுகாக்கப்பட்ட கோப்பகங்களில் உள்ள கோப்பு மாற்றங்கள்:

நிறுவலின் போது ஏற்படும் எதிர்பாராத வெளிச்செல்லும் தரவுப் போக்குவரத்து, ரூட்கிட் ஏற்றப்படும் கட்டமாக இருக்கலாம்.

• தெளிவற்ற அல்லது அதிக என்ட்ரோபி கொண்ட குறியீட்டுப் பகுதிகளைக் கண்டறிதல்

சந்தேகத்திற்கிடமான குறியீட்டுச் சிதைவு அல்லது ASCII அல்லாத/படிக்கக் கடினமான பகுதிகளைக் கண்டறியும் கருவிகளைப் பயன்படுத்தவும். pull requestsஉதாரணமாக, இதற்கான ஸ்கேனை ஒருங்கிணைக்கவும் Base64 தொகுதிகள் அல்லது விசித்திரமான exec/eval பயன்பாடு. சிறப்பித்துக் காட்டப்பட்ட குறியீடு, செயலற்ற நிலையில் உள்ள ஒரு லோடராகவோ அல்லது மறைகுறியாக்கப்பட்ட பேலோடாகவோ இருக்கலாம்.

விநியோகச் சங்கிலி முழுவதும் குறியீட்டு ஒருமைப்பாட்டைப் பராமரித்தல்

நீண்ட கால அடிப்படையில், ரூட்கிட் கண்டறிதலை இயல்பான செயலாக மாற்றும் நடைமுறைகள் உங்களுக்குத் தேவை:

  • சார்பு நிலைப்பூட்டல் மற்றும் பூட்டுக் கோப்புகள்: எப்போதும் commit பூட்டு கோப்புகள் (package-lock.json, requirements.lock, முதலியனதற்செயலாக உருமாற்றப்பட்ட கடந்துசெல்லும் சார்புகளைப் பெறுவதையும், அதன்மூலம் ஒரு ரூட்கிட் ஊடுருவும் அபாயத்தையும் தவிர்க்க, பதிப்புகளை நிலைப்படுத்துங்கள்.
  • வெளியீடுகள் மற்றும் தொகுப்புகளின் மறைகுறியாக்கக் கையொப்பமிடல்: GPG அல்லது அதுபோன்றவற்றைக் கொண்டு உங்கள் சொந்த உருவாக்கக் கோப்புகளில் கையொப்பமிடுங்கள். நுகர்வோர் கையொப்பங்களைச் சரிபார்க்கின்றனர்; ஒரு ரூட்கிட் உங்கள் வெளியீட்டில் முறைகேடு செய்திருந்தால், சரிபார்ப்பு தோல்வியடைந்து, நம்பகத்தன்மைச் சங்கிலியை முறித்துவிடும்.
  • வழக்கமான ஆய்வு மூன்றாம் தரப்பு மற்றும் கடப்பு மாற்றங்கள்: புதிய அல்லது மாறிய சார்புகளைக் கொடியிடும் சார்பு கண்காணிப்புக் கருவிகளைப் பயன்படுத்தவும். இவற்றுடன் இணைக்கவும் SBOM செருகப்பட்ட அல்லது மாற்றப்பட்ட தொகுதிகளைக் கண்டறிவதற்கான வேறுபாடுகள்.
  • சார்பு விலகல் அல்லது தொடர்ச்சியான கண்காணிப்பு அங்கீகரிக்கப்படாத மாற்றங்கள்: தானியங்கலும் SBOM உங்கள் CI-இல் உள்ள வேறுபாடுகள்: எதிர்பாராத சார்புநிலைகள் தோன்றினால் உருவாக்கங்களைத் தோல்வியடையச் செய்யுங்கள். காலப்போக்கில் சார்புநிலைகளின் விலகலைக் கண்காணித்து, எதிர்பார்க்கப்பட்ட நிலையிலிருந்து ஏதேனும் விலகினால் எச்சரிக்கை செய்யுங்கள்: எ.கா., ஒரு ரூட்கிட். commit அல்லது மாற்றப்பட்ட சார்பு.

தீர்மானம்

ரூட்கிட்கள் இனி சிஸ்டம் அட்மின்கள் மற்றும் கெர்னல்களுக்குள் மட்டும் அடங்கியிருக்கவில்லை; அவை உங்கள் ரெப்போக்கள், பில்டுகள் மற்றும் CI போன்ற மென்பொருள் உருவாக்கத்தின் மையப்பகுதிக்குள் பரவிவிட்டன. pipelineடெவலப்பர்கள் ரூட்கிட் கண்டறிதலையும் குறியீட்டு ஒருமைப்பாட்டையும் முக்கிய பயன்பாட்டுப் பாதுகாப்பு அக்கறைகளாகக் கருத வேண்டும். ஹாஷ் சரிபார்ப்பைப் பயன்படுத்துவதன் மூலம், SBOM தணிக்கை, கையொப்பமிடப்பட்டது commits, நடத்தை முரண்பாடு கண்டறிதல் மற்றும் சார்புநிலை தூய்மையாக்கம் ஆகியவற்றின் மூலம், குறியீட்டில் இயங்கும் ரூட்கிட்களுக்கு எதிராக நீங்கள் நடைமுறைப் பாதுகாப்புகளை உருவாக்குகிறீர்கள்.

போன்ற ஒரு கருவி சைஜெனிமென்பொருள் விநியோகச் சங்கிலியை வலுப்படுத்துவதில் கவனம் செலுத்தும் இது, DevSecOps குழுக்களுக்குக் குறியீட்டின் ஒருமைப்பாட்டைப் பராமரிக்கவும், பணிப்பாய்வின் ஆரம்பத்திலேயே ரூட்கிட் அச்சுறுத்தல்களைக் கண்டறியவும் வலுவூட்டுகிறது. இது டெவலப்பர்களுக்கான முதன்மை பாதுகாப்புக்கு ஒரு இன்றியமையாத கூட்டாளியாகும்; உங்கள் ரெப்போ, பில்ட் அல்லது ப்ரொடக்‌ஷன் முழுவதும் அவை பரவுவதற்கு முன்பே இவற்றைத் தடுக்க உதவுகிறது.

sca-tools-software-composition-analysis-tools
உங்கள் மென்பொருள் அபாயங்களுக்கு முன்னுரிமை அளித்து, சரிசெய்து, பாதுகாக்கவும்.
உங்கள் இலவச கணக்கைப் பெறுங்கள்.
கடன் அட்டை தேவையில்லை.

உங்கள் மென்பொருள் உருவாக்கம் மற்றும் விநியோகத்தைப் பாதுகாக்கவும்

Xygeni தயாரிப்பு தொகுப்புடன்