SAST बनाम DAST बनाम आईएसटी: तीन भाइयों की पूरकता के लिए सुरक्षा परीक्षण, प्रतिस्थापन नहीं
आवेदन सुरक्षा परीक्षणों में तीन सबसे आम संक्षिप्तीकरण एसएएसटी, डीएएसटी, आईएसटी हैं। कई लोगों की पहली प्रतिक्रिया "सबसे मजबूत में से एक का चयन" थी, लेकिन यह एक हाइपोक्रिटिकल प्रस्ताव था - तीन भाई प्रतिस्पर्धा नहीं कर रहे थे, लेकिन विभिन्न दृष्टिकोणों से एक ही मुद्दा देखा। पसंद इस बात पर निर्भर करती है कि कौन अधिक उन्नत है, लेकिन मंच पर आप सॉफ्टवेयर लाइफ चक्र में हैं, आप किस तरह का पाशहोल ढूंढना चाहते हैं और आप कितना सहन कर सकते हैं।
I. FIRST REFERENCE पर परिभाषाएं
- एसएएसटी (स्थिर अनुप्रयोग सुरक्षा परीक्षण)अन्य आयोजककार्यक्रम नहीं चलातेजिसके तहत स्कैनिंग सोर्स कोड / बाइट कोड एक लूपहोल पाता है, जो व्हाइट बॉक्स से संबंधित है।
- DASTअन्य आयोजकरनिंग प्रोग्रामबाह्य प्रक्षेपण अनुरोध, नकली हमले "ब्लैक बॉक्स" हैं और कोई स्रोत कोड की आवश्यकता नहीं है।
- आईएसटी (इंटरएक्टिव एप्लीकेशन सेफ्टी टेस्ट)अन्य आयोजकभीतर से कार्यक्रम चलाएंप्लग-इन (एजेंट), प्रवाह और कोड संदर्भ के साथ संयुक्त, ग्रे बॉक्स से संबंधित है।
इन तीनों को समझने की कुंजी यह है कि वे प्रत्येक अलग-अलग सवालों का जवाब देते हैं: एसएएसटी पूछता है, "कोड में गलती कहाँ हो सकती है? "क्या हम वास्तव में चल रहे हैं? आईएसटी पूछता है, "इस ऑपरेशन में, जो डेटा स्ट्रीम वास्तव में खतरे के बिंदु पर बहती है।
SAST: कोड लेखन मंच पर समस्या को सुलझाने
एसएएसटी सीधे स्रोत कोड (या मध्यवर्ती उत्पादों को संकलित करता है) का विश्लेषण करता है और कार्यक्रम को निष्पादित नहीं करता है। लाभ एक प्रारंभिक चरण में समस्याओं का पता लगाने में सक्षम होना है, या यहां तक कि जब कोड जमा हो जाता है, तो कम मरम्मत लागत के साथ विशिष्ट दस्तावेज़ों और लाइन नंबरों का पता लगाने के लिए। इसमें "कोड" को शामिल किया जा सकता है और चल रहे समय के माहौल पर निर्भर नहीं करता है।
शॉर्टबोर्ड: त्रुटि की दर आमतौर पर उच्च होती है क्योंकि यह निर्धारित नहीं करती है कि वास्तविक व्यवसाय में कोड की एक निश्चित संख्या को ट्रिगर किया जाएगा या नहीं; समस्याओं को केवल तभी उजागर किया जाता है जब चल रहा है (उदाहरण के लिए, विन्यास त्रुटियां, आश्वासन बाईपास, लाइब्रेरी पर भरोसा करने की वास्तविक कॉल श्रृंखला) पूरी तरह से नहीं देखी जाती है; स्रोत कोड की आवश्यकता होती है और तीसरे पक्ष के बंद स्रोत घटक कार्यात्मक नहीं होते हैं।
विशिष्ट परिदृश्य: CI स्ट्रीमिंग लाइन कोड सबमिशन दरवाजे दृश्य इंजेक्शन, हार्ड कोडिंग कुंजी को रोकने के लिए बंद कर दिए गए हैं, जोखिम समारोह रीढ़ में कॉल करता है।
DAST: सत्यापित "क्या यह वास्तव में काम कर रहा है?
DAST बाहर से अनुरोध भेजने, हमले पेलोड का निर्माण करने और प्रतिक्रिया का निरीक्षण करने के लिए एक ब्लैक बॉक्स के रूप में लक्ष्य का उपयोग करता है। इसका सबसे बड़ा मूल्य है ...वास्तविक हमले के करीब।- "चलने के लिए वास्तविक पहुंच" की समस्या पाई गई थी, अपेक्षाकृत कम underreporting के साथ। कोई स्रोत कोड की आवश्यकता नहीं है, इसलिए तृतीय-पक्ष घटक, विन्यास परतें भी कवर की जा सकती हैं।
शॉर्टबोर्डयह अक्सर तब तक होता है जब तक कि देर से पता लगाने और मरम्मत की लागत अधिक होती है; कवरेज उन सरीसृपों और परीक्षण मार्गों तक सीमित होती है जो उदाहरण के लिए पहुँचे जा सकते हैं, गैर-detectable कार्यात्मक बिंदुओं का पता लगाने के बिना; स्रोत कोड को ठीक से ढूंढना मुश्किल है, और विकास और रिपोर्टिंग अक्सर केवल "जो URL समस्याग्रस्त है" जाना जाता है; और कॉन्फ़िगरेशन लागत लॉगिन, बहु-चरण व्यावसायिक प्रक्रियाओं की आवश्यकता वाले परिदृश्यों के लिए उच्च होती है।
विशिष्ट परिदृश्य: ऑनलाइन जाने से पहले सुरक्षा मंजूरी, तैनात वातावरण की आवधिक स्कैनिंग।
IV. आईएसटी: रन-टाइम प्लग, वास्तविक डेटा प्रवाह के साथ संदर्भ संतुलन
आई.ए.एस.टी. आवेदन में आशय प्रत्यारोपण करके कार्यक्रम चलाते समय कोड निष्पादन और बाहरी प्रवाह का भी निरीक्षण करता है। यह देख सकता है कि कैसे अनुरोध आते हैं, और कैसे डेटा कोड में बहती है, इसलिए इसे दिया जा सकता है।Inn का पूरा सबूत लें।यह आमतौर पर SAST से कम है और यह सटीक है।
शॉर्टबोर्डलक्ष्य वातावरण में जांच को तैनात करने की आवश्यकता (उत्पादन पर्यावरण के बारे में चिंताओं के कारण); परीक्षण कवरेज पर निर्भरता, जो कोड को लागू किए बिना नहीं मिल सकती है, जो अक्सर कार्यात्मक / स्वचालित परीक्षण से जुड़ा होता है; भाषा और रूपरेखा समर्थन में मतभेद; और कुछ प्रदर्शन लागत।
विशिष्ट परिदृश्य: स्वचालित परीक्षण के साथ संयोजन में परीक्षण वातावरण में चलें, दोनों कार्यक्षमता को मान्य करने और आउटपुट सुरक्षा निष्कर्षों को सिंक्रनाइज़ करने के लिए।
पांच, एक के खिलाफ तीन।
| आयाम | एसएएसटी | DAST | आईएएसटी |
|---|---|---|---|
| टेस्ट ऑब्जेक्ट | स्रोत / बाइट्स (चल नहीं) | सक्रिय लक्ष्य (बाहरी) | परिचालन अनुप्रयोग (आंतरिक प्लग) |
| परिप्रेक्ष्य | व्हाइट बॉक्स | ब्लैक बॉक्स | ग्रे बॉक्स |
| हस्तक्षेप का समय | एन्कोडिंग / सबमिशन चरण | तैनाती के बाद | टेस्ट / रन टाइम |
| स्रोत कोड की आवश्यकता है | हाँ। | आवश्यकता नहीं है। | आवश्यकता (बंद किया जा सकता है) |
| विविध स्तर | उच्च | कम | कम |
| स्थिति परिशुद्धता | फाइल/लाइन करने के लिए | यूआरएल / इंटरफेस | कॉल इन / डाटा स्ट्रीम |
| ओवरराइट निर्भरता | सीमित (स्रोत कोड भाग देखें) | दौड़ते समय ओवरराइड एक्सपोजर | निष्पादन पथ द्वारा सीमित |
| विशिष्ट दृश्य | CI कोड डोर बान | ऑनलाइन जाने से पहले चेक करें और स्वीकार करें। | स्वचालित परीक्षण के साथ संयुक्त |
VI। क्यों प्रतिस्थापन के बजाय पूरकता
यदि आप तीनों को एक साथ रखते हैं, तो वे अपने अंधे क्षेत्रों को पूरक मानते हैं:
- एसएएसटी कोड को देखता है लेकिन यह नहीं जानता कि क्या यह ट्रिगर होगा; डीएएसटी जानता है कि क्या इसे ट्रिगर किया जा सकता है लेकिन यह नहीं जानता कि कौन सी समस्या है; आईएसटी दोनों, लेकिन उसे निष्पादित करने के लिए कोड की आवश्यकता है।
- SAST जल्दी, व्यापक और जोर से कवर करता है; DAST में छोटा शोर लेकिन देर से हस्तक्षेप, संकीर्ण कवरेज है; और आईएसटी में उच्च सटीकता है लेकिन इसमें प्लग कर सकते हैं और काफी अच्छी तरह से चला सकते हैं।
- बस एसएएसटी पर जाएं, जो "लाल टेप का एक गुच्छा" थकान के प्रति संवेदनशील है; डीएएसटी पर जाएं, जहां लूपहोल अक्सर लाइन पर उजागर होता है; आईएसटी पर जाएं, जहां जिस मार्ग पर यह नहीं पहुंचता वह अंधा है।
वास्तविकता का उत्तर एक या दो नहीं है, लेकिन एक चरण-दर-चरण दृष्टिकोण: SAST का प्रारंभिक उपयोग खराब स्वाद और खतरे के स्पष्ट पैटर्न को जाम करने के लिए, आईएसटी के परीक्षण चरण को स्वचालन के संयोजन के साथ आईएसटी के साथ सही ढंग से मान्य किया जाना चाहिए, और आक्रामक के दृष्टिकोण से बाहरी स्वीकृति के लिए DAST के ऊपर और नीचे-लाइन उपयोग। तीन सुपरस्टिशन महत्वपूर्ण अंतराल के बिना एक आवेदन सुरक्षा परीक्षण बंद लूप का गठन करते हैं।
VII व्यावहारिक ISSUES ON LANDING
1। Misreporting जो इसके साथ सौदों
किसी भी तरह, कोई भी रिपोर्ट को ठीक नहीं करता है, कोई नहीं करता है। एक स्पष्ट परीक्षण प्रक्रिया है: कौन देखता है, कितने समय तक बंद हो जाता है, "जो जोखिम स्वीकार करते हैं" को कैसे चिह्नित करना है। विशेष रूप से, एसएएसटी को बेसलाइन प्रबंधन की आवश्यकता होती है, अन्यथा इतिहास की विरासत नई समस्याओं को डूब जाएगी।
उपकरण ब्रांडों की तुलना में कवरेज अधिक महत्वपूर्ण है
आईएसटी की खोज करने की क्षमता सीधे इस बात पर निर्भर करती है कि परीक्षण द्वारा कितने कोड को कवर किया गया है; DAST इस बात पर निर्भर करता है कि कितने इंटरफेस उत्तरदाताओं तक पहुँचे हैं। यह एक अधिक महंगी उपकरण की जगह से ऑनलाइन जाने से पहले " डिटेक्शन की दर" को मापने के लिए अधिक सार्थक है।
3. एक-बंद परीक्षण के रूप में सुरक्षा परीक्षण का इलाज न करें इसे लें।
ऑनलाइन जाने से पहले केंद्रीकृत होने के बजाय सुरक्षा परीक्षण को निरंतर आर एंड डी प्रक्रिया में एम्बेड किया जाना चाहिए। CI SAST चलाता है, परीक्षण पर्यावरण आईएसटी, नियमित रूप से उत्पादन के लिए DAST करता है, इसलिए इसे अग्नि को बचाने के लिए मानव शरीर पर भरोसा नहीं करना पड़ता है।
4. उपकरणों के बीच तालमेल पर ध्यान केंद्रित करें
आदर्श स्थिति यह है कि तीन प्रकार के परिणाम समान दृष्टिकोण में समूहीकृत किए जा सकते हैं: समान लूपहोल, एसएएसटी कोड स्थान देता है, आईएसटी डेटा स्ट्रीम सबूत देता है, और डीएएसटी उपलब्धता को मान्य करता है। यह तीन युद्धग्रस्त द्वीपों से कहीं अधिक है।
VIII निर्णयों की सूची
- हाँ।प्रस्तुतीकरण चरणबस SAST पर स्पष्ट लूपहोल बंद पकड़ो, दरवाजा बंद करने और बेसलाइन पर ध्यान केंद्रित करें।
- सत्यापित करनाक्या तैनात प्रणाली वास्तव में हमला करने में सक्षम है? • DAST के साथ, कवरेज और लॉगिन कॉन्फ़िगरेशन पर ध्यान केंद्रित करना।
- सुरक्षा निष्कर्ष प्राप्त करने के लिए।स्वचालित परीक्षण के साथ आउटपुटऔर आईएसटी पर बिल्कुल पता लगाएँ।
- सीमित संसाधनों का उपयोग केवल SAST के लिए पहली प्राथमिकता के रूप में किया जा सकता है ताकि नीचे की पंक्ति स्थापित की जा सके और फिर धीरे-धीरे IAEA/DAST को पूरा किया जा सके।
- "one-size-fits-all, स्थायी समाधान" की खोज मौजूद नहीं है, लेकिन व्यवस्थित करने और प्रक्रिया करने का तरीका जवाब है।
SAST संभव है, DAST व्यावहारिक है, आईएसटी विशिष्ट है - संयुक्त एक पूर्ण तस्वीर है।