नया ODGen टूल Node.js लाइब्रेरीज़ प्लेटोब्लॉकचेन डेटा इंटेलिजेंस में 180 शून्य-दिनों का पता लगाता है। लंबवत खोज. ऐ.

नया ODGen टूल Node.js लाइब्रेरी में 180 शून्य-दिनों का पता लगाता है

जॉन्स हॉपकिन्स विश्वविद्यालय के शोधकर्ताओं ने हाल ही में हजारों Node.js पुस्तकालयों में एक चौंकाने वाली 180 शून्य-दिन की कमजोरियों का खुलासा किया, एक नए कोड विश्लेषण उपकरण का उपयोग करके जिसे उन्होंने विशेष रूप से इस उद्देश्य के लिए विकसित किया था, जिसे ODGen कहा जाता है।

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

इस महीने की शुरुआत में यूसेनिक्स सुरक्षा संगोष्ठी में जारी एक पेपर में, जॉन्स हॉपकिन्स के शोधकर्ता - सोंग ली, मिंगकिंग कांग, जियानवेई होउ और यिन्झी काओ - ने ओडीजेन को वर्तमान कोड-विश्लेषण और तथाकथित ग्राफ़ क्वेरी-आधारित के लिए एक बेहतर विकल्प के रूप में वर्णित किया। Node.js कमजोरियों को खोजने के लिए दृष्टिकोण।

जावास्क्रिप्ट में कोड-इंजेक्शन खामियों जैसे व्यक्तिगत भेद्यता प्रकारों का पता लगाने में मदद करने के लिए कार्यक्रम विश्लेषण-आधारित दृष्टिकोण उपयोगी साबित हुए हैं। लेकिन Node.js प्लेटफॉर्म में मौजूद सभी प्रकार की कमजोरियों का पता लगाने के लिए उन्हें आसानी से बढ़ाया नहीं जा सकता है, शोधकर्ताओं ने कहा। इसी तरह, ग्राफ-आधारित कोड-विश्लेषण विधियां - जहां कोड को पहले ग्राफ के रूप में दर्शाया जाता है और फिर विशिष्ट कोडिंग त्रुटियों के लिए पूछताछ की जाती है - सी ++ और पीएचपी जैसे वातावरण में अच्छी तरह से काम करती है। हालांकि, प्रोग्रामिंग भाषा के गतिशील सुविधाओं के व्यापक उपयोग के कारण, जावास्क्रिप्ट कमजोरियों के लिए खनन में ग्राफ-आधारित दृष्टिकोण उतने कुशल नहीं हैं, उन्होंने नोट किया।

जावास्क्रिप्ट कमजोरियों को खोजने के लिए एक 'उपन्यास' दृष्टिकोण

इसलिए, शोधकर्ताओं ने इसके बजाय वह विकसित किया जो उन्होंने वर्णित किया था एक "उपन्यास" और बेहतर विधि जिसे ऑब्जेक्ट डिपेंडेंस ग्राफ (ODG) कहा जाता है जिसका उपयोग Node.js कमजोरियों का पता लगाने के लिए किया जा सकता है। उन्होंने कहा कि उन्होंने कमजोरियों का पता लगाने के लिए Node.js कार्यक्रमों के लिए "ODG" उत्पन्न करने के लिए ODGen को लागू किया।

जॉन्स हॉपकिन्स विश्वविद्यालय में कंप्यूटर विज्ञान के सहायक प्रोफेसर और शोध रिपोर्ट के सह-लेखक काओ, सामान्य रूप से ग्राफ-आधारित कोड विश्लेषण और उनके प्रस्तावित उद्देश्य निर्भरता ग्राफ का वर्णन करने के लिए कुछ समानताएं उपयोग करते हैं। "अगर हम एक भेद्यता को एक विशेष पैटर्न के रूप में मानते हैं - कहते हैं, एक लाल नोड से जुड़ा एक हरा नोड और फिर एक काला नोड - एक ग्राफ-आधारित कोड-विश्लेषण उपकरण पहले प्रोग्राम को कई नोड्स और किनारों के साथ एक ग्राफ में परिवर्तित करता है," काओ कहते हैं . "फिर उपकरण एक भेद्यता का पता लगाने के लिए ग्राफ में ऐसे पैटर्न की तलाश करता है।"

ऑब्जेक्ट डिपेंडेंस ग्राफ़ जिसे शोधकर्ताओं ने प्रस्तावित किया है, इस दृष्टिकोण को जावास्क्रिप्ट ऑब्जेक्ट्स को नोड्स के रूप में प्रस्तुत करके और सुविधाओं को जोड़कर परिष्कृत करता है - जिसमें ऑब्जेक्ट्स के बीच निर्भरता शामिल है - जो प्रोग्रामिंग भाषा के लिए विशिष्ट हैं, और फिर त्रुटियों के लिए पूछताछ करते हैं। काओ का वर्णन है कि मुट्ठी भर चावल में अनाज का उपयोग करने की विधि कैसे काम करती है: यदि सभी अनाज उबालने से पहले समान दिखते हैं, लेकिन उबालने के बाद दो अलग-अलग रंगों को मानते हैं - एक अच्छे अनाज का प्रतिनिधित्व करता है और दूसरा खराब अनाज - तो यह पता लगाना और बाहर निकालना आसान हो जाता है खराब अनाज। काओ कहते हैं, "अमूर्त व्याख्या उबलने की प्रक्रिया की तरह है जो चावल को परिवर्तित करती है - यानी प्रोग्राम - अलग-अलग रंगीन वस्तुओं में" इसलिए त्रुटियों को पहचानना आसान होता है।

कीड़े की एक किस्म

यह देखने के लिए कि क्या उनका दृष्टिकोण काम करता है, शोधकर्ताओं ने पहले नोड पैकेज मैनेजर (एनपीएम) रिपोजिटरी पर नोड.जेएस पैकेज में 330 पहले रिपोर्ट की गई कमजोरियों के नमूने के खिलाफ ओडीजेन का परीक्षण किया। परीक्षण ने स्कैनर को 302 कमजोरियों में से 330 की सही पहचान करते हुए दिखाया। अपेक्षाकृत उच्च सटीकता दर से उत्साहित होकर, शोधकर्ताओं ने npm में लगभग 300,000 जावा पैकेजों के विरुद्ध ODGen चलाया। स्कैनर ने पैकेज में कुल 2,964 संभावित कमजोरियों की सूचना दी। शोधकर्ताओं ने उनमें से 264 की जाँच की - सभी औसतन प्रति सप्ताह 1,000 से अधिक डाउनलोड के साथ - और 180 को वैध कमजोरियों के रूप में पुष्टि करने में सक्षम थे। उनमें से 122 आवेदन स्तर पर थे, 15 पैकेज में थे जो अन्य अनुप्रयोगों या कोड द्वारा आयात किए गए थे, और शेष XNUMX अप्रत्यक्ष पैकेज में मौजूद थे।

पुष्टि की गई कमजोरियों की एक बहुलता (80) जिसका पता ODGen ने लगाया, वे कमांड इंजेक्शन प्रवाह थे जो हमलावरों को एक कमजोर एप्लिकेशन के माध्यम से ऑपरेटिंग सिस्टम स्तर पर मनमाने कोड को निष्पादित करने की अनुमति देते हैं। तीस पथ ट्रैवर्सल दोष थे; 24 सक्षम कोड छेड़छाड़, और 19 में एक विशिष्ट प्रकार का कमांड इंजेक्शन हमला शामिल था जिसे प्रोटोटाइप प्रदूषण कहा जाता है।

समय टिकट:

से अधिक डार्क रीडिंग