
Project Aura: सुरक्षा ऑडिटिंग और कोड इंट्रोस्पेक्शन

विकास में वर्तमान प्रवृत्ति विकास चरण में बहुत सारे पैकेजों का उपयोग करने की है, भले ही वे केवल तुच्छ कार्यक्षमता प्रदान करते हों और 11 पंक्तियों के कोड से मिलकर बने हों। जब हम इसे नए पैकेज प्रकाशित करने की बहुत उदार नीतियों के साथ जोड़ते हैं, तो अब हम डेवलपर्स को लक्षित करने वाले दुर्भावनापूर्ण हमलों में वृद्धि देख रहे हैं। खतरे के अभिनेताओं द्वारा कई अलग-अलग दृष्टिकोण अपनाए गए हैं:
ये उन तकनीकों के कुछ उदाहरण हैं जिनके द्वारा कोई डेवलपर स्वयं को समझौता कर सकता है। यह इस तथ्य द्वारा समर्थित है कि PyPI या NPM जैसे रिपॉजिटरी में अपलोड की गई चीज़ों पर कोई निगरानी प्रक्रिया नहीं है, और पिछली घटनाओं की खोज पूरी तरह से संयोग से हुई है। हमारा लक्ष्य इसे सुधारना है।
हमने एक फ्रेमवर्क बनाया है जिसे बड़े पैमाने पर स्रोत कोड स्कैन करने के लिए डिज़ाइन किया गया है (जैसे कि पूरा PyPI रिपॉजिटरी), विसंगतियों और संभावित दुर्भावनापूर्ण इरादे के साथ-साथ कमजोरियों की तलाश करना। यह फ्रेमवर्क मांग पर स्रोत कोड को स्कैन करने के लिए भी डिज़ाइन किया गया है, जैसे जब कोई डेवलपर किसी पैकेज को स्थापित करता है या केवल फ़ाइलों/निर्देशिकाओं का कोई सेट। वर्तमान में कार्यान्वयन Python भाषा और PyPI को लक्षित कर रहा है, हालांकि, इसे अन्य भाषाओं को शामिल करने की क्षमता प्रदान करने के लिए डिज़ाइन किया गया है। (जैसे JavaScript और NPM)
उपयोग के मामलों के सेट में शामिल हैं, लेकिन यह इन्हीं तक सीमित नहीं है:
एक अत्यधिक अनुकूलित हाइब्रिड विश्लेषण इंजन इसे प्राप्त करता है। कोड निष्पादन के बिना पूरी तरह से सुरक्षित वातावरण में स्थैतिक कोड विश्लेषण का उपयोग करके विश्लेषण किया जाता है। Aura कोर इंजन स्रोत कोड से पार्स किए गए AST ट्री का विश्लेषण कर रहा है, व्यवहार विश्लेषण और कोड निष्पादन प्रवाह कर रहा है। इंजन AST ट्री को नियमों के एक सेट जैसे कि स्थिर प्रसार, फोल्डिंग या स्थैतिक मूल्यांकन का उपयोग करके फिर से लिखने में भी सहायता करता है; ये तकनीकों का एक सेट है जो कंपाइलर कोड को अनुकूलित करने के लिए उपयोग करते हैं। यही कारण है कि यह विश्लेषण दृष्टिकोण "हाइब्रिड" है क्योंकि यह एक पूरी तरह से सुरक्षित आंशिक मूल्यांकन के साथ स्थैतिक विश्लेषण को बढ़ाता है जो हमें सरल अस्पष्टता तंत्र को हराने की अनुमति देता है।
नीचे, आप Aura AST ट्रांसफॉर्मेशन इंजन द्वारा मान्यता प्राप्त विभिन्न स्रोत कोड "अस्पष्टता" तकनीकों का एक प्रदर्शन देख सकते हैं:

फ्रेमवर्क के बारे में जानने और इसका उपयोग शुरू करने के लिए, स्थापना, कॉन्फ़िगरेशन और उपयोग दस्तावेज़ीकरण पढ़ें।
Aura का मुख्य भाग विसंगतियों या संभावित कमजोरियों के लिए स्रोत कोड का विश्लेषण कर रहा है। Aura में कई अंतर्निहित विश्लेषक हैं जो विसंगतियों की तलाश करते हैं जैसे कि सेटअप स्क्रिप्ट में eval का उपयोग; अन्य विश्लेषक फ़ाइल सिस्टम संरचना (गैर-स्रोत कोड) को देखते हैं, उदाहरण के लिए लीक हो रहे क्रेडेंशियल्स, हार्ड-कोडेड API टोकन आदि की तलाश करते हैं। ये विश्लेषक उत्पन्न करते हैं जिसे हम हिट कहते हैं जो पाई गई विसंगतियों को परिभाषित करते हैं और इसमें एक स्कोर भी शामिल हो सकता है, जिसका उपयोग स्कैन किए गए डेटा की सुरक्षा आभा की गणना करने के लिए किया जाता है। इनपुट डेटा की कार्यक्षमता के आधार पर प्रस्तुत विसंगतियों का उचित निर्णय लेने की सलाह दी जाती है। उदाहरण के लिए, requests लाइब्रेरी के लिए नेटवर्क-संबंधित कॉल शामिल करना पूरी तरह से सामान्य है, जबकि साथ ही, एक इमेज प्रोसेसिंग लाइब्रेरी से नेटवर्क पर डेटा भेजने की उम्मीद नहीं की जाती है। बड़े पैमाने पर रिपॉजिटरी स्कैन या अन्य उत्पादों में एकीकरण के लिए उपयुक्त JSON प्रारूप में डेटा आउटपुट करने का भी समर्थन है। अन्य घटकों के विवरण और उपयोग के लिए दस्तावेज़ीकरण देखें।


यह परियोजना GPLv3 लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE.txt फ़ाइल देखें। इस फ्रेमवर्क के कुछ हिस्सों में अन्य उत्पादों जैसे r2c प्लेटफ़ॉर्म, libraries.io आदि के साथ (वैकल्पिक) एकीकरण शामिल हैं; जो उनके लाइसेंस और उपयोग की शर्तों के अधीन हैं।