PyPI रिपॉजिटरी में 46% Python पैकेज में संभावित रूप से असुरक्षित कोड होता है

तुर्कू विश्वविद्यालय (फिनलैंड) के शोधकर्ताओं के एक समूह ने संभावित खतरनाक निर्माणों के उपयोग के लिए पीईपीआई रिपॉजिटरी में पैकेजों के विश्लेषण के परिणाम प्रकाशित किए जो कमजोरियां पैदा कर सकते हैं। 197 हजार पैकेजों के विश्लेषण के दौरान 749 हजार संभावित सुरक्षा समस्याओं की पहचान की गई। 46% पैकेजों में कम से कम एक ऐसी समस्या है। सबसे आम समस्याओं में अपवाद प्रबंधन और कोड प्रतिस्थापन की अनुमति देने वाली सुविधाओं के उपयोग से संबंधित कमियां हैं।

पहचानी गई 749 हजार समस्याओं में से 442 हजार (41%) को मामूली, 227 हजार (30%) को मध्यम समस्या और 80 हजार (11%) को खतरनाक बताया गया। कुछ पैकेज भीड़ से अलग दिखते हैं और उनमें हजारों समस्याएं होती हैं: उदाहरण के लिए, पीईजीजीआई पैकेज ने 2589 समस्याओं की पहचान की, जो मुख्य रूप से "ट्राई-एक्सेप्ट-पास" निर्माण के उपयोग से संबंधित हैं, और ऐपइंजन-एसडीके पैकेज में 2356 समस्याएं पाई गईं। Genie.libs.ops, pbcore और Genie.libs.parser पैकेज़ में भी बड़ी संख्या में समस्याएँ मौजूद हैं।

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

उदाहरण के लिए, विश्लेषक अविश्वसनीय यादृच्छिक संख्या जनरेटर और एमडी5 जैसे हैशिंग एल्गोरिदम के उपयोग को एक सुरक्षा समस्या मानता है, जबकि कोड में ऐसे एल्गोरिदम का उपयोग उन उद्देश्यों के लिए किया जा सकता है जो सुरक्षा को प्रभावित नहीं करते हैं। विश्लेषक अचार, yaml.load, सबप्रोसेस और eval जैसे असुरक्षित कार्यों में बाहरी डेटा के किसी भी प्रसंस्करण को एक समस्या मानता है, लेकिन इस उपयोग में जरूरी नहीं कि कोई भेद्यता शामिल हो और वास्तव में इन कार्यों का उपयोग सुरक्षा खतरे के बिना लागू किया जा सकता है .

अध्ययन में प्रयुक्त परीक्षणों में से:

  • संभावित रूप से असुरक्षित फ़ंक्शंस exec, mktemp, eval,mark_safe इत्यादि का उपयोग करना।
  • फ़ाइलों तक पहुंच अधिकारों की असुरक्षित सेटिंग.
  • सभी नेटवर्क इंटरफेस के लिए एक नेटवर्क सॉकेट संलग्न करना।
  • कोड में सख्ती से निर्दिष्ट पासवर्ड और कुंजियों का उपयोग।
  • पूर्वनिर्धारित अस्थायी निर्देशिका का उपयोग करना।
  • कैच-ऑल-स्टाइल अपवाद हैंडलर में पास और जारी रखें का उपयोग करना;
  • डिबगिंग मोड सक्षम होने के साथ फ्लास्क वेब फ्रेमवर्क पर आधारित वेब एप्लिकेशन लॉन्च करना।
  • असुरक्षित डेटा अक्रमांकन विधियों का उपयोग करना।
  • MD2, MD4, MD5 और SHA1 हैश फ़ंक्शन का उपयोग करता है।
  • असुरक्षित डेस सिफर और एन्क्रिप्शन मोड का उपयोग।
  • Python के कुछ संस्करणों में असुरक्षित HTTPSConnection कार्यान्वयन का उपयोग।
  • urlopen में फ़ाइल:// योजना निर्दिष्ट करना।
  • क्रिप्टोग्राफ़िक कार्य निष्पादित करते समय छद्म यादृच्छिक संख्या जनरेटर का उपयोग करना।
  • टेलनेट प्रोटोकॉल का उपयोग करना।
  • असुरक्षित XML पार्सर्स का उपयोग करना.

इसके अतिरिक्त, यह ध्यान दिया जा सकता है कि PyPI निर्देशिका में 8 दुर्भावनापूर्ण पैकेज पाए गए थे। हटाने से पहले, समस्याग्रस्त पैकेज 30 हजार से अधिक बार डाउनलोड किए गए थे। दुर्भावनापूर्ण गतिविधि को छिपाने और पैकेजों में सरल स्थैतिक विश्लेषकों से चेतावनियों को बायपास करने के लिए, कोड ब्लॉक को बेस 64 का उपयोग करके एन्कोड किया गया था और एक eval कॉल का उपयोग करके डिकोडिंग के बाद निष्पादित किया गया था।

नोबलसे, जेनेसिसबॉट, आर, पीड, नोबलसे2 और नोबलसेव2 पैकेज में क्रोम और एज ब्राउज़र में संग्रहीत क्रेडिट कार्ड नंबर और पासवर्ड को इंटरसेप्ट करने के लिए कोड होते हैं, साथ ही डिस्कॉर्ड एप्लिकेशन से खाता टोकन स्थानांतरित करने और स्क्रीन सामग्री के स्क्रीनशॉट सहित सिस्टम डेटा भेजने के लिए कोड होते हैं। . पाइटैगोरा और पाइटैगोरा2 पैकेज में तृतीय-पक्ष निष्पादन योग्य कोड को लोड करने और निष्पादित करने की क्षमता शामिल थी।

स्रोत: opennet.ru

एक टिप्पणी जोड़ें