AWS - Abusing Lambda Extensions
Lambda Extensions
आंतरिक एक्सटेंशन रनटाइम प्रक्रिया के साथ विलीन होते हैं, इसके स्टार्टअप को भाषा-विशिष्ट पर्यावरण चर और रैपर स्क्रिप्ट का उपयोग करके संशोधित करते हैं। यह अनुकूलन विभिन्न रनटाइम्स पर लागू होता है, जिसमें Java Correto 8 और 11, Node.js 10 और 12, और .NET Core 3.1 शामिल हैं।
बाहरी एक्सटेंशन अलग प्रक्रियाओं के रूप में चलते हैं, Lambda फ़ंक्शन के जीवनचक्र के साथ संचालन संरेखण बनाए रखते हैं। वे विभिन्न रनटाइम्स के साथ संगत हैं जैसे Node.js 10 और 12, Python 3.7 और 3.8, Ruby 2.5 और 2.7, Java Corretto 8 और 11, .NET Core 3.1, और कस्टम रनटाइम्स।
स्थिरता, अनुरोध चुराने और अनुरोधों को संशोधित करने के लिए बाहरी एक्सटेंशन
यह पाया गया कि Lambda रनटाइम वातावरण में डिफ़ॉल्ट Linux कर्नेल “process_vm_readv” और “process_vm_writev” सिस्टम कॉल के साथ संकलित है। और सभी प्रक्रियाएँ एक ही उपयोगकर्ता आईडी के साथ चलती हैं, यहां तक कि बाहरी एक्सटेंशन के लिए बनाई गई नई प्रक्रिया भी। इसका मतलब है कि एक बाहरी एक्सटेंशन को डिज़ाइन के अनुसार Rapid की हीप मेमोरी तक पूर्ण पढ़ने और लिखने की पहुंच है।
इसके अलावा, जबकि Lambda एक्सटेंशन आह्वान घटनाओं की सदस्यता लेने की क्षमता रखते हैं, AWS इन एक्सटेंशनों को कच्चा डेटा नहीं दिखाता। यह सुनिश्चित करता है कि एक्सटेंशन संवेदनशील जानकारी तक पहुंच नहीं प्राप्त कर सकते जो HTTP अनुरोध के माध्यम से भेजी जाती है।
चर AWS_LAMBDA_RUNTIME_API
Rapid API के IP पते और पोर्ट नंबर को बच्चे रनटाइम प्रक्रियाओं और अतिरिक्त एक्सटेंशनों को इंगित करता है।
AWS_LAMBDA_RUNTIME_API
पर्यावरण चर को एक पोर्ट
में बदलकर, जिसके पास हम पहुंच रखते हैं, Lambda रनटाइम के भीतर सभी क्रियाओं को इंटरसेप्ट करना संभव है (मैन-इन-द-मिडल)। यह संभव है क्योंकि एक्सटेंशन Rapid Init के समान विशेषाधिकारों के साथ चलता है, और सिस्टम का कर्नेल प्रक्रिया मेमोरी में संशोधन की अनुमति देता है, जिससे पोर्ट नंबर को बदलना संभव होता है।
क्योंकि एक्सटेंशन किसी भी रनटाइम कोड से पहले चलते हैं, पर्यावरण चर को संशोधित करने से रनटाइम प्रक्रिया (जैसे, Python, Java, Node, Ruby) पर प्रभाव पड़ेगा जब यह शुरू होता है। इसके अलावा, हमारे बाद लोड किए गए एक्सटेंशन, जो इस चर पर निर्भर करते हैं, भी हमारे एक्सटेंशन के माध्यम से रूट करेंगे। यह सेटअप मैलवेयर को सुरक्षा उपायों या लॉगिंग एक्सटेंशनों को पूरी तरह से बायपास करने की अनुमति दे सकता है जो सीधे रनटाइम वातावरण के भीतर हैं।
संदर्भ
Last updated