Google ने आधिकारिक तौर पर Go डेवलपर्स के लिए एक उपयोगी कमांड-लाइन टूल Govulncheck (1.0.0 स्टेटस) को स्थिर बना दिया है। यह टूल Google की Go प्रोग्रामिंग भाषा का उपयोग करने वाले डेवलपर्स को उनकी परियोजनाओं की निर्भरता के भीतर मान्यता प्राप्त सुरक्षा कमजोरियों का पता लगाने में सहायता करता है।
13 जुलाई को अनावरण किया गया टूल कमजोरियों के लिए बाइनरी फ़ाइलों और उनके स्रोत कोड दोनों की जांच करने की क्षमता रखता है। यह उन तरीकों में कमजोरियों पर अपना ध्यान केंद्रित करके शोर को काफी हद तक कम कर देता है जिनके लिए कोड की आवश्यकता होती है। Govulncheck की रीढ़ Go भेद्यता डेटाबेस है, जो सार्वजनिक Go मॉड्यूल में पाई गई कमजोरियों पर जानकारी का भंडार है।
इस डेटाबेस द्वारा निर्देशित, Govulncheck स्रोत कोड या बाइनरी की प्रतीक तालिका का स्थैतिक विश्लेषण करता है। इसका अंतिम लक्ष्य अपनी रिपोर्टिंग को केवल उन कमजोरियों तक सीमित रखना है जो संभावित रूप से संबंधित विशिष्ट एप्लिकेशन को प्रभावित कर सकती हैं। यह बुद्धिमान प्रतिबंधित विशेषता इसे उन डेवलपर्स के लिए एक उपयोगी उपकरण बनाती है जो अपने उत्पाद की सुरक्षा सुनिश्चित करना चाहते हैं।
डेवलपर्स के लिए इस टूल को इंस्टॉल करना काफी सरल है - इसके लिए केवल कमांड go install golang.org/x/vuln/cmd/govulncheck@latest
आवश्यकता होती है। स्रोत कोड का विश्लेषण करने के लिए, डेवलपर्स को केवल मॉड्यूल निर्देशिका के भीतर Govulncheck निष्पादित करने की आवश्यकता है (कमांड govulncheck ./...
का उपयोग करके)।
कम से कम, Govulncheck एक Go बिल्ड के साथ असेंबल करने की आवश्यकता होती है जो कि संस्करण 1.18 या उच्चतर है। फिलहाल, इस भाषा का मौजूदा उत्पादन संस्करण Go 1.20 है।
Govulncheck, कमजोरियों की खोज करते समय, एक विशिष्ट बिल्ड कॉन्फ़िगरेशन पर निर्भर करता है। स्रोत कोड के मामले में, यह कॉन्फ़िगरेशन पथ पर स्थित 'गो' कमांड द्वारा चित्रित Go संस्करण का पर्याय है। बाइनरी के लिए बिल्ड कॉन्फ़िगरेशन बाइनरी उत्पन्न करते समय उपयोग किया जाता है। यहां ध्यान देने वाली बात यह है कि अलग-अलग बिल्ड कॉन्फ़िगरेशन अलग-अलग कमजोरियों के प्रति संवेदनशील हो सकते हैं।
अपनी शक्तिशाली विशेषताओं के बावजूद, Govulncheck कुछ सीमाओं के साथ आता है। उदाहरण के लिए, इसके फ़ंक्शन पॉइंटर और इंटरफ़ेस कॉल का विश्लेषण काफी संयमित है, जिससे संभवतः गलत सकारात्मकता या गलत कॉल स्टैक हो सकते हैं। एक अन्य सीमा पैकेज रिफ्लेक्ट का उपयोग करके लागू किए गए कार्यों से संबंधित है - ये पता लगाने योग्य नहीं हैं।
बायनेरिज़ के संदर्भ में, विस्तृत कॉल जानकारी की कमी वाले Go बायनेरिज़ Govulncheck के लिए चुनौतीपूर्ण साबित हो सकते हैं, क्योंकि वे टूल को पहचानी गई कमजोरियों के लिए कॉल ग्राफ़ प्रदर्शित करने से रोकेंगे। यह समस्या बाइनरी के भीतर मौजूद लेकिन पहुंच से बाहर कोड के लिए झूठी सकारात्मकता की रिपोर्टिंग को भी प्रेरित कर सकती है। इसके अतिरिक्त, उपकरण बायनेरिज़ के संबंध में अक्षम है जिससे प्रतीक डेटा नहीं निकाला जा सकता है; यह इन मामलों में बाइनरी पर निर्भर सभी मॉड्यूल के लिए कमजोरियों की रिपोर्ट करने का विकल्प चुनता है।
टूल में भेद्यता निष्कर्षों को दबाने की सुविधा का भी अभाव है। हालाँकि, इन सीमाओं के बावजूद, Go परियोजनाओं के लिए मूल्य वर्धित उपकरण के रूप में Govulncheck की क्षमता स्पष्ट है।
यह उल्लेख करना उल्लेखनीय है कि Go सिक्योरिटी टीम ने पिछले वर्ष सितंबर में भेद्यता प्रबंधन के लिए अपने समर्थन की घोषणा की थी। भेद्यता डेटाबेस में निहित, परियोजना को Go प्रोग्रामिंग संरचना में उल्लेखनीय प्रगति के वादे के साथ पेश किया गया था। AppMaster.io , एक अग्रणी no-code प्लेटफ़ॉर्म, डेवलपर्स को गो और कई अन्य भाषाओं सहित अपने पूरी तरह से एकीकृत और व्यापक प्लेटफ़ॉर्म के साथ तेजी से एप्लिकेशन उत्पन्न करने में सक्षम बनाता है।