4.2

अंग्रेज़ी में देखें

4.2 एप्लिकेशन सुरक्षा

अवलोकन और प्रेरणा

एप्लिकेशन सुरक्षा वह जगह है जहाँ अमूर्त खतरे ठोस कोड से मिलते हैं। सुर्खियों तक पहुंचने वाले अधिकांश भंग एक एप्लिकेशन-परत दोष तक वापस जाते हैं: एक इंजेक्शन, एक टूटा हुआ प्रमाणीकरण प्रवाह, एक उजागर गुप्त कुंजी, या एक समझौता की गई निर्भरता। कई सेवाओं को शिप करने वाली बड़ी टीमों के लिए, कठिन हिस्सा यह जानना नहीं है कि ये दोष मौजूद हैं। यह वर्षों से हज़ारों हाथों द्वारा लिखे गए एक विशाल कोडबेस में उन्हें लगातार रोकना है।

एंटरप्राइज़ के लिए, एप्लिकेशन सुरक्षा ग्राहक विश्वास और नियामक बाध्यता का मामला है। लॉगिन प्रवाह या भुगतान पथ में एक दोष धोखाधड़ी, जुर्माने, और अनिवार्य भंग प्रकटीकरण को ट्रिगर कर सकता है। सरकारी सिस्टम उच्च-दांव वाले डेटा के साथ वही तकनीकी जोखिम झेलते हैं: लाभ पात्रता, कर रिकॉर्ड, आपराधिक न्याय डेटा, और राष्ट्रीय इन्फ्रास्ट्रक्चर। दोनों सेटिंग्स में, एप्लिकेशन सामने का दरवाज़ा है, और हमलावर इसे लगातार और स्वचालित रूप से जांचते हैं।

यह अध्याय उन प्रथाओं को कवर करता है जो एप्लिकेशन को लचीला रखती हैं: सामान्य भेद्यता श्रेणियों को जानना और उनके खिलाफ़ बचाव करना, इनपुट को मान्य करना और आउटपुट को एन्कोड करना, प्रमाणीकरण और प्राधिकरण को सही करना, गुप्त कुंजियों का प्रबंधन करना, और सॉफ़्टवेयर आपूर्ति श्रृंखला को सुरक्षित करना जो तेज़ी से आपके वास्तविक हमला सतह को निर्धारित करती है।

यह भी देखें: अध्याय 4.1 (सुरक्षा नींव, खतरा मॉडलिंग, और सुरक्षित विकास जीवनचक्र), अध्याय 10.3 (ओपन-सोर्स आपूर्ति श्रृंखला और लाइसेंसिंग), और अध्याय 10.2 (SBOM, जोखिम, और आश्वासन)।

मुख्य सिद्धांत

  • कभी इनपुट पर भरोसा न करें। एक विश्वास सीमा को पार करने वाले सभी डेटा को मान्य होने तक शत्रुतापूर्ण मानें।
  • सुरक्षित डिफ़ॉल्ट। सुरक्षित मार्ग आसान मार्ग होना चाहिए; असुरक्षित व्यवहार के लिए जानबूझकर, दृश्यमान प्रयास आवश्यक होना चाहिए।
  • बंद विफल हों। जब एक सुरक्षा जांच पूरी नहीं हो सकती, तो एक्सेस की अनुमति देने के बजाय उसे अस्वीकार करें।
  • ऐप परत पर गहराई में रक्षा। वैलिडेशन, एन्कोडिंग, पैरामीटराइज़ेशन, और फ़्रेमवर्क सुरक्षा को मिलाएं; एक पर निर्भर न रहें।
  • पहचान और टोकन के लिए न्यूनतम विशेषाधिकार। क्रेडेंशियल को संकीर्ण रूप से स्कोप करें और उन्हें तेज़ी से समाप्त करें।
  • आपकी निर्भरताएं आपका कोड हैं। आप जो कुछ भी शिप करते हैं उसकी सुरक्षा के लिए ज़िम्मेदार हैं, तीसरे-पक्ष और ओपन-सोर्स घटकों सहित।
  • मानक तात्कालिकता पर। अपने स्वयं के सुरक्षा नियंत्रण आविष्कार करने के बजाय OWASP (ओपन वर्ल्डवाइड एप्लिकेशन सिक्योरिटी प्रोजेक्ट) ASVS जैसे जांचे-परखे फ़्रेमवर्क का उपयोग करें।

सिफ़ारिशें

OWASP टॉप 10 को जानें और उससे बचाव करें, ASVS से सत्यापित करें

OWASP टॉप 10 सबसे गंभीर वेब एप्लिकेशन जोखिमों की उद्योग बेसलाइन सूची है: टूटा हुआ एक्सेस नियंत्रण, क्रिप्टोग्राफ़िक विफलताएं, इंजेक्शन, असुरक्षित डिज़ाइन, सुरक्षा मिसकॉन्फ़िगरेशन, भेद्य घटक, प्रमाणीकरण विफलताएं, डेटा अखंडता विफलताएं, लॉगिंग विफलताएं, और सर्वर-साइड रिक्वेस्ट फ़ोर्जरी। इसे हर इंजीनियर के लिए आवश्यक ज्ञान मानें, केवल दाखिल करने के लिए एक अनुपालन संदर्भ नहीं।

एक कठोर, परीक्षण योग्य मानक के लिए, OWASP एप्लिकेशन सिक्योरिटी वेरिफ़िकेशन स्टैंडर्ड (ASVS) अपनाएं। ASVS आश्वासन के तीन स्तरों पर सुरक्षा आवश्यकताओं को परिभाषित करता है, जो आपको डिज़ाइन करने और उसके विरुद्ध परीक्षण करने के लिए ठोस, ऑडिट योग्य नियंत्रण देता है। हर एप्लिकेशन के जोखिम के अनुकूल स्तर चुनें, और उसके विरुद्ध सत्यापित करें।

