
Kubernetes DaemonSet जो सभी कंटेनरों और होस्ट JVM में JNDI lookups को अक्षम करके Log4j2 CVE-2021-44228 को कम करने के लिए JVM-level hotpatch तैनात करता है।
यह प्रोजेक्ट नीचे बताए अनुसार समाप्त किया जा रहा है।
प्रोजेक्ट 2023-01-01 से मुद्दे स्वीकार करना बंद कर देगा और अपडेट नहीं किया जाएगा। इस तिथि के बाद, यह प्रोजेक्ट असमर्थित होगा और इस प्रोजेक्ट से जुड़ी कोई नई रिलीज़ या आर्टिफैक्ट उत्पन्न नहीं होंगे।
प्रोजेक्ट रिपॉजिटरी 2023-04-01 को स्थायी रूप से संग्रहीत (केवल-पढ़ने के लिए) कर दी जाएगी।
जैसा कि मूल प्रोजेक्ट दस्तावेज़ में उल्लेख किया गया है, यह हमेशा Kubernetes उपयोगकर्ताओं की सहायता के लिए एक अस्थायी उपाय के रूप में था, और इसने केवल Log4j2 CVE-2021-44228 और CVE-2021-45046 से सुरक्षा जोखिम का आंशिक शमन प्रदान किया। सभी Log4j उपयोगकर्ताओं को दृढ़ता से सलाह दी जाती है कि वे इन CVEs से जुड़े किसी भी जोखिम को पूरी तरह से कम करने के लिए प्रोजेक्ट के पैच किए गए संस्करण में अपडेट करें।
नवीनतम रिलीज़ से जुड़े रिलीज़ आर्टिफैक्ट इस प्रोजेक्ट के उपभोक्ताओं के लिए स्थायी रूप से उपलब्ध रहेंगे जो इसे अपने Kubernetes वातावरण में तैनात करना जारी रखते हैं। विशेष रूप से, DaemonSet मेनिफेस्ट और ECR Public conainer image समाप्ति के बाद भी उपलब्ध रहेंगे, लेकिन अब समर्थित या अपडेट नहीं किए जाएंगे।
AWS ने एक RPM विकसित किया है जो JVM-स्तरीय हॉट-पैच करता है जो Log4j2 लाइब्रेरी से JNDI लुकअप को अक्षम करता है, जिससे Log4j2 CVE-2021-44228 और CVE-2021-45046 का शमन होता है।
Apache Log4j2 CVE-2021-44228 नोड एजेंट AWS में Kubernetes टीम द्वारा बनाया गया एक ओपन सोर्स प्रोजेक्ट है। इसे DaemonSet के रूप में चलाने और Log4j2 CVE-2021-44228 के प्रभाव को कम करने के लिए डिज़ाइन किया गया है, जो Apache Log4j2 संस्करण < 2.15.0 चलाने वाले एप्लिकेशन को प्रभावित करता है जब अविश्वसनीय स्रोतों से इनपुट संसाधित करते हैं। इस DeamonSet को चलाने से कंटेनरों के साथ-साथ होस्ट पर चलने वाले JVM को भी पैच किया जाएगा।
यह क्या करता है: प्रत्येक वर्कर नोड पर एक क्रॉन एंट्री स्थापित की जाएगी जो चल रहे JVM की खोज करने और एक एजेंट इंजेक्ट करने की प्रक्रिया चलाती है जो Log4J2 CVE का शमन करता है। सभी JVM, जिनमें कंटेनरों में चलने वाले JVM भी शामिल हैं, इस प्रकार हॉट-पैच किए जाएंगे। वर्तमान में, हॉट-पैच प्रक्रिया को 30 मिनट के अंतराल पर 15 मिनट के जिटर के साथ चलाने के लिए कॉन्फ़िगर किया गया है। रन के बीच प्रभावी विंडो 15 से 45 मिनट तक हो सकती है।
नोट: Log4j2 भेद्यता और AWS प्रतिक्रिया के बारे में अतिरिक्त जानकारी AWS सुरक्षा बुलेटिन में पाई जा सकती है।
नोट: 4/20/22 को, इमेज (v0.0.16) को Amazon Linux 1 और 2 के नवीनतम पैच के साथ अपडेट किया गया था। यदि आपने इस DaemonSet का पिछला संस्करण स्थापित किया है और यह अभी भी चल रहा है, तो आपको नवीनतम RPM स्थापित करने के लिए daemonset.yaml फ़ाइल को पुनः लागू करना चाहिए। यदि आपको अब log4j पैच की आवश्यकता नहीं है, तो आपको DaemonSet को हटा देना चाहिए और RPM को अनइंस्टॉल कर देना चाहिए क्योंकि RPM के पुराने संस्करणों (< 1.1-16) में एक भेद्यता थी जो एक हमलावर को कंटेनर से बचकर अंतर्निहित होस्ट तक पहुंच प्राप्त करने की अनुमति दे सकती थी।
नोट: संस्करण 1.3-5 ALAS2-2022-1806 और ALAS-2022-1601 को संबोधित करता है। अतिरिक्त जानकारी के लिए Amazon Linux "log4j hotpatch" <1.3-5 local privilege escalation to root देखें।
kubectl apply -f https://raw.githubusercontent.com/aws-samples/kubernetes-log4j-cve-2021-44228-node-agent/main/daemonset.yaml
एकल पॉड की स्पॉट जांच करें:
kubectl get pods -l job=node-patch-installer -n node-configuration-daemonset
kubectl logs <pod-name> -c node-patch-installer -n node-configuration-daemonset
या प्रत्येक नोड के लिए पुष्टि प्राप्त करें:
kubectl logs -l job=node-patch-installer -c node-patch-installer -n node-configuration-daemonset | grep 'installed'
यदि स्थापना सफल रही, तो लॉग फ़ाइल की अंतिम पंक्ति installed and verified पढ़ेगी अन्यथा एक त्रुटि लॉग की जाएगी।
daemonset.yaml फ़ाइल में नए URI:tag को दर्शाने के लिए संपादित करें, फिर मेनिफेस्ट को अपने क्लस्टर पर लागू करें।Apache Log4j2 < 2.15.0 JNDI सुविधाएं जो कॉन्फ़िगरेशन, लॉग संदेशों और पैरामीटर में उपयोग की जाती हैं, हमलावर-नियंत्रित LDAP और अन्य JNDI-संबंधित एंडपॉइंट के खिलाफ सुरक्षा प्रदान नहीं करती हैं। एक हमलावर जो लॉग संदेशों या लॉग संदेश पैरामीटर को नियंत्रित कर सकता है, जब message lookup substitution सक्षम होता है तो LDAP सर्वर से लोड किए गए मनमाने कोड को निष्पादित कर सकता है। Log4j2 संस्करण < 2.15.0 से, इस व्यवहार को डिफ़ॉल्ट रूप से अक्षम कर दिया गया है। पूर्ण विवरण CVE बुलेटिन में पाया जा सकता है।
आप Log4j2 भेद्यता के बारे में अतिरिक्त जानकारी AWS सुरक्षा बुलेटिन में पा सकते हैं।
AWS ने एक RPM विकसित किया है जो JVM-स्तरीय हॉटपैच करता है जो Log4j2 लाइब्रेरी से JNDI लुकअप को अक्षम करता है, जिससे Log4j2 समस्या का शमन होता है जो होस्ट पर JVM के साथ-साथ कंटेनरों में चलने वाले JVM पर भी लागू होता है। यह प्रोजेक्ट RPM को Kubernetes DaemonSet के रूप में पैकेज करता है।
जब स्थापित होता है, तो प्रत्येक वर्कर नोड पर एक प्रक्रिया चलेगी जो चल रहे JVM की खोज करती है और Log4j2 भेद्यता को कम करने के लिए JVM में एक एजेंट इंजेक्ट करती है। एजेंट सभी लोडेड org.apache.logging.log4j.core.lookup.JndiLookup इंस्टेंस की lookup() विधि को बिना शर्त स्ट्रिंग Patched JndiLookup::lookup() वापस करने के लिए पैच करने का प्रयास करता है। यह Java प्रक्रिया को पुनरारंभ किए बिना Log4j2 में CVE-2021-44228 रिमोट कोड निष्पादन भेद्यता को संबोधित करने के लिए डिज़ाइन किया गया है।
यह प्रक्रिया डिफ़ॉल्ट रूप से हर 30 मिनट में चलने के लिए कॉन्फ़िगर की गई है, और उन क्लस्टरों में सुरक्षा की एक परत जोड़ेगी जहां एप्लिकेशन को अभी तक अपडेटेड Log4j2 निर्भरता के साथ पैच नहीं किया गया है।
आप हॉटपैच के बारे में अधिक जानकारी AWS ओपन सोर्स ब्लॉग में पा सकते हैं।
कंटेनर इमेज aws-containers ECR पब्लिक रिपॉजिटरी में होस्ट की गई है।