
VisualCodeGrepper - कोड सुरक्षा स्कैनिंग उपकरण।
VCG (VisualCodeGrepper)
वर्तमान संस्करण: 2.3.2
====================================================================================
विषय-सूची:
VCG एक स्वचालित कोड सुरक्षा समीक्षा उपकरण है जो C/C++, Java, C#, VB, PL/SQL, PHP और COBOL को संभालता है। इसमें कुछ ऐसी विशेषताएँ हैं जो आशा है कि कोड सुरक्षा समीक्षा करने वाले किसी भी व्यक्ति के लिए उपयोगी साबित होंगी, विशेष रूप से जहाँ समय की कमी हो:
मैंने ऐसा कुछ बनाने की कोशिश की है जो उन बड़ी संख्या में गलत सकारात्मक परिणाम नहीं लौटाता जो कुछ उपकरण लौटाते हैं और जो बफ़र ओवरफ़्लो और साइन्ड/अनसाइन्ड तुलनाओं की पहचान करने के लिए बुद्धिमानी से खोज भी करता है।
नई विशेषताएँ: 1) GUI परिवर्तन का अर्थ है कि लक्ष्य भाषा का चयन मेनू के बजाय ड्रॉपडाउन सूची के माध्यम से होता है (जैसा V2.3.1 में था)। 2) बीटा कार्यक्षमता में अब R Script की स्कैनिंग शामिल है (जैसा V2.3.1 में था)। 3) विभिन्न समस्याओं से निपटने और कई एप्लिकेशन इंस्टेंस की अनुमति बहाल करने के लिए मामूली बग फ़िक्स।
इनपुट फ़ाइलें/कोडबेस:
कोड स्कैन करने से पहले, सुनिश्चित करें कि सही भाषा चयनित है क्योंकि VCG केवल चयनित भाषा से संबंधित समस्याओं के लिए परीक्षण करेगा और केवल प्रासंगिक फ़ाइल प्रकारों को स्कैन करेगा। भाषा को सेटिंग्स मेनू मेनू या विकल्प संवाद में चयनित किया जा सकता है। File=>New Target... का उपयोग करके उस निर्देशिका का चयन करें जिसमें स्कैन किया जाने वाला कोड है। इसके बाद VCG उन सभी फ़ाइलों को लोड करेगा जिनके अंत निर्दिष्ट हैं।
डिफ़ॉल्ट नीचे दिए गए हैं लेकिन इन्हें विकल्प संवाद का उपयोग करके संशोधित किया जा सकता है: C/C++: .c .h .cpp .hpp Java: .java .jsp web.xml config.xml (Struts आदि द्वारा इनपुट सत्यापन की जाँच के लिए xml फ़ाइलें शामिल हैं) PL/SQL: .pls .sql .pkb .pks C#: .cs .asp .aspx web.config (इनपुट सत्यापन, डिबग सेटिंग्स आदि की जाँच के लिए web.config फ़ाइल शामिल है) VB: .vb .asp .aspx web.config (इनपुट सत्यापन, डिबग सेटिंग्स आदि की जाँच के लिए web.config फ़ाइल शामिल है) PHP: .php php.ini (register_globals जैसे बुरे कॉन्फ़िग की जाँच के लिए php.ini फ़ाइल शामिल है) COBOL: .cob .cbl .clt .cl2 .cics R: .r
विकल्प और सेटिंग्स:
फ़ाइल प्रकार - इसका उपयोग उन फ़ाइल प्रकारों को बदलने के लिए करें जिन्हें VCG प्रत्येक कोड प्रकार के लिए स्कैन करेगा। किसी निर्देशिका में सभी फ़ाइलों को स्कैन करने के लिए सूची में .* जोड़ें या सभी प्रकार हटा दें और एक खाली स्ट्रिंग सबमिट करें। कॉन्फ़िग फ़ाइलें - प्रत्येक भाषा के लिए एक कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करें। इसमें किसी भी फ़ंक्शन या कोड अंशों की सूची होती है जिन्हें जोखिम भरा माना जा सकता है और रिपोर्टिंग की आवश्यकता होती है। यह सुविधा अनिवार्य रूप से कोड स्कैन के हिस्से के रूप में किए जाने वाले अधिक जटिल संचालन के ऊपर जाँच की एक अतिरिक्त परत जोड़ती है। गंभीरता - VCG को केवल एक निश्चित स्तर से ऊपर की गंभीरता वाली त्रुटियों की रिपोर्ट करने के लिए सेट किया जा सकता है। उदाहरण के लिए, केवल Medium, High और Critical रिपोर्ट में पाने के लिए 'Medium' चुनें। COBOL सेटिंग्स - प्रारंभिक कॉलम निर्दिष्ट किया जाना चाहिए - अर्थात, पंक्ति संख्याओं के बाद वाला पहला कॉलम। यह आम तौर पर बिना पंक्ति संख्याओं वाली लिस्टिंग के लिए 1 होगा या पंक्ति संख्याओं सहित लिस्टिंग के लिए 7 होगा। यदि लिस्टिंग में कोड/टिप्पणी पंक्तियाँ किसी भिन्न कॉलम से शुरू होती हैं तो एक भिन्न सेटिंग की आवश्यकता हो सकती है। z/OS सेटिंग का उपयोग CICS API के सुरक्षित उपयोग आदि के लिए जाँच शामिल करने के लिए किया जा सकता है। OWASP सेटिंग्स (केवल Java) - यदि चयनित किया जाता है तो ये OWASP सुरक्षित कोडिंग पृष्ठों पर सूचीबद्ध Java प्रोग्रामिंग के लिए OWASP सर्वोत्तम प्रथाओं के दो उल्लंघनों की पहचान करेंगी। नेस्टेड क्लासेस और गैर-फ़ाइनल सार्वजनिक क्लासेस पर रिपोर्ट की जाएगी - चूँकि बिना अधिक जोखिम के इनके बड़ी संख्या में होने की संभावना है, इनमें से किसी भी स्कैन को बंद करने का विकल्प दिया गया है। आउटपुट फ़ाइल - यदि चयनित किया जाता है तो ASCII आउटपुट इस फ़ाइल में लिखा जाएगा। बीटा कार्यक्षमता - Options -> Beta Functionality में उपयुक्त चेकबॉक्स पर क्लिक करके चुनें कि क्या कोई बीटा कार्यक्षमता उपयोग करनी है। वर्तमान में उपलब्ध बीटा कार्यक्षमता C में Signed/Unsigned Comparison का पता लगाना (बहुत अविश्वसनीय), और R का स्कैनिंग (परीक्षण में उचित रूप से काम करता पाया गया - अगली रिलीज़ में शामिल होने के करीब) है।
स्कैनिंग:
स्कैन तीन तरीकों से किया जा सकता है:
कॉन्फ़िगरेशन फ़ाइलें:
VCG जिन छह भाषाओं को स्कैन करता है, उनमें से प्रत्येक के लिए कॉन्फ़िगरेशन फ़ाइलें मौजूद हैं। ये प्रत्येक भाषा के लिए अंतर्निहित जटिल स्कैन को पूरक करने के लिए स्कैनिंग की एक अतिरिक्त परत प्रदान करती हैं। कॉन्फ़िगरेशन फ़ाइलों की सामग्री में स्कैन करने के लिए फ़ंक्शन/कोड अंशों की एक सूची होती है, साथ में परिणामों में दिखाई देने वाला एक संबद्ध विवरण होता है। विवरण में वर्गाकार कोष्ठक में एक वैकल्पिक गंभीरता सेटिंग शामिल होती है और इसे '=>' द्वारा फ़ंक्शन से अलग किया जाता है, निम्नलिखित प्रारूप में: function name[=>][[N]][description] (जहाँ N गंभीरता रेटिंग 1 (Critical) से 3 (Medium) है (या वैकल्पिक रूप से, 'normal' के लिए 0))
उदाहरण के लिए: strcat=>[3]String concatenation function which facilitates buffer overflow conditions. Appears in Microsoft's banned function list.
आउटपुट:
स्कैनिंग समाप्त होने पर Visual Code Breakdown दिखाया जाएगा।
परिणाम उस क्रम में परिणाम फलक में लिखे जाते हैं जिस क्रम में वे पाए गए हैं। परिणामों का निम्नलिखित प्रारूप होता है: SEVERITY: Code issue Line number - File name Description [code fragment]
स्पष्टता के लिए समस्या शीर्षक में निम्नलिखित रंग कोड हैं: Critical - मैजेंटा High - लाल Medium - नारंगी Standard/Normal - पीला/सेपिया Low - ग्रे-नीला Potential Issue/Best Practice - हरा Suspicious comment indicating broken code - गहरा नीला
परिणामों को सारांश तालिका में संक्षिप्त रूप में भी लिखा जाता है, जहाँ उन्हें कॉलम शीर्षकों पर क्लिक करके क्रमबद्ध किया जा सकता है। परिणाम तालिका में किसी आइटम पर डबल-क्लिक करने पर फ़ाइल उसके संबद्ध एप्लिकेशन में लोड हो जाती है।