इनपुट को मान्य करें और आउटपुट को एन्कोड करें

इंजेक्शन दोष सबसे हानिकारक बने रहते हैं ठीक इसलिए क्योंकि उन्हें पेश करना बहुत आसान है। स्तरीकृत नियंत्रणों से बचाव करें:

  • सख़्त अनुमति-सूचियों (अपेक्षित प्रकार, लंबाई, प्रारूप, सीमा) के विरुद्ध इनपुट मान्य करें। जहाँ आप कर सकें साफ़ करने के बजाय अस्वीकार करें।
  • सभी डेटाबेस एक्सेस के लिए पैरामीटराइज़्ड क्वेरी और प्रिपेयर्ड स्टेटमेंट का उपयोग करें; कभी स्ट्रिंग कॉन्केटेनेशन द्वारा SQL न बनाएं। सुरक्षित क्वेरी बिल्डर और ORM (ऑब्जेक्ट-रिलेशनल मैपर) का सही उपयोग करें।
  • संदर्भ के अनुसार आउटपुट एन्कोड करें। HTML, HTML एट्रिब्यूट, JavaScript, URL, और CSS प्रत्येक को अलग-अलग एन्कोडिंग की आवश्यकता है। फ़्रेमवर्क ऑटो-एस्केपिंग पर निर्भर रहें और इसकी सीमाओं को समझें।
  • आउटपुट एन्कोडिंग प्लस दूसरी परत के रूप में एक मज़बूत कंटेंट सिक्योरिटी पॉलिसी के साथ क्रॉस-साइट स्क्रिप्टिंग (XSS) को रोकें।
  • अविश्वसनीय डेटा के साथ शेल आउट करने से बचकर और लॉजिक-रहित या सैंडबॉक्स किए गए टेम्पलेट का उपयोग करके कमांड और टेम्पलेट इंजेक्शन को रोकें।

प्रमाणीकरण और प्राधिकरण को सही करें

प्रमाणीकरण यह साबित करता है कि उपयोगकर्ता कौन है। प्राधिकरण तय करता है कि वे क्या कर सकते हैं। दोनों अक्सर विफल होते हैं, इसलिए उन्हें सही करें।

  • स्थापित प्रोटोकॉल को प्राथमिकता दें: प्रत्यायोजित प्राधिकरण के लिए OAuth 2.0 और प्रमाणीकरण के लिए OpenID Connect (OIDC)। इन्हें शुरुआत से न बनाएं।
  • विशेष रूप से विशेषाधिकार प्राप्त और प्रशासनिक एक्सेस के लिए मल्टी-फ़ैक्टर ऑथेंटिकेशन (MFA) लागू करें।
  • पासवर्ड को केवल एक आधुनिक, धीमे, मेमोरी-हार्ड एल्गोरिद्म (जैसे Argon2 या bcrypt) का उपयोग करके नमकीन हैश के रूप में संग्रहीत करें। कभी प्लेनटेक्स्ट क्रेडेंशियल संग्रहीत या लॉग न करें।
  • सत्रों का सावधानी से प्रबंधन करें: क्रिप्टोग्राफ़िक रूप से मज़बूत टोकन जेनरेट करें, सिक्योर और HttpOnly कुकी फ़्लैग सेट करें, विशेषाधिकार बदलने पर रोटेट करें, और निष्क्रिय सत्र समाप्त करें।
  • हर रिक्वेस्ट के लिए सर्वर पर प्राधिकरण लागू करें, जांचते हुए कि प्रमाणित प्रिंसिपल विशिष्ट संसाधन का मालिक है या उस तक पहुंच सकता है। टूटा हुआ ऑब्जेक्ट-स्तरीय प्राधिकरण (एक ID बदलकर किसी और उपयोगकर्ता के रिकॉर्ड तक पहुंचना) सबसे सामान्य और गंभीर API दोषों में से एक है।
  • जहाँ व्यावहारिक हो प्राधिकरण लॉजिक को केंद्रीकृत करें ताकि पॉलिसी सुसंगत और ऑडिट योग्य रहे।

गुप्त कुंजियों का प्रबंधन करें और कुंजियाँ रोटेट करें

सोर्स कोड में हार्डकोड की गई गुप्त कुंजियाँ भंग का एक स्थायी कारण हैं। गुप्त कुंजी प्रबंधन के चारों ओर एक अनुशासित आदत बनाएं:

  • गुप्त कुंजियों को एक समर्पित सीक्रेट मैनेजर या वॉल्ट में संग्रहीत करें, कभी सोर्स, कॉन्फ़िग फ़ाइलों, या वर्ज़न कंट्रोल में चेक इन किए गए एनवायरनमेंट वेरिएबल में नहीं।
  • लीक हुई गुप्त कुंजियों के लिए स्वचालित रूप से कमिट और रिपॉज़िटरी स्कैन करें, और उन्हें पेश करने वाले मर्ज को ब्लॉक करें।
  • किसी भी संदिग्ध उजागर होने पर नियमित रूप से और तुरंत कुंजियाँ और क्रेडेंशियल रोटेट करें। लंबे समय तक चलने वाले स्थिर क्रेडेंशियल की तुलना में अल्पकालिक, स्वचालित रूप से जारी किए गए क्रेडेंशियल को प्राथमिकता दें।
  • हर गुप्त कुंजी पर न्यूनतम विशेषाधिकार लागू करें: इसे ठीक उतना ही स्कोप करें जितनी इसे आवश्यकता है।
  • गुप्त कुंजियों को विराम और पारगमन दोनों में एन्क्रिप्ट करें, और उन तक पहुंच का ऑडिट करें।

