एक निर्भरता हमले से पेपल, माइक्रोसॉफ्ट, एप्पल, नेटफ्लिक्स, उबेर और 30 अन्य कंपनियों में कोड निष्पादन की अनुमति मिलती है

कुछ दिनों पहले आश्चर्यजनक रूप से सरल विधि जारी की गई थी जो अनुप्रयोगों में निर्भरता पर हमला करने की अनुमति देती है जो आंतरिक पैकेज रिपॉजिटरी का उपयोग करके विकसित किए गए हैं। जिन शोधकर्ताओं ने समस्या की पहचान की वे आपका कोड चलाने में सक्षम थे पेपाल, Microsoft, Apple, Netflix, Uber, Tesla, और Shopify सहित 35 कंपनियों के आंतरिक सर्वर पर।

हैक को बग बाउंटी कार्यक्रमों के हिस्से के रूप में किया गया था, हमला करने वाली कंपनियों के साथ समन्वय में, और अपराधियों को कमजोरियों की पहचान करने के लिए पहले ही बोनस में $ 130.000 मिले हैं।

विधि इस तथ्य पर आधारित है कि कई कंपनियां अपने आंतरिक अनुप्रयोगों में NPM, PyPI और RubyGems की मानक रिपॉजिटरी निर्भरता का उपयोग करती हैं, साथ ही आंतरिक निर्भरताएं जो सार्वजनिक रूप से वितरित नहीं की जाती हैं या अपने स्वयं के भंडार से डाउनलोड की जाती हैं।

समस्या यह है कि पैकेज प्रबंधक जैसे npm, पाइप और रत्न वे सार्वजनिक रिपॉजिटरी से भी कंपनियों की आंतरिक निर्भरता को डाउनलोड करने का प्रयास करते हैं। एक हमले के लिए, बस आंतरिक निर्भरता वाले संकुल के नामों को परिभाषित करें और उन्हीं नामों के साथ अपने स्वयं के पैकेज बनाएँ एनपीएम, PyPI और रूबीगैम के सार्वजनिक रिपॉजिटरी में।

समस्या NPM, PyPI और RubyGems के लिए विशिष्ट नहीं है, और यह खुद को अन्य सिस्टम जैसे NuGet, Maven, और Yarn पर भी प्रकट करता है।

प्रस्तावित विधि के लिए विचार एक शोधकर्ता द्वारा गलती से देखा गया कि सार्वजनिक रूप से उपलब्ध कोड में GitHub पर पोस्ट किया गया था, कई कंपनियां अपनी प्रकट फ़ाइलों से अतिरिक्त निर्भरता का उल्लेख नहीं हटाती हैं आंतरिक परियोजनाओं में या विस्तारित कार्यक्षमता को लागू करते समय उपयोग किया जाता है। वेब सेवाओं के लिए जावास्क्रिप्ट कोड में भी इसी तरह के निशान पाए गए हैं, साथ ही कई कंपनियों के Node.JS, पायथन और रूबी परियोजनाओं में भी।

मुख्य लीक सामग्री के एम्बेडिंग से संबंधित थे पैकेज प्रक्रिया के दौरान सार्वजनिक रूप से उपलब्ध जावास्क्रिप्ट कोड में package.json फ़ाइलों से, साथ ही आवश्यकता () कॉल में वास्तविक पथ तत्वों के उपयोग के साथ, जो निर्भरता नामों का न्याय करने के लिए उपयोग किया जा सकता है।

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

निर्भरताएँ डाउनलोड करते समय, पैकेज मैनेजर npm, pip, और gem मुख्य रूप से प्राथमिक सार्वजनिक रिपॉजिटरी NPM, PyPI और RubyGems से संकुल स्थापित करते थे, जिन्हें उच्च प्राथमिकता माना जाता था।

निजी कंपनियों की रिपॉजिटरी में समान नामों के साथ समान पैकेज की उपस्थिति को बिना किसी चेतावनी या क्रैश का कारण बताए अनदेखा कर दिया गया यह प्रशासकों का ध्यान आकर्षित कर सकता है। PyPI में, डाउनलोड प्राथमिकता संस्करण संख्या (भले ही पैकेज का सबसे हाल का संस्करण डाउनलोड किया गया हो) से प्रभावित थी। एनपीएम और रूबीगैम में, प्राथमिकता केवल भंडार पर निर्भर थी।

शोधकर्ता ने NPM, PyPI और RubyGems के रिपॉजिटरी में पैकेज रखे हैं जो सिस्टम के बारे में जानकारी इकट्ठा करने और प्राप्त जानकारी भेजने के लिए, इंस्टॉलेशन (NPM में पूर्व-इंस्टाल्ड) पर चलने वाली स्क्रिप्ट में कोड जोड़ते हुए, मिली-जुली आंतरिक निर्भरता के नामों को पार करते हैं। बाहरी मेजबान के लिए।

हैक की सफलता के बारे में जानकारी प्राप्त करने के लिए, बाहरी ट्रैफ़िक को अवरुद्ध करने वाले फ़ायरवॉल को बायपास करें, DNS प्रोटोकॉल पर गुप्त चैनल संचार को व्यवस्थित करने की विधि। कोड जो चल रहा था उसने हमलावर डोमेन के नियंत्रण में हमलावर डोमेन में मेजबान को हल किया, जिससे DNS सर्वर पर सफल संचालन के बारे में जानकारी एकत्र करना संभव हो गया। होस्ट, उपयोगकर्ता नाम और वर्तमान पथ के बारे में जानकारी पारित की गई थी।

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

Fuente: https://medium.com/


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।