मार्च 2023 के अंत में, सुरक्षा शोधकर्ताओं ने एक ख़तरे वाले अभिनेता का पर्दाफाश किया जटिल सॉफ्टवेयर आपूर्ति श्रृंखला पर हमला 3CX के व्यावसायिक संचार सॉफ़्टवेयर पर, मुख्य रूप से कंपनी का वॉयस और वीडियो-कॉलिंग डेस्कटॉप ऐप। शोधकर्ताओं ने चेतावनी दी कि ऐप को किसी तरह ट्रोजनाइज़ किया गया था और इसका उपयोग करने से संगठन किसी ख़तरे वाले अभिनेता द्वारा संभावित घुसपैठ योजना के संपर्क में आ सकता है। हमले को 'स्मूथ ऑपरेटर' करार दिया गया था और कुछ सबूत हैं जो बताते हैं कि यह महीनों से चल रहा था।
तो वास्तव में क्या हुआ, इस ट्रोजन संस्करण का उपयोग आपको कैसे जोखिम में डालता है, और सॉफ़्टवेयर हस्ताक्षर और सत्यापन को नियोजित करके इसे कैसे रोका जा सकता है?
पहली चीज़ें पहली: 3CX क्या है?
3CX एक सॉफ्टवेयर-आधारित, खुला मानक आईपी पीबीएक्स (प्राइवेट ब्रांच एक्सचेंज) है जो पारंपरिक हार्डवेयर पीबीएक्स की जगह लेता है। इसे व्यवसायों को वीओआईपी (वॉयस ओवर इंटरनेट प्रोटोकॉल) तकनीक का उपयोग करके कॉल करने और प्राप्त करने की अनुमति देने के लिए डिज़ाइन किया गया है, जो इंटरनेट पर ध्वनि संचार प्रसारित करता है। 3CX में वीडियो कॉन्फ्रेंसिंग, उपस्थिति, त्वरित संदेश और बहुत कुछ जैसी उन्नत सुविधाएँ भी शामिल हैं, और इन्हें ऑन-प्रिमाइसेस या क्लाउड में तैनात किया जा सकता है। विंडोज़, मैकओएस और लिनक्स कुछ लोकप्रिय ऑपरेटिंग सिस्टम हैं जिन पर ऐप उपलब्ध है। इसके अतिरिक्त, क्रोम एक्सटेंशन की बदौलत क्लाइंट ब्राउज़र के माध्यम से पहुंच योग्य है और क्लाइंट के पास एक PWA संस्करण भी है, साथ ही यह एंड्रॉइड और आईओएस उपकरणों के लिए एक मोबाइल एप्लिकेशन के रूप में उपलब्ध है।
आप 3CX वेबसाइट से सॉफ़्टवेयर आपूर्ति श्रृंखला हमले के संभावित प्रभावों का कुछ अंदाजा लगा सकते हैं, जिसमें 600,000 मिलियन से अधिक दैनिक उपयोगकर्ताओं के साथ 12 कंपनियां अपने ऐप का उपयोग करने का दावा करती हैं।
हमले की एक गुप्त झलक: आपको क्या जानना चाहिए
यह थोड़ा जटिल है इसलिए हम इसे चरणों में विभाजित करेंगे:
- आप एक डाउनलोड करें डेस्कटॉप ऐप का ट्रोजनीकृत संस्करण या आपने इसे पहले ही इंस्टॉल कर लिया है और बस इसे ट्रोजनीकृत संस्करण के साथ अपडेट करें।
- 3CXDesktopApp.exe निष्पादन योग्य ffmpeg.dll नामक एक दुर्भावनापूर्ण डायनेमिक लिंक लाइब्रेरी (DLL) को लोड करता है।
- ffmpeg.dll का उपयोग d3dcompiler_47.dll से एन्क्रिप्टेड पेलोड निकालने और उसे निष्पादित करने के लिए किया जाता है।
- इसके बाद मैलवेयर GitHub पर होस्ट की गई मासूम दिखने वाली आइकन फ़ाइलों को डाउनलोड करता है जिसमें छवियों के अंत में बेस 64 एन्कोडेड स्ट्रिंग्स जुड़े होते हैं।
- उस एन्कोडेड डेटा को फिर डिकोड किया जाता है और दूसरे चरण को डाउनलोड करने के लिए उपयोग किया जाता है, जिसमें एन्क्रिप्टेड सी एंड सी सर्वर होता है जिसे संभावित अंतिम पेलोड को पुनः प्राप्त करने के लिए पिछला दरवाजा कनेक्ट करता है।
- अंतिम चरण में, जानकारी-चोरी करने वाली कार्यक्षमता को व्यवहार में लाया जाता है, जिसमें क्रोम, एज, ब्रेव और फ़ायरफ़ॉक्स ब्राउज़र से सिस्टम डेटा और ब्राउज़र डेटा एकत्र करना शामिल है। इसमें स्थान तालिका से ब्राउज़िंग इतिहास और जानकारी की क्वेरी करना और साथ ही संभावित रूप से इतिहास तालिका की क्वेरी करना शामिल हो सकता है।
शुरूआती तौर पर, 3सीएक्स ने हमले को कमतर आंका, लेकिन बाद में स्वीकार किया कि यह एक वास्तविक खतरा था और अपने विशिष्ट निर्देशों के साथ ऐप को अनइंस्टॉल करने और फिर से इंस्टॉल करने के साथ-साथ पीडब्ल्यूए संस्करण का उपयोग करने का सुझाव दिया, जब तक कि कंपनी घटना को सुलझाने और इसे कम करने में कामयाब नहीं हो जाती।
ध्यान में रखने योग्य एक और बहुत महत्वपूर्ण कारक यह है कि समझौते में एक कोड हस्ताक्षर प्रमाणपत्र शामिल है जिसका उपयोग ट्रोजनाइज्ड बायनेरिज़ पर हस्ताक्षर करने के लिए किया जाता है। खैर, बिल्कुल नहीं - यह वास्तव में एक ज्ञात भेद्यता का उपयोग कर रहा है जिसे कहा जाता है CVE-2013-3900 (मूल रूप से 2013 में प्रकाशित लेकिन 2022 में और फिर इस सप्ताह अपडेट किया गया) इसे बनाने के लिए दिखाई देते हैं वैध रूप से हस्ताक्षरित।
डेजा वु: ऐसा पहले भी हो चुका है
यदि यह कहानी ए 3CX ट्रोजन संस्करण परिचित है क्योंकि यह पहले भी हो चुका है.
इस मामले में, यह आप हैंस्पष्ट करें कि क्या कंपनी द्वारा उपयोग की जाने वाली ओपन-सोर्स अपस्ट्रीम लाइब्रेरी संक्रमित हो गई है या किसी वास्तविक हमले ने कंपनी के विकास वातावरण का उल्लंघन किया है।
अन्य प्रसिद्ध हमलों में, 'किंग्सलेयर' (2016) से लेकर 'CCleaner' (2017), 'VestaCP' (2018), 'WIZVERA VeraPort' (2020), और 'सोलरविंड्स' (2020) तक, यह एक है आम ख़तरा अभिनेता किसी कंपनी के सर्वर, निर्माण वातावरण, या उसके वास्तविक डाउनलोड करने योग्य निष्पादन योग्य से समझौता करने का प्रयास करता है। आख़िरकार, किसी बुरी और खतरनाक चीज़ को ऐसी चीज़ के रूप में प्रच्छन्न करना जिस पर आप भरोसा कर सकते हैं, लोगों पर भरोसा करने और अपना पेलोड डाउनलोड करने का एक शानदार तरीका है।
यह ए की परिभाषा का हिस्सा है सॉफ्टवेयर आपूर्ति श्रृंखला पर हमला - हमलावरों ने बड़ी संख्या में पीड़ितों को दुर्भावनापूर्ण सॉफ़्टवेयर वितरित करने के लिए सॉफ़्टवेयर आपूर्ति श्रृंखला से समझौता किया। इनमें से प्रत्येक प्रसिद्ध मामले में, हमलावर वैध सॉफ़्टवेयर पैकेजों में दुर्भावनापूर्ण कोड डालने में सक्षम थे, जिन्हें बाद में उपयोगकर्ताओं को वितरित किया गया था। हमलावर अक्सर किसी विश्वसनीय सॉफ़्टवेयर विक्रेता या प्रदाता, जैसे सॉफ़्टवेयर अपडेट सर्वर या कोड हस्ताक्षर प्रमाणपत्र से समझौता करके ऐसा करने में सक्षम होते थे।
किसी वैध एप्लिकेशन का संशोधित संस्करण डाउनलोड करने के लिए बिना सोचे-समझे ग्राहकों को बुलाकर हमलावर अनिवार्य रूप से लगभग कुछ भी छिपा सकते हैं।
और यहाँ मुख्य समस्या है - 'असंदेह'। आख़िरकार, निष्पादन योग्य, बाइनरी, या छवि निर्माता कंपनी से आई थी, जिसे स्पष्ट रूप से इसके द्वारा अनुमोदित किया गया था, और इसमें एक हस्ताक्षरित प्रमाणपत्र भी शामिल है। एक ग्राहक और क्या कर सकता है? क्या उन्हें प्रत्येक अपडेट को सत्यापित करने के लिए कंपनी को कॉल करना चाहिए? पिछले दरवाज़ों के अस्तित्व के लिए कोड को स्कैन करें (यदि उपलब्ध हो)? यह बेतुका और अवास्तविक है। पर वहाँ is कुछ ऐसा जो किया जा सकता है.
आप प्रमाणपत्र के अलावा विश्वास की एक परत कैसे जोड़ सकते हैं?
प्रस्तावित मॉडल यह काफी सरल है और कोड हस्ताक्षर प्रमाणपत्रों के समान विचार पर आधारित है। कोड हस्ताक्षर प्रमाणपत्र किसी तीसरे पक्ष द्वारा जारी किया गया एक डिजिटल प्रमाणपत्र है जिसका उपयोग सॉफ़्टवेयर या कोड पर डिजिटल हस्ताक्षर करने के लिए किया जाता है। जब सॉफ़्टवेयर को कोड हस्ताक्षर प्रमाणपत्र के साथ हस्ताक्षरित किया जाता है, तो यह उपयोगकर्ताओं को सॉफ़्टवेयर को स्थापित करने या निष्पादित करने से पहले उसकी प्रामाणिकता और अखंडता को सत्यापित करने की अनुमति देता है।
हस्ताक्षरित प्रमाणपत्र विश्वसनीय तृतीय-पक्ष द्वारा जारी किए जाते हैं प्रमाणपत्र प्राधिकारी (सीए), जो सॉफ़्टवेयर प्रकाशक की पहचान और सॉफ़्टवेयर कोड की अखंडता को सत्यापित करते हैं। प्रमाणपत्र प्राधिकरण सॉफ़्टवेयर का डिजिटल हस्ताक्षर बनाने के लिए क्रिप्टोग्राफ़िक एल्गोरिदम का उपयोग करता है, जिसे बाद में हस्ताक्षरित कोड में शामिल किया जाता है। जब कोई उपयोगकर्ता सॉफ़्टवेयर स्थापित या निष्पादित करने का प्रयास करता है, तो उनका सिस्टम यह सुनिश्चित करने के लिए डिजिटल हस्ताक्षर की जांच करेगा कि यह प्रमाणपत्र प्राधिकारी द्वारा उत्पन्न हस्ताक्षर से मेल खाता है। यदि हस्ताक्षर मेल खाते हैं, तो सॉफ़्टवेयर को प्रामाणिक माना जाता है और हस्ताक्षर किए जाने के बाद से इसमें कोई छेड़छाड़ नहीं की गई है।
यह प्रणाली सार्वजनिक-कुंजी क्रिप्टोग्राफी पर आधारित है, जिसे असममित क्रिप्टोग्राफी के रूप में भी जाना जाता है - क्रिप्टोग्राफी की एक विधि जो डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए दो अलग-अलग कुंजी, एक सार्वजनिक कुंजी और एक निजी कुंजी का उपयोग करती है। कोड हस्ताक्षर के संदर्भ में, सॉफ़्टवेयर और कोड पर हस्ताक्षर करने के लिए एक निजी-सार्वजनिक कुंजी जोड़ी का उपयोग किया जाता है।
इस प्रक्रिया में, सॉफ़्टवेयर प्रकाशक एक निजी-सार्वजनिक कुंजी जोड़ी उत्पन्न करता है, जहाँ निजी कुंजी को गुप्त रखा जाता है और सार्वजनिक कुंजी दूसरों को उपलब्ध कराई जाती है। सॉफ़्टवेयर प्रकाशक तब अपनी निजी कुंजी का उपयोग उस सॉफ़्टवेयर या कोड का डिजिटल हस्ताक्षर बनाने के लिए करता है जिस पर वे हस्ताक्षर करना चाहते हैं। यह डिजिटल हस्ताक्षर गणितीय एल्गोरिथ्म के माध्यम से सॉफ़्टवेयर या कोड को चलाने और फिर प्रकाशक की निजी कुंजी के साथ परिणामी हैश मान को एन्क्रिप्ट करने से उत्पन्न एक हैश मान है।
जब कोई उपयोगकर्ता हस्ताक्षरित सॉफ़्टवेयर या कोड डाउनलोड करता है, तो उनका सिस्टम डिजिटल हस्ताक्षर को डिक्रिप्ट करने और यह सत्यापित करने के लिए सॉफ़्टवेयर प्रकाशक की सार्वजनिक कुंजी का उपयोग करता है कि यह डाउनलोड किए गए सॉफ़्टवेयर या कोड के हैश मान से मेल खाता है। यदि डिजिटल हस्ताक्षर वैध है, तो उपयोगकर्ता आश्वस्त हो सकता है कि सॉफ़्टवेयर प्रकाशक द्वारा हस्ताक्षरित होने के बाद से सॉफ़्टवेयर या कोड के साथ छेड़छाड़ नहीं की गई है।
इस सरल अवधारणा के आधार पर प्रस्तावित समाधान प्रत्येक नई रिलीज, बाइनरी और छवि पर सीधे कंपनी की कुंजी या बिल्ड पाइपलाइन कुंजी के साथ हस्ताक्षर करना है और उपयोगकर्ता से सॉफ़्टवेयर डाउनलोड या अपडेट करते समय हस्ताक्षर को सत्यापित करने के लिए कहना है।
निःसंदेह, चीज़ें हमेशा इतनी सरल नहीं होतीं। यदि बुरे कलाकारों ने बिल्ड सर्वर में घुसपैठ कर ली है तो वहां बिल्ड पर हस्ताक्षर करना पहले से ही व्यर्थ है। यदि प्रमुख बुनियादी ढांचे से समझौता किया गया है तो पूरी कवायद भी व्यर्थ है।
लेकिन, उपयोगकर्ताओं से किसी हस्ताक्षर को सत्यापित करने के लिए कहना, कुछ तेज़ और आसान जो स्वचालित रूप से किया जा सकता है, अगले सॉफ़्टवेयर आपूर्ति श्रृंखला हमले को रोकने में मदद के लिए भुगतान करने की एक छोटी सी कीमत है।
लेकिन रुकिए, आप शायद कह रहे होंगे कि क्या होगा यदि यह वास्तव में एक ओपन-सोर्स लाइब्रेरी अपस्ट्रीम है जो संदूषण का स्रोत है? ऐसे मामले में बिल्ड पर हस्ताक्षर करना, फिर से, व्यर्थ है क्योंकि समझौता कोड 'अंतर्निहित' है।
यहीं पर हमें इन हस्ताक्षरों पर हस्ताक्षर और सत्यापन के आधार पर विश्वास के पारिस्थितिकी तंत्र पर विचार शुरू करने की आवश्यकता है। यदि इन ओपन-सोर्स पैकेजों पर हस्ताक्षर किए गए थे और कंपनी के कोड में शामिल किए जाने पर हस्ताक्षर सत्यापित किए गए थे तो इससे उल्लंघन की संभावना कम हो सकती है।
जहां मुंशी आता है
मुंशी नामक एक उपकरण लागू किया है वैलिंट जो आपको सक्षम बनाता है हस्ताक्षर करें और सत्यापित करें फ़ाइलें, फ़ोल्डर और छवियाँ। जटिल PKI सिस्टम को बनाए रखने की आवश्यकता के बिना, टूल वांछित आर्टिफैक्ट पर हस्ताक्षर करने के लिए आपकी पहले से स्थापित सत्यापित पहचान (उदाहरण के लिए आपकी Google, Microsoft, GitHub, या AWS पहचान) का उपयोग करने का एक नया दृष्टिकोण लागू करता है। आप बाद में उसी टूल का उपयोग यह सत्यापित करने के लिए कर सकते हैं कि कलाकृति पर हस्ताक्षर किए गए हैं और उस पर हस्ताक्षर करने के लिए उपयोग की गई पहचान क्या थी।
मान लीजिए कि आपकी बिल्ड पाइपलाइन अंतिम आर्टिफैक्ट के रूप में एक कंटेनर छवि तैयार करती है। उस छवि के बनने के ठीक बाद आपको उस पर हस्ताक्षर करना चाहिए और उस हस्ताक्षरित संस्करण को रिपॉजिटरी में अपलोड करना चाहिए जहां आपके ग्राहक उसे डाउनलोड कर सकें। एक बार हस्ताक्षर करने के बाद उस छवि को संशोधित नहीं किया जा सकता - वह लॉक हो गई है। जो कोई भी यह जांचना चाहता है कि यह हस्ताक्षरित है और हस्ताक्षर की पहचान कंपनी द्वारा प्रकाशित की गई जानकारी से मेल खाती है।
यह उपकरण कार्यान्वयन द्वारा प्रदान की गई क्षमताओं का केवल एक हिस्सा है सास समाधान लिखें आपके संगठन के लिए. आपकी सॉफ़्टवेयर आपूर्ति श्रृंखला सुरक्षा और आपकी समग्र पारदर्शिता दोनों में सुधार करने के उद्देश्य से, यह देखने और जांचने का हर कारण है कि स्क्राइब आपको क्या पेशकश कर सकता है।
यह सामग्री आपके लिए स्क्राइब सिक्योरिटी द्वारा लाई गई है, जो एक अग्रणी एंड-टू-एंड सॉफ्टवेयर आपूर्ति श्रृंखला सुरक्षा समाधान प्रदाता है - जो संपूर्ण सॉफ्टवेयर आपूर्ति श्रृंखलाओं में कोड कलाकृतियों और कोड विकास और वितरण प्रक्रियाओं के लिए अत्याधुनिक सुरक्षा प्रदान करता है। और अधिक जानें.