
कोडबेस में हार्ड-कोडेड क्रेडेंशियल्स का पता लगाने के लिए रेगेक्स-आधारित स्कैनर, CI/CD एकीकरण के लिए डिज़ाइन किया गया है जिसमें दमन टिप्पणी समर्थन और कम गलत-सकारात्मक दरें हैं।
यह स्क्रिप्ट एक बड़े, विविध कोडबेस में हार्ड-कोडेड क्रेडेंशियल्स, या कॉन्फ़िगरेशन फ़ाइलों में मौजूद क्रेडेंशियल्स को स्कैन करने के लिए है। ये एक गंभीर सुरक्षा समस्या का प्रतिनिधित्व करते हैं, और इन्हें पहचानना और प्रबंधित करना अत्यंत कठिन हो सकता है।
इस स्क्रिप्ट का विशिष्ट फोकस एक ऐसा उपकरण बनाना है जिसका उपयोग डेव टीमों द्वारा सीधे CI/CD पाइपलाइन में किया जा सके, ताकि कोड में क्रेडेंशियल्स मौजूद होने पर टीम को सचेत करके इस समस्या के निवारण प्रक्रिया का प्रबंधन किया जा सके, ताकि टीम समस्याएँ उत्पन्न होते ही तुरंत ठीक कर सके।
इस उपकरण को इस समस्या के लिए एक बिंदु-समय स्कैनर के रूप में लागू करना संभव है, लेकिन - चूंकि क्रेडेंशियल्स समय के साथ कोडबेस में वापस आने की संभावना रखते हैं - हम दृढ़ता से सलाह देते हैं कि स्क्रिप्ट को CI/CD प्रक्रिया, स्वचालित बिल्ड तंत्र या किसी अन्य नियमित रूप से निर्धारित स्वचालित स्कैनिंग प्रक्रिया में एकीकृत किया जाए जो टीम करती है।
यह स्क्रिप्ट निम्नलिखित उद्देश्यों को ध्यान में रखकर लिखी गई है:
स्क्रिप्ट अन्य लोकप्रिय SAST उपकरणों के साथ कुछ अनुकूलता प्रदान करने का प्रयास करती है।
फ़ाइल की शुरुआत में या उसके पास '# noqa file' टेक्स्ट उस फ़ाइल में किसी भी आगे की समस्या की रिपोर्टिंग को दबा देगा, वैसे ही 'flake8: noqa' टेक्स्ट भी।
एक व्यक्तिगत पंक्ति पर '# noqa' का टेक्स्ट उस पंक्ति पर समस्याओं की रिपोर्टिंग को दबा देगा। कई अन्य सामान्य दमन टिप्पणियाँ भी काम करेंगी; वर्तमान सूची है:
# noinspection
# noqa
#noqa
@SuppressWarnings
DevSkim
NOLINT
NOSONAR
checkmarx
coverity
fortify
noinspection
nosec
safesql
veracode
हम '# noqa cred' टिप्पणी के उपयोग की भी सलाह देते हैं, ताकि टीम के सदस्यों को स्पष्ट हो कि विशेष रूप से क्रेडेंशियल की उपस्थिति ही झूठी सकारात्मकता का कारण है। यहाँ संदर्भित कई उपकरण (जैसे devskim) उपयोग में आने वाली भाषा या प्लेटफ़ॉर्म से संबंधित टूलिंग से संबंधित विशिष्ट त्रुटि कोड का उपयोग करते हैं, जो उसी उद्देश्य की पूर्ति करते हैं। एक ही कोड पंक्ति में विभिन्न प्रकार की कई त्रुटियाँ हो सकती हैं।
हम सावधान करते हैं कि SAST उपकरण से एक चेतावनी को दबाना जो एक वास्तविक सकारात्मक है, अत्यंत बुरा अभ्यास है। कोडबेस में SAST/lint दमन टिप्पणियों की समय-समय पर समीक्षा करना अच्छा अभ्यास है ताकि यह सुनिश्चित किया जा सके कि कोई 'वास्तविक सकारात्मक' दबाया नहीं गया है।
'-nosuppress' कमांड लाइन फ़्लैग स्क्रिप्ट को सभी दमन टिप्पणियों को अनदेखा करने का कारण बनता है।