जावा लाइब्रेरी Log4j में कुख्यात भेद्यता के लिए आपातकालीन पैच फुलप्रूफ नहीं है। अपाचे सॉफ्टवेयर फाउंडेशन एक बार और सभी के लिए भेद्यता को ठीक करने के लिए एक नया संस्करण जारी कर रहा है।
जावा के लिए बेतहाशा लोकप्रिय पुस्तकालय में एक भेद्यता वैश्विक आईटी परिदृश्य को हिला रही है। यह अनुमान लगाया गया है कि पुस्तकालय अधिकांश कॉर्पोरेट वातावरण में मौजूद है।
Log4j मुख्य रूप से लॉगिंग के लिए उपयोग किया जाता है। अनुप्रयोगों में घटनाओं को नोट्स के साथ पंजीकृत किया जा सकता है। लॉगिन प्रयास के बाद लॉगिन विवरण के प्रिंटआउट के बारे में सोचें। या, जावा में वेब एप्लिकेशन के मामले में, उस ब्राउज़र का नाम जिसे उपयोगकर्ता कनेक्ट करने का प्रयास कर रहा है।
बाद के उदाहरण आम हैं। दोनों ही मामलों में, एक बाहरी उपयोगकर्ता उस लॉग को प्रभावित करता है जो Log4j आउटपुट करता है। उस प्रभाव का दुरुपयोग संभव है। 4 सितंबर, 13 और 2013 दिसंबर, 5 के बीच किसी भी Log2021j संस्करण के लॉग जावा एप्लिकेशन को स्थानीय डिवाइस पर रिमोट सर्वर से कोड चलाने के लिए निर्देश देने में सक्षम हैं।
2013 से, Log4j एक API: JNDI, या Java नामकरण और निर्देशिका इंटरफ़ेस को संसाधित कर रहा है। JNDI को जोड़ने से जावा एप्लिकेशन को स्थानीय डिवाइस पर रिमोट सर्वर से कोड चलाने की अनुमति मिलती है। प्रोग्रामर किसी एप्लिकेशन में रिमोट सर्वर के बारे में विवरण की एक पंक्ति जोड़कर निर्देश देते हैं।
समस्या यह है कि न केवल प्रोग्रामर अनुप्रयोगों में नियम जोड़ने में सक्षम हैं। मान लीजिए Log4j लॉगिन प्रयासों के उपयोगकर्ता नाम लॉग करता है। जब कोई उपयोगकर्ता उपयोगकर्ता नाम फ़ील्ड में उपरोक्त पंक्ति में प्रवेश करता है, तो Log4j लाइन चलाता है और जावा एप्लिकेशन निर्दिष्ट सर्वर पर कोड चलाने के लिए एक कमांड की व्याख्या करता है। वही मामलों के लिए जाता है जहां Log4j एक HTTPS अनुरोध लॉग करता है। यदि आप ब्राउज़र का नाम लाइन में बदलते हैं, तो Log4j लाइन चलाता है, अप्रत्यक्ष रूप से इसे वांछित कोड चलाने के लिए निर्देश देता है।
इमरजेंसी पैच भी हो सकता है असुरक्षित
9 दिसंबर को बड़े पैमाने पर भेद्यता प्रकाश में आई। Log4j के डेवलपर Apache Software Foundation ने भेद्यता को ठीक करने के लिए एक आपातकालीन पैच (2.15) जारी किया। तब से, सॉफ्टवेयर विक्रेताओं के लिए संस्करण 2.15 को संसाधित करना और संगठनों के लिए एक पैच प्रदान करना सर्वोच्च प्राथमिकता रही है।
हालांकि, सुरक्षा संगठन लूनासेक का कहना है कि पैच पूरी तरह से वाटरटाइट नहीं है। किसी सेटिंग को समायोजित करना और लॉग किए गए JNDI कमांड को निष्पादित करना संभव रहता है।
कृपया ध्यान दें: प्रासंगिक सेटिंग को मैन्युअल रूप से समायोजित किया जाना चाहिए, ताकि 2.15 के असंशोधित रूप वास्तव में सुरक्षित हों। फिर भी, लूना सेक अनुशंसा करता है कि आपूर्तिकर्ता और संगठन Log4j 2.16 पर अपडेट करें। 2.16 लूनासेक के जवाब में अपाचे सॉफ्टवेयर फाउंडेशन द्वारा प्रकाशित किया गया था। नया संस्करण कमजोर सेटिंग को पूरी तरह से हटा देता है, जिससे दुरुपयोग के लिए स्थितियां बनाना असंभव हो जाता है।