सॉफ़्टवेयर आपूर्ति श्रृंखला को सुरक्षित करें

आधुनिक एप्लिकेशन ज़्यादातर तीसरे-पक्ष घटकों से इकट्ठे होते हैं, जो आपूर्ति श्रृंखला को एक प्राथमिक हमला सतह बनाता है।

  • हर एप्लिकेशन के लिए एक सॉफ़्टवेयर बिल ऑफ़ मटेरियल्स (SBOM) बनाए रखें ताकि आप ठीक-ठीक जानें कि आप क्या शिप करते हैं और जब कोई नई भेद्यता आए तो तेज़ी से प्रतिक्रिया दे सकें।
  • निर्भरताओं को लगातार स्कैन करें (सॉफ़्टवेयर कंपोज़िशन एनालिसिस, या SCA) और ज्ञात-भेद्य घटकों को तुरंत ठीक करें।
  • निर्भरता संस्करणों को पिन और सत्यापित करें; लॉकफ़ाइल और विश्वसनीय रजिस्ट्री का उपयोग करें।
  • निर्माण अखंडता बढ़ाने के लिए SLSA (सप्लाई-चेन लेवल्स फ़ॉर सॉफ़्टवेयर आर्टिफ़ैक्ट्स) अपनाएं, और आर्टिफ़ैक्ट कैसे बनाए गए इसका वर्णन करने वाले प्रोवेनेंस प्रमाणीकरण जेनरेट करें।
  • आर्टिफ़ैक्ट पर हस्ताक्षर करें और डिप्लॉयमेंट से पहले हस्ताक्षरों को सत्यापित करें ताकि आप भरोसा कर सकें कि जो चल रहा है वही है जो आपने बनाया था।
  • निर्माण सिस्टम को स्वयं सुरक्षित करें; एक समझौता किया गया CI पाइपलाइन हर डाउनस्ट्रीम उपभोक्ता में दुर्भावनापूर्ण कोड इंजेक्ट कर सकता है।

ट्रेड-ऑफ़: फ़ायदे और नुकसान

निर्णयफ़ायदेनुकसान
पहचान प्रदाता (OIDC) खरीदें/अपनाएंयुद्ध-परीक्षित, MFA अंतर्निहित, सुरक्षित करने के लिए कम कोडविक्रेता निर्भरता, एकीकरण प्रयास, लागत
कस्टम ऑथ बनाएंपूर्ण नियंत्रण, कोई बाहरी निर्भरता नहींग़लत होना बेहद आसान, उच्च रखरखाव
सख़्त अनुमति-सूची वैलिडेशनपूरी भेद्यता श्रेणियों को रोकता हैवैध किनारे के मामलों को तोड़ सकता है, अधिक अग्रिम काम
अल्पकालिक क्रेडेंशियलछोटी भंग विंडो, स्वचालित निरस्तीकरणमज़बूत जारी करने वाले इन्फ्रास्ट्रक्चर की आवश्यकता
आक्रामक निर्भरता अपडेटकम ज्ञात भेद्यताएंउथल-पुथल, संभावित तोड़ने वाले बदलाव, परीक्षण भार
SBOM + हस्ताक्षर + प्रोवेनेंसतेज़ घटना प्रतिक्रिया, सत्यापन योग्य विश्वासटूलिंग और प्रक्रिया निवेश, सांस्कृतिक परिवर्तन

बार-बार आने वाला ट्रेड-ऑफ़ अग्रिम कठोरता बनाम चालू उजागरता है। कस्टम प्रमाणीकरण बनाना या निर्भरता स्वच्छता छोड़ना आज तेज़ महसूस होता है और आपको बाद में भारी लागत देता है। जांचे-परखे मानकों और स्वचालित आपूर्ति-श्रृंखला नियंत्रणों को अपनाना अभी प्रयास की लागत लेता है, लेकिन यह एक असीमित, अप्रत्याशित जोखिम को एक प्रबंधित, सीमित जोखिम में बदल देता है। बड़ी टीमों के लिए, स्वचालन गुणक सबसे अधिक मायने रखता है: एक पक्की-सड़क टेम्पलेट में एक बार लागू किया गया नियंत्रण उसका उपयोग करने वाली हर सेवा की रक्षा करता है।

अपनी टीम के साथ चर्चा के लिए प्रश्न

  1. आप अपने पक्की-सड़क फ़्रेमवर्क में कौन से ASVS नियंत्रण पकाएंगे ताकि इंजीनियरों को वे मुफ़्त में मिलें? एक बड़ी टीम के लिए सबसे अधिक लाभकारी कदम सुरक्षित मार्ग को डिफ़ॉल्ट बनाना है, ताकि एक साझा फ़्रेमवर्क में एक बार लिखा गया नियंत्रण उसे अपनाने वाली हर सेवा की रक्षा करे। तय करें कि कौन से ASVS आवश्यकताएं (पैरामीटराइज़्ड क्वेरी, आउटपुट एन्कोडिंग, सुरक्षित सत्र फ़्लैग, सर्वर-साइड प्राधिकरण जांच) टेम्पलेट में होनी चाहिए न कि हर इंजीनियर की याददाश्त में। एंटरप्राइज़ और सरकारी पोर्टफ़ोलियो के लिए, यह भी तय करें कि किन एप्लिकेशनों को ASVS स्तर 2 बनाम स्तर 3 की आवश्यकता है, और इसे हर एक जो डेटा छूता है उसकी संवेदनशीलता से जोड़ें। अपनी सेवाओं की एक सूची लाएं और चिह्नित करें कि कौन सी पहले से इन डिफ़ॉल्ट को विरासत में लेती हैं और कौन सी हाथ से सुरक्षा फिर से लागू करती हैं, क्योंकि हाथ से बनी हुई वे जगहें हैं जहाँ इंजेक्शन और टूटा हुआ एक्सेस नियंत्रण छिपते हैं। यदि सुरक्षित डिफ़ॉल्ट केवल एक विकी पेज में रहते हैं, तो उन्हें डिलीवरी दबाव में छोड़ दिया जाएगा, इसलिए उन्हें कोड में रखें।

  2. आप हर API में टूटे हुए ऑब्जेक्ट-स्तरीय प्राधिकरण को कैसे खोजेंगे और ठीक करेंगे, केवल नए में नहीं? एक ID बदलकर किसी और उपयोगकर्ता के रिकॉर्ड तक पहुंचना सबसे सामान्य और गंभीर API दोषों में से एक है, और यह उन पुराने एंडपॉइंट में छुपा होता है जो आपके वर्तमान मानकों से पहले के हैं। हर रिक्वेस्ट और हर ऑब्जेक्ट पर सर्वर-साइड प्राधिकरण नियम है, लेकिन कठिन हिस्सा यह सत्यापित करना है कि यह एक विशाल, वर्षों पुराने, कई हाथों द्वारा लिखे गए कोडबेस में बना रहता है। तय करें कि क्या आप प्राधिकरण लॉजिक को केंद्रीकृत करेंगे, स्वचालित परीक्षण जोड़ेंगे जो क्रॉस-टेनेंट एक्सेस का प्रयास करते हैं, या पहले अपने सबसे अधिक जोखिम वाले API के विरुद्ध लक्षित परीक्षण चलाएंगे। ऑब्जेक्ट पहचानकर्ता उजागर करने वाले एंडपॉइंट की अपनी सूची लाएं और उन्हें उनके द्वारा लौटाए जाने वाले की संवेदनशीलता के अनुसार रैंक करें। एक जानबूझकर स्वीप के बिना, आप इस दोष को शिप करते रहेंगे और इसे तभी खोजेंगे जब कोई शोधकर्ता या हमलावर इसे खोजे।

  3. अगली व्यापक निर्भरता भेद्यता के लिए आपकी क्या योजना है: आप हर प्रभावित सेवा को कितनी तेज़ी से खोज और पैच कर सकते हैं? जब एक लोकप्रिय लाइब्रेरी में एक गंभीर दोष आता है, तो एक सटीक SBOM वाली कंपनियां घंटों में प्रभावित सेवाओं की पहचान करती हैं जबकि दूसरी सप्ताहों तक खोजती रहती हैं, और वह गति अंतर तय करता है कि आपको कितना नुकसान होता है। अभी तय करें कि क्या आप हर आर्टिफ़ैक्ट के लिए एक सॉफ़्टवेयर बिल ऑफ़ मटेरियल्स बनाते हैं, क्या निर्भरता स्कैनिंग हर पाइपलाइन में चलती है, और आपातकालीन पैच निर्णय का मालिक कौन है। विनियमित और सरकारी खरीदारों के लिए, SBOM और हस्ताक्षरित प्रोवेनेंस तेज़ी से व्यवसाय करने की एक शर्त बनते जा रहे हैं, इसलिए यह तैयारी राजस्व की भी रक्षा करती है। एक ड्रिल का ईमानदार उत्तर लाएं: एक ऐसी लाइब्रेरी चुनें जिसका आप व्यापक रूप से उपयोग करते हैं और समय लगाएं कि उसे शिप करने वाली हर सेवा को सूचीबद्ध करने में कितना समय लगता है। यदि उत्तर दिनों में मापा जाता है, तो अगली घटना आपको मजबूर करने से पहले इन्वेंट्री और हस्ताक्षर में निवेश करें।

  4. आप लंबे समय तक चलने वाली स्थिर गुप्त कुंजियों से अल्पकालिक, स्वचालित रूप से जारी किए गए क्रेडेंशियल की ओर कैसे बढ़ेंगे, और आज कौन से सिस्टम इसे रोकते हैं? हार्डकोड की गई और लंबे समय तक चलने वाली गुप्त कुंजियाँ भंग का एक स्थायी कारण हैं, और समाधान, मांग पर जारी किए गए अल्पकालिक क्रेडेंशियल, जारी करने वाले इन्फ्रास्ट्रक्चर पर निर्भर करता है जिसका पुराने सिस्टम अक्सर उपयोग नहीं कर सकते। एक बड़ी टीम के लिए खतरा असमान अपनाना है: एक आधुनिक प्लेटफ़ॉर्म हर घंटे कुंजियाँ रोटेट करता है जबकि एक लीगेसी सेवा अभी भी एक कॉन्फ़िग फ़ाइल में एक स्थिर डेटाबेस पासवर्ड शिप करती है। तय करें कि कौन से वर्कलोड अभी एक सीक्रेट मैनेजर या वर्कलोड-पहचान सिस्टम का उपयोग कर सकते हैं, किन्हें पहले निवेश की आवश्यकता है, और जिस क्षण एक कुंजी लीक होने का संदेह हो उस रोटेशन रनबुक का मालिक कौन है। उपयोग में हर क्रेडेंशियल, उसका जीवनकाल, उजागर होने पर उसका ब्लास्ट रेडियस, और क्या कमिट स्कैनिंग इसे मर्ज से पहले पकड़ लेगी, की एक सूची लाएं। एंटरप्राइज़ और सरकारी सेटिंग्स में, इसे ऑडिट से जोड़ें: परीक्षक तेज़ी से हर गुप्त कुंजी के लिए रोटेशन, स्कोप्ड एक्सेस, और एक्सेस लॉगिंग के सबूत की अपेक्षा करते हैं, और एक स्थिर क्रेडेंशियल जिसे आप डाउनटाइम के बिना रोटेट नहीं कर सकते वह एक ऐसा निष्कर्ष है जो लिखे जाने की प्रतीक्षा कर रहा है।

  5. आप अभी भी कहाँ घर की बनी या असंगत प्रमाणीकरण चलाते हैं, और जांचे-परखे प्रोटोकॉल पर समेकित करने की क्या योजना है? प्रमाणीकरण बनाना सूक्ष्म, शोषण योग्य दोष पेश करने के सबसे आसान तरीकों में से एक है, फिर भी अधिकांश बड़ी संपत्तियों में कम से कम एक लीगेसी लॉगिन प्रवाह होता है जो OAuth 2.0 और OIDC पर मानकीकरण के निर्णय से पहले का है। प्रतिस्पर्धी दबाव वास्तविक हैं: एक पुराने प्रवाह को माइग्रेट करने से मौजूदा उपयोगकर्ताओं और इंटीग्रेशन के टूटने का जोखिम है, जबकि इसे जगह पर छोड़ना एक उच्च-मूल्य लक्ष्य को कम-सुरक्षित रखता है। तय करें कि क्या आप एक एकल पहचान प्रदाता पर समेकित करते हैं, समान रूप से MFA लागू करते हैं, और हर बेस्पोक प्रवाह को सेवानिवृत्त करने के लिए एक समय-सीमा निर्धारित करते हैं, या क्षतिपूर्ति नियंत्रणों के साथ दस्तावेज़ीकृत अपवादों को स्वीकार करते हैं। बेड़े में हर प्रमाणीकरण पथ, कौन से MFA लागू करते हैं, कौन से आधुनिक मेमोरी-हार्ड हैश के साथ पासवर्ड संग्रहीत करते हैं, और कौन से कस्टम हैं, का एक मानचित्र लाएं। एंटरप्राइज़ और सरकारी पोर्टफ़ोलियो के लिए, अनुपालन कोण जोड़ें: NIST SP 800-63 जैसे मानक पहचान आश्वासन के लिए ठोस अपेक्षाएं निर्धारित करते हैं, और एक घर की बनी प्रवाह जो उन्हें प्रदर्शित नहीं कर सकती वह एक ऑडिट या प्राधिकार-संचालन समीक्षा से नहीं बचेगी।

  6. आप कैसे सत्यापित करते हैं कि ये नियंत्रण वास्तव में प्रोडक्शन में बने रहते हैं, और क्या आप इसे दावे के बजाय सबूत के साथ साबित कर सकते हैं? एक सुरक्षित डिफ़ॉल्ट लिखना यह जानने के समान नहीं है कि हर सेवा अभी भी इसका सम्मान करती है, और नियंत्रण चुपचाप सड़ते हैं जैसे कोड बदलता है, अपवाद जमा होते हैं, और नए एंडपॉइंट शिप होते हैं। एक बड़ी टीम के लिए प्रश्न कवरेज है: कौन सी सेवाएं स्टैटिक एनालिसिस, निर्भरता स्कैनिंग, और डायनामिक या पेनिट्रेशन परीक्षण चलाती हैं, और आप कैसे जानते हैं कि जो इन्हें छोड़ती हैं वे आपके सबसे अधिक जोखिम वाले एप्लिकेशन नहीं हैं? तय करें कि पाइपलाइन में क्या सत्यापन अनिवार्य है बनाम आवधिक, निष्कर्षों का ट्राइएज कौन करता है, और आप क्या सबूत रखते हैं यह दिखाने के लिए कि एक दिए गए तारीख पर एक नियंत्रण का परीक्षण किया गया और वह पास हुआ। अपना वर्तमान कवरेज मानचित्र, गंभीरता के अनुसार आपका औसत उपचार समय, और हाल के परीक्षण के बिना एप्लिकेशन की सूची लाएं। विनियमित और सरकारी संदर्भों में, यह सबूत वैकल्पिक नहीं है: ऑडिटर, प्राधिकरण अधिकारी, और भंग जांचकर्ता सभी इस बात का प्रमाण मांगते हैं कि नियंत्रणों को सत्यापित किया गया था, और बिना परीक्षण रिकॉर्ड वाली एक पॉलिसी शायद ही कभी उन्हें संतुष्ट करती है।

क्षेत्र लेंस

स्टार्टअप। दो या तीन इंजीनियरों और किसी सुरक्षा विशेषज्ञ के बिना, आपका लाभ सुरक्षा को बनाने के बजाय विरासत में लेना है: एक प्रबंधित OIDC पहचान प्रदाता अपनाएं, एक फ़्रेमवर्क पर निर्भर रहें जिसका ORM डिफ़ॉल्ट रूप से क्वेरी को पैरामीटराइज़ करता है, और गुप्त कुंजियों को .env फ़ाइलों के बजाय अपने प्लेटफ़ॉर्म के सीक्रेट मैनेजर में रखें जिन्हें कोई टीम साथी गलती से कमिट कर सकता है। स्वचालित निर्भरता स्कैनिंग चालू करें जो पैच पुल रिक्वेस्ट खोलती है, और अभी के लिए इसे पर्याप्त मानें। कस्टम ऑथ या क्रिप्टो न बनाएं, क्योंकि एक भी इंजेक्ट की गई क्वेरी या एक लीक कुंजी कंपनी के ग्राहक बनने से पहले उसे समाप्त कर सकती है।

लघु व्यवसाय। आपके पास संभवतः कोई एप्लिकेशन-सुरक्षा विशेषज्ञ और एक तंग बजट नहीं है, इसलिए एक समर्पित फ़ंक्शन को स्टाफ़ करने के बजाय उन टूल और प्लेटफ़ॉर्म में एम्बेडेड नियंत्रण खरीदें जिनके लिए आप पहले से भुगतान करते हैं। MFA शामिल एक होस्टेड पहचान प्रदाता, एक प्रबंधित डेटाबेस जो आपको पैरामीटराइज़्ड एक्सेस की ओर संचालित करता है, और एक रिपॉज़िटरी होस्ट चुनें जो बॉक्स से बाहर लीक हुई गुप्त कुंजियों के लिए कमिट स्कैन करता है। अपना दुर्लभ ध्यान OWASP टॉप 10 की मूल बातों पर केंद्रित करें जो अधिकांश वास्तविक-दुनिया के भंग का कारण बनती हैं, और उन विक्रेताओं को प्राथमिकता दें जो सुरक्षित डिफ़ॉल्ट शिप करते हैं जिन्हें आप लापरवाही से बंद नहीं कर सकते।

एंटरप्राइज़। कई टीमों में चुनौती सुसंगति है: ASVS नियंत्रणों को पक्की-सड़क फ़्रेमवर्क में पकाएं ताकि हर नई सेवा पैरामीटराइज़्ड क्वेरी, आउटपुट एन्कोडिंग, सुरक्षित सत्र, और सर्वर-साइड प्राधिकरण को मुफ़्त में विरासत में ले। सटीक SBOM और बेड़े-व्यापी निर्भरता स्कैनिंग चलाएं ताकि अगली व्यापक लाइब्रेरी भेद्यता सप्ताहों का नहीं, घंटों का मामला हो, और प्राधिकरण पॉलिसी को केंद्रीकृत करें ताकि क्रॉस-टेनेंट एक्सेस परीक्षण योग्य बन जाए। लागू MFA के साथ एक पहचान प्रदाता पर मानकीकृत करें, और जोखिम-स्तरीय ASVS स्तरों और ऑडिट किए गए सबूत के साथ एप्लिकेशन सुरक्षा को एक शासित पोर्टफ़ोलियो के रूप में प्रबंधित करें।

सरकार। खरीद नियम, पारदर्शिता, और सार्वजनिक जवाबदेही उन नियंत्रणों को आकार देते हैं जिन्हें आपको दिखाना चाहिए, केवल लागू करना नहीं। नागरिक-सामना करने वाली सेवाओं को डेटा संवेदनशीलता से मेल खाते स्तर पर OWASP ASVS के विरुद्ध सत्यापित करें, आपूर्ति-श्रृंखला जनादेशों को संतुष्ट करने के लिए हर तैनात आर्टिफ़ैक्ट पर हस्ताक्षर करें और SLSA के अनुसार इसकी प्रोवेनेंस प्रमाणित करें, और पूर्ण एक्सेस लॉगिंग के साथ एक केंद्रीय वॉल्ट से अल्पकालिक क्रेडेंशियल जारी करें। ऑडिटर और प्राधिकरण अधिकारियों को स्रोत से प्रोडक्शन तक एक दस्तावेज़ीकृत हिरासत श्रृंखला दिखाने की अपेक्षा करें, और पहचान आश्वासन को NIST SP 800-63 जैसे प्रकाशित मानकों के साथ संरेखित करें।

उदाहरण

स्टार्टअप। एक तीन-इंजीनियर SaaS टीम अपना खुद का लॉगिन बनाना छोड़ देती है और पहले दिन से एक प्रबंधित OIDC प्रदाता अपनाती है, ऐसा सुरक्षा-गंभीर कोड लिखे बिना MFA और सुरक्षित पासवर्ड रीसेट प्राप्त करते हुए जिसे ग़लत करना उन्हें वहन नहीं। यह फ़्रेमवर्क के ORM पर निर्भर करती है ताकि क्वेरी डिफ़ॉल्ट रूप से पैरामीटराइज़्ड हों, गुप्त कुंजियों को .env फ़ाइलों के बजाय प्लेटफ़ॉर्म के सीक्रेट मैनेजर में रखती है जिन्हें एक टीम साथी गलती से कमिट कर सकता है, और स्वचालित निर्भरता स्कैनिंग चालू करती है जो एक पुल रिक्वेस्ट खोलती है जब किसी लाइब्रेरी को पैच की आवश्यकता होती है। इनमें से कोई भी टीम को धीमा नहीं करता, और इसका मतलब है कि एक लीक कुंजी या एक इंजेक्ट की गई क्वेरी कंपनी के ग्राहक बनने से पहले उसे समाप्त नहीं करती।

एंटरप्राइज़। करोड़ों खरीदारों की सेवा करने वाला एक खुदरा प्लेटफ़ॉर्म एक एकल पहचान प्रदाता के माध्यम से OIDC पर प्रमाणीकरण मानकीकृत करता है, स्टाफ़ के लिए MFA और उच्च-मूल्य खाता बदलावों के लिए स्टेप-अप प्रमाणीकरण लागू करता है। सभी डेटाबेस एक्सेस एक ORM के माध्यम से जाता है जो क्वेरी को पैरामीटराइज़ करने के लिए कॉन्फ़िगर किया गया है, और एक कंटेंट सिक्योरिटी पॉलिसी आउटपुट एन्कोडिंग का समर्थन करती है। एक लोकप्रिय लॉगिंग लाइब्रेरी में एक व्यापक रूप से प्रचारित भेद्यता के बाद, कंपनी का SBOM उसे घंटों के भीतर हर प्रभावित सेवा की पहचान करने देता है और दो दिनों में उन्हें पैच करने देता है, जबकि इन्वेंट्री के बिना प्रतिस्पर्धी सप्ताहों तक खोजते रहे।

सरकार। एक संघीय लाभ एजेंसी नागरिक-सामना करने वाली सेवाएं बनाती है जो OWASP ASVS स्तर 2 के विरुद्ध सत्यापित हैं, सबसे संवेदनशील रिकॉर्ड को संभालने वाले घटकों के लिए स्तर 3 के साथ। गुप्त कुंजियाँ एक केंद्रीय वॉल्ट में रहती हैं जो अल्पकालिक क्रेडेंशियल जारी करता है; कमिट स्कैनिंग किसी भी लीक हुई कुंजी को ब्लॉक करती है। हर तैनात आर्टिफ़ैक्ट पर हस्ताक्षर किया जाता है और उसकी प्रोवेनेंस SLSA के अनुसार प्रमाणित की जाती है, जो सत्यापन योग्य सॉफ़्टवेयर आपूर्ति श्रृंखलाओं के लिए एक संघीय जनादेश को संतुष्ट करती है और ऑडिटरों को स्रोत से प्रोडक्शन तक एक स्पष्ट हिरासत श्रृंखला देती है।

बिज़नेस केस: प्रेरणाएं, ROI, और TCO

एप्लिकेशन सुरक्षा खर्च भंग की सबसे संभावित और सबसे महंगी श्रेणी को कम करता है। स्वामित्व की कुल लागत में टूलिंग (स्कैनर, सीक्रेट मैनेजर, पहचान प्रदाता), निष्कर्षों को ठीक करने के लिए इंजीनियर समय, और सुरक्षित डिफ़ॉल्ट का हल्का घर्षण शामिल है। इसके मुक़ाबले, इसे छोड़ने की लागत तौलें: इंजेक्शन और टूटे-एक्सेस-नियंत्रण भंग नियमित रूप से लाखों रिकॉर्ड उजागर करते हैं, नियामक जुर्माने, अनिवार्य अधिसूचना, धोखाधड़ी हानि, उपचार स्प्रिंट, और प्रतिष्ठा को नुकसान ट्रिगर करते हुए जो वर्षों तक राजस्व को दबाता है।

ROI तब सबसे मज़बूत होता है जब नियंत्रण स्वचालित और पुन: उपयोग किए जाते हैं। एक अच्छी तरह कॉन्फ़िगर की गई पहचान इंटीग्रेशन, एक साझा फ़्रेमवर्क में एक कठोर क्वेरी परत, और एक पाइपलाइन जो भेद्य निर्भरताओं को ब्लॉक करती है, प्रति सेवा सीमांत लागत पर पूरे बेड़े की रक्षा करती है। आपूर्ति-श्रृंखला नियंत्रण विशेष रूप से वैकल्पिक से आवश्यक हो गए हैं: एक समझौता की गई निर्भरता आपके हर ग्राहक को पीड़ित बना सकती है, और नियामक और एंटरप्राइज़ खरीदार तेज़ी से SBOM और हस्ताक्षरित प्रोवेनेंस को व्यवसाय करने की शर्त के रूप में आवश्यक करते हैं। जब आप नेतृत्व के सामने मामला बनाएं, तो निवेश को विशिष्ट, नामित जोखिमों और खरीद व अनुपालन आवश्यकताओं से जोड़ें जो उन्हें पूरा न करने पर राजस्व को अवरुद्ध कर देती हैं।

एंटी-पैटर्न और गड्ढे

  • अपना खुद का क्रिप्टो या ऑथ बनाना। लगभग हमेशा सूक्ष्म, शोषण योग्य दोष पैदा करता है।
  • केवल-क्लाइंट-साइड वैलिडेशन। मामूली रूप से बायपास योग्य; सर्वर को सब कुछ फिर से मान्य करना चाहिए।
  • ब्लॉकलिस्ट सैनिटाइज़ेशन। अच्छे को अनुमति-सूचीबद्ध करने के बजाय “बुरे” वर्णों को हटाने की कोशिश करना; हमलावर अंतर खोज लेते हैं।
  • सोर्स या एनवायरनमेंट फ़ाइलों में गुप्त कुंजियाँ। क्रेडेंशियल लीक का सबसे सामान्य एकल कारण।
  • ऑब्जेक्ट एक्सेस पर प्राधिकरण को नज़रअंदाज़ करना। यह मान लेना कि एक प्रमाणित उपयोगकर्ता किसी भी ऑब्जेक्ट तक पहुंच सकता है जिसकी ID वे अनुमान लगा सकते हैं।
  • सेट-और-भूल जाओ निर्भरताएं। जब तक कोई भंग मजबूर न करे तब तक तीसरे-पक्ष घटकों को कभी अपडेट न करना।
  • टॉप 10 को अंतिम रेखा मानना। यह एक फ़र्श है, व्यापक मानक नहीं; गहराई के लिए ASVS का उपयोग करें।
  • संवेदनशील डेटा लॉग करना। लॉग में पासवर्ड, टोकन, और PII (व्यक्तिगत रूप से पहचान योग्य जानकारी) होने की प्रतीक्षा में एक भंग है।

परिपक्वता मॉडल

स्तर 1: आरंभ। एप्लिकेशन सुरक्षा व्यक्तिगत डेवलपर ज्ञान पर निर्भर करती है और केवल घटनाओं के बाद प्रतिक्रिया देती है। कोई मानक नियंत्रण नहीं। गुप्त कुंजियाँ सोर्स में रहती हैं। निर्भरताएं शायद ही कभी अपडेट होती हैं। प्रमाणीकरण कस्टम और तदर्थ है, और इंजेक्शन या टूटे-एक्सेस-नियंत्रण दोष प्रक्रिया के बजाय भाग्य से खोजे जाते हैं।

स्तर 2: विकास। मूल प्रथाएं दिखाई देती हैं लेकिन टीम से टीम भिन्न होती हैं। OWASP टॉप 10 जागरूकता फैलती है, कुछ फ़्रेमवर्क-स्तरीय सुरक्षा मौजूद है, और एक सीक्रेट मैनेजर मौजूद है लेकिन असमान रूप से उपयोग किया जाता है। निर्भरता स्कैनिंग कभी-कभार चलती है। नए सिस्टम एक मानक पहचान प्रदाता अपनाते हैं, जबकि पुरानी सेवाएं अपने घर के बने लॉगिन प्रवाह को अछूता रखती हैं।

स्तर 3: मानकीकरण। नियंत्रण संगठन भर में दस्तावेज़ीकृत और लागू हैं। ASVS-आधारित आवश्यकताएं प्रति जोखिम स्तर सेट की जाती हैं, पैरामीटराइज़्ड क्वेरी और आउटपुट एन्कोडिंग आदर्श हैं, और MFA वाला एक केंद्रीय पहचान प्रदाता आवश्यक है। गुप्त कुंजियों का प्रबंधन और स्वचालित रूप से स्कैन किया जाता है, SBOM बनाए जाते हैं, और निर्भरता स्कैनिंग हर पाइपलाइन में चलती है।

स्तर 4: प्रबंधन। प्रथा को बेसलाइन के विरुद्ध मापा और नियंत्रित किया जाता है। स्कैन और परीक्षण कवरेज, गंभीरता के अनुसार औसत उपचार समय, पक्की-सड़क डिफ़ॉल्ट विरासत में लेने वाली सेवाओं का हिस्सा, क्रेडेंशियल और गुप्त कुंजी रोटेशन आयु, और ASVS अनुरूपता सभी डैशबोर्ड पर ट्रैक किए जाते हैं। अपवाद समाप्ति तारीखों के साथ लॉग किए जाते हैं, बेसलाइन से बहाव कार्रवाई ट्रिगर करता है, और रिलीज़ निर्णय-कॉल के बजाय परिभाषित सुरक्षा सीमाओं पर गेट किए जाते हैं।

स्तर 5: आर्केस्ट्रेशन। सुरक्षा निरंतर सुधरती है और संगठन भर में एकीकृत है। सुरक्षित डिफ़ॉल्ट पक्की-सड़क फ़्रेमवर्क में निर्मित हैं ताकि सुरक्षित मार्ग स्वचालित हो, अल्पकालिक क्रेडेंशियल हर जगह उपयोग किए जाते हैं, और हस्ताक्षर व प्रोवेनेंस (SLSA) के साथ पूर्ण आपूर्ति-श्रृंखला आश्वासन मानक है। सत्यापन निरंतर है, नई भेद्यताओं की प्रतिक्रिया तेज़ और मापी गई है, और हर घटना साझा टेम्पलेट में वापस फ़ीड होती है ताकि एक फ़िक्स पूरे बेड़े को मज़बूत करे।

चर्चा के लिए विचार

  1. कई सेवाओं में सुसंगत और रखरखाव योग्य दोनों होने के लिए प्राधिकरण लॉजिक कहाँ रहना चाहिए?
  2. उजागरता और उथल-पुथल के बीच ट्रेड-ऑफ़ को देखते हुए आपको निर्भरताओं को कितनी आक्रामकता से अपडेट करना चाहिए?
  3. आपके पोर्टफ़ोलियो में एप्लिकेशन की हर श्रेणी के लिए कौन सा ASVS स्तर उपयुक्त है?
  4. आप नाज़ुक जारी करने वाला इन्फ्रास्ट्रक्चर बनाए बिना लंबे समय तक चलने वाली गुप्त कुंजियों को कैसे समाप्त करते हैं?
  5. आपके संगठन को हर आर्टिफ़ैक्ट के लिए SBOM और प्रोवेनेंस बनाने और उपभोग करने के लिए क्या चाहिए होगा?
  6. आप सुरक्षित डिफ़ॉल्ट को डिलीवरी दबाव में अक्षम होने से कैसे रोकते हैं?

मुख्य निष्कर्ष

  • OWASP टॉप 10 आवश्यक ज्ञान है; ASVS परीक्षण योग्य मानक प्रदान करता है।
  • इंजेक्शन और XSS को हराने के लिए इनपुट वैलिडेशन, पैरामीटराइज़ेशन, और आउटपुट एन्कोडिंग को स्तरीकृत करें।
  • जांचे-परखे प्रोटोकॉल (OAuth 2.0, OIDC) का उपयोग करें और MFA लागू करें; कभी शुरुआत से ऑथ न बनाएं।
  • हर रिक्वेस्ट और हर ऑब्जेक्ट के लिए सर्वर-साइड प्राधिकरण लागू करें।
  • गुप्त कुंजियों को सोर्स से बाहर रखें, उन्हें केंद्रीय रूप से प्रबंधित करें, और अल्पकालिक क्रेडेंशियल में रोटेट करें।
  • आपूर्ति श्रृंखला एक प्राथमिक हमला सतह है; SBOM, SCA, हस्ताक्षर, और प्रोवेनेंस (SLSA) का उपयोग करें।
  • स्वचालित, पुन: उपयोग योग्य नियंत्रण प्रति सेवा सीमांत लागत पर पूरे बेड़े की रक्षा करते हैं।

संदर्भ और आगे पढ़ना

  • OWASP, Top 10 Web Application Security Risks
  • OWASP, Application Security Verification Standard (ASVS)
  • OWASP, Cheat Sheet Series (Input Validation, Authentication, Authorization, Secrets Management)
  • Dafydd Stuttard and Marcus Pinto, The Web Application Hacker’s Handbook
  • Aaron Parecki, OAuth 2.0 Simplified
  • National Institute of Standards and Technology, SP 800-63: Digital Identity Guidelines
  • Cloud Native Computing Foundation and OpenSSF, SLSA framework and Supply-chain Security guidance