sans top 20 security vulnerabilities software applications
इस ट्यूटोरियल में उदाहरणों के साथ सॉफ्टवेयर एप्लीकेशन में SANS के शीर्ष 20 गंभीर सुरक्षा कमजोरियों को जानें और समझें:
शब्द के बग़ैर यह केवल एक सामान्य शब्दकोष नहीं है, बल्कि इसके लिए खड़ा है सिस्टम प्रशासक , लेखा परीक्षा , नेटवर्क , तथा सुरक्षा ।
इस ट्यूटोरियल में, हम SANS के शीर्ष 20 सुरक्षा कमजोरियों के बारे में जानेंगे जिन्हें हम सॉफ्टवेयर प्रोग्राम में पा सकते हैं और इसे कम करने के लिए हम क्या कर सकते हैं।
आप क्या सीखेंगे:
- SAN साइबर सुरक्षा समुदाय पर प्रभाव
- सॉफ्टवेयर में SANS के शीर्ष 20 महत्वपूर्ण कमजोरियों की सूची
- # 1) CWE-119: मेमोरी बफर त्रुटि
- # 2) CWE-79: क्रॉस-साइट स्क्रिप्टिंग
- # 3) CWE-20: अनलिमिटेड इनपुट त्रुटि
- # 4) CWE-200: संवेदनशील सूचना एक्सपोजर त्रुटि
- # 5) CWE-125: आउट-ऑफ-बाउंड्स रीड एरर
- # 6) CWE-89: SQL इंजेक्शन
- # 7) CWE-416: पहले वाली फ्रीड मेमोरी
- # 8) CWE-190: इंटेगर ओवरफ्लो एरर
- # 9) CWE-352: क्रॉस-साइट अनुरोध क्षमा
- # 10) CWE-22: डायरेक्टरी ट्रैवर्सल
- # 11) CWE-78: OS कमांड इंजेक्शन
- # 12) CWE-787: आउट-ऑफ-बाउंड्स एरर लिखें
- # 13) CWE-287: अनुचित प्रमाणीकरण त्रुटि
- # 14) CWE-476: डेलीफ्रेंसिंग अ नॉल पॉइंटर
- # 15) CWE-732: गलत अनुमति असाइनमेंट
- # 16) CWE-434: अप्रतिबंधित फ़ाइल अपलोड
- # 17) CWE-611: एक्सएमएल संस्थाओं के माध्यम से सूचना एक्सपोजर
- # 18) CWE-94: कोड इंजेक्शन
- # 19) CWE-798: हार्ड-कोडित एक्सेस कुंजी
- # 20) CWE-400: अनियंत्रित संसाधन उपभोग
- बार बार पूछे जाने वाले प्रश्न
- निष्कर्ष
SAN साइबर सुरक्षा समुदाय पर प्रभाव
के अनुसार के बग़ैर , को के बग़ैर संस्थान को एक शोध और शिक्षा संगठन के रूप में स्थापित किया गया था। इसके विभिन्न सुरक्षा कार्यक्रम बहुत व्यापक हैं और वैश्विक स्तर पर 165,000 से अधिक सुरक्षा पेशेवरों पर सकारात्मक प्रभाव डाल रहे हैं।
हम ठीक ही कह सकते हैं कि SANS और इस तरह की अन्य सकारात्मक समीक्षा से आने वाले कवरेज से उन्हें सबसे भरोसेमंद बनाया जाता है और अब तक InfoSec प्रशिक्षण और दुनिया में विभिन्न सुरक्षा प्रमाणन के लिए सबसे बड़ा संगठन है।
यह आलेख SANS शीर्ष 20 त्रुटियों पर ध्यान केंद्रित करेगा जो आपके सॉफ़्टवेयर को हमले के लिए असुरक्षित बना सकता है और कुछ सुरक्षा नियंत्रण जिन्हें आप इन त्रुटियों के खिलाफ कम करने के लिए लागू कर सकते हैं। हालांकि हम 20 से अधिक पा सकते हैं, लेकिन हम शीर्ष 20 कमजोरियों पर चर्चा करेंगे।
सॉफ्टवेयर में SANS के शीर्ष 20 महत्वपूर्ण कमजोरियों की सूची
- CWE-119 : मेमोरी बफर त्रुटि
- CWE-79 : क्रॉस साइट स्क्रिप्टिंग
- CWE-20 : अनलिमिटेड इनपुट त्रुटि
- CWE-200 : संवेदनशील जानकारी एक्सपोजर त्रुटि
- CWE-125 : आउट-ऑफ-बाउंड्स त्रुटि पढ़ें
- CWE-89 : एसक्यूएल इंजेक्षन
- CWE-416 : मुफ्त मेमोरी त्रुटि
- CWE-190 : पूर्णांक त्रुटि त्रुटि
- CWE-352 : क्रॉस साइट अनुरोध जालसाजी
- CWE-22 : निर्देशिका ट्रैवर्सल
- CWE-78 : ओएस कमांड इंजेक्शन
- CWE-787 : आउट-ऑफ-बाउंड्स त्रुटि लिखें
- CWE-287 : अनुचित प्रमाणीकरण त्रुटि
- CWE-476 : डेली कॉन्फ्रेंसिंग NULL Pointer
- CWE-732 : गलत अनुमति असाइनमेंट
- CWE-434 : अप्रतिबंधित फ़ाइल अपलोड
- CWE-611 : एक्सएमएल संस्थाओं के माध्यम से सूचना एक्सपोजर
- CWE-94 : कोड इंजेक्शन
- CWE-798 : हार्ड-कोडित एक्सेस कुंजी
- CWE-400 : अनियंत्रित संसाधन उपभोग
CWE शब्द का क्या अर्थ है?
आम कमजोरी एन्यूमरेशन (CWE) प्रत्येक कमज़ोरी के लिए सौंपे गए पहचान कोड के साथ सॉफ्टवेयर और हार्डवेयर भेद्यताओं की एक समुदाय स्वीकृत सूची है। लक्ष्य उन सभी दोषों को ठीक करने और कम करने में सक्षम होने के लिए सॉफ्टवेयर और हार्डवेयर में विभिन्न खामियों की पहचान करना है।
# 1) CWE-119: मेमोरी बफर त्रुटि
इस दोष को आमतौर पर SDLC के आर्किटेक्चर और डिज़ाइन, कार्यान्वयन, ऑपरेशन चरणों के दौरान पेश किया जाता है।
यह बफ़र ओवरफ़्लो तब होता है, जब कोई अनुप्रयोग प्रक्रिया मेमोरी में पकड़ से अधिक डेटा संग्रहीत करने का प्रयास करती है। चूँकि बफ़र्स केवल कुछ स्तर के डेटा को स्टोर कर सकते हैं और जब वह स्तर पहुँच जाता है और पार हो जाता है, तो डेटा किसी अन्य मेमोरी लोकेशन में प्रवाहित होता है जो उस बफर में पहले से मौजूद डेटा को दूषित कर सकता है।
यह घटना कभी-कभी गलती से कुछ प्रोग्रामिंग त्रुटि के माध्यम से होती है, लेकिन इसके बाद विनाशकारी विनाशकारी हो सकता है, क्योंकि यह डेटा को मिटा सकता है, गोपनीय जानकारी चोरी कर सकता है, और यहां तक कि इस बफर ओवरफ्लो के कारण पूरा एप्लिकेशन क्रैश हो सकता है।
नीचे दिया गया उदाहरण 8bytes भंडारण के साथ आवंटित बफर दिखाता है। लेकिन यह 2bytes से बह निकला क्योंकि अधिक डेटा निष्पादन के लिए भेजा गया था।
[छवि स्रोत ]
# 2) CWE-79: क्रॉस-साइट स्क्रिप्टिंग
क्रॉस-साइट स्क्रिप्टिंग (XSS) एक इंजेक्शन हमला है जो आमतौर पर तब होता है जब कोई दुर्भावनापूर्ण अभिनेता या हमलावर दुर्भावनापूर्ण या हानिकारक स्क्रिप्ट को एक वेब एप्लिकेशन में इंजेक्ट करता है जिसे वेब ब्राउज़र के माध्यम से निष्पादित किया जा सकता है। एक बार जब दुर्भावनापूर्ण स्क्रिप्ट समझौता प्रणाली में अपना रास्ता खोज लेती है, तो इसका उपयोग विभिन्न दुर्भावनापूर्ण गतिविधियों को करने के लिए किया जा सकता है।
कुछ दुर्भावनापूर्ण गतिविधियाँ कुकीज़ जैसे निजी जानकारी को स्थानांतरित करने के रूप में हो सकती हैं, जिसमें पीड़ित के कंप्यूटर से हमलावर के कंप्यूटर तक सत्र की जानकारी है।
क्रॉस-साइट स्क्रिप्टिंग घटना:
- जब गैर-मान्य और गैर-विश्वसनीय डेटा को वेब प्रपत्र अनुरोध के माध्यम से एक वेब अनुप्रयोग में इनपुट किया जाता है।
- जब वेब एप्लिकेशन तुरन्त एक वेब पेज का उत्पादन करता है जिसमें यह दुर्भावनापूर्ण डेटा होता है।
- पृष्ठ बनाने की प्रक्रिया के दौरान, सॉफ़्टवेयर डेटा के विरुद्ध मान्य करने में विफल रहता है, जो HTML और जावास्क्रिप्ट जैसे वेब ब्राउज़र द्वारा निष्पादित की जा सकने वाली सामग्री को घर करता है।
- पीड़ित अनजाने में उस पृष्ठ पर जाता है जो एक वेब ब्राउज़र के माध्यम से उत्पन्न किया गया था, उस घर में दुर्भावनापूर्ण स्क्रिप्ट है जिसे अविश्वसनीय डेटा के उपयोग के माध्यम से इंजेक्ट किया गया था।
- दुर्भावनापूर्ण स्क्रिप्ट एक पृष्ठ से आती है जिसे हमलावर के वेब सर्वर द्वारा भेजा गया था, जो समझौता किए गए सिस्टम वेब ब्राउज़र के बाद दुर्भावनापूर्ण स्क्रिप्ट को संसाधित करने के लिए आगे बढ़ता है।
- यह क्रिया एक ही मूल के बारे में वेब ब्राउज़र की नीति का उल्लंघन करती है, जो यह निर्धारित करती है कि एक डोमेन से आने वाली लिपियों में संसाधनों की पहुंच नहीं होनी चाहिए या अपने स्वयं के डोमेन को छोड़कर किसी अन्य डोमेन में कोड निष्पादित नहीं करना चाहिए।
[छवि स्रोत ]
# 3) CWE-20: अनलिमिटेड इनपुट त्रुटि
एप्लिकेशन इनपुट प्राप्त करता है, लेकिन इनपुट को मान्य करने में विफल रहता है, चाहे इसके लिए आवश्यक सभी विवरण हों, जिसे प्रसंस्करण के लिए सिस्टम में स्वीकार किया जाना चाहिए।
sql साक्षात्कार प्रश्नों के उत्तर पीडीऍफ़ के साथ
जब इनपुट सैनिटाइजेशन होता है, तो इसका उपयोग किसी भी संभावित खतरनाक इनपुट को जांचने के लिए किया जा सकता है ताकि यह सुनिश्चित हो सके कि इनपुट स्रोत कोड के साथ संसाधित होने के लिए सुरक्षित हैं या जब यह एक इनपुट है जिसे अन्य घटकों के साथ संचार करने की आवश्यकता है।
जब इस तरह के इनपुट को ठीक से सैनिटाइज या वैरिफाई नहीं किया जाता है, तो यह हमलावर के लिए एक दुर्भावनापूर्ण इनपुट भेजने का मार्ग प्रशस्त करेगा कि मुख्य एप्लिकेशन उदारता से प्रक्रिया करेगा और इससे नियंत्रण प्रवाह में बदलाव होगा, संसाधन का मनमाना नियंत्रण, या मनमाना कोड निष्पादन।
नीचे दी गई छवियां बताती हैं कि एक अच्छे अनुप्रयोग को स्क्रिप्ट या कमांड को इनपुट के रूप में स्वीकार नहीं करना चाहिए। यदि इस तरह के इनपुट ठीक से साफ नहीं किए गए हैं, तो एप्लिकेशन इसे एक वैध अनुरोध मानते हुए प्रक्रिया करेगा।
[छवि स्रोत ]
# 4) CWE-200: संवेदनशील सूचना एक्सपोजर त्रुटि
ऐसा तब होता है जब आवेदन जानबूझकर और अनजाने में उस जानकारी को उजागर करता है जो एक हमलावर के लिए गोपनीय और संवेदनशील होती है, जिसके पास इन सूचनाओं तक पहुंचने के लिए प्राधिकरण नहीं होता है।
विभिन्न त्रुटियां इस सूचना को एक हमलावर के संपर्क में लाती हैं। इस त्रुटि की गंभीरता उस संदर्भ के अनुसार भिन्न होती है जिसमें अनुप्रयोग संचालित होता है, संवेदनशील जानकारी का प्रकार जो सामने आता है, और अभिनेता उजागर जानकारी से क्या प्राप्त कर सकता है।
नीचे कुछ संवेदनशील जानकारी दी गई है, जिन्हें उजागर किया जा सकता है:
- व्यक्तिगत संदेश, वित्तीय डेटा, स्वास्थ्य स्थिति रिकॉर्ड, भौगोलिक स्थान या संपर्क विवरण जैसी व्यक्तिगत जानकारी
- सिस्टम कॉन्फ़िगरेशन विवरण और वातावरण, उदाहरण के लिए, ऑपरेटिंग सिस्टम और स्थापित पैकेज
- व्यावसायिक रिकॉर्ड और बौद्धिक संपदा
- नेटवर्क कॉन्फ़िगरेशन विवरण
- आंतरिक अनुप्रयोग स्थिति
- संदेश हेडर की तरह मेटाडेटा
कभी-कभी डेटाबेस कनेक्टिविटी त्रुटि, रन-टाइम त्रुटि और हमारे अनुप्रयोगों या वेबसाइटों पर नेटवर्क त्रुटि जैसी तकनीकी खुजली हो सकती है।
यदि इस तरह की त्रुटियों को विकास के दौरान ठीक से नियंत्रित नहीं किया जाता है, अर्थात् जब एप्लिकेशन त्रुटि संदेश प्रदर्शित करता है तो यह जनता को जानकारी प्रदर्शित कर सकता है जो एक हमलावर नीचे की छवि की तरह दुर्भावनापूर्ण उद्देश्यों के लिए उपयोग करने में सक्षम हो सकता है।
# 5) CWE-125: आउट-ऑफ-बाउंड्स रीड एरर
यह आमतौर पर तब होता है जब एप्लिकेशन सामान्य स्तर से पिछले या बफ़र की शुरुआत से पहले डेटा पढ़ता है। यह अन्य स्मृति स्थानों से संवेदनशील जानकारी को पढ़ने के लिए एक हमलावर को अनपेक्षित पहुंच प्रदान करता है, जिससे सिस्टम या एप्लिकेशन क्रैश भी हो सकता है।
जब कोड डेटा पढ़ता है और एक स्थान पर एक संकेतक होता है, तो क्रैश निश्चित रूप से होता है जो एक नल की तरह रीड ऑपरेशन को रोकता है जो एक स्ट्रिंग पर लागू होता है
निम्नलिखित कोड में, फ़ंक्शन एक सरणी इंडेक्स स्थान से एक मान प्राप्त करता है, जो बदले में फ़ंक्शन के लिए इनपुट पैरामीटर है।
[छवि स्रोत ]
ऊपर दिए गए कोड से, हम देख सकते हैं कि फ़ंक्शन सत्यापित करता है कि दिया गया सरणी इंडेक्स सरणी की अधिकतम लंबाई से कम है, लेकिन न्यूनतम मूल्य के लिए मान्य करने में विफल रहता है।
यह गैर-मान्यता इनपुट इनपुट इंडेक्स के रूप में एक नकारात्मक मूल्य की स्वीकृति की ओर ले जाएगी, जिससे एक आउट-ऑफ-बाउंड पढ़ा जाता है, जो बदले में संवेदनशील मेमोरी तक पहुंच प्रदान करता है।
इनपुट सरणी सूचकांक को सत्यापित करने की आवश्यकता है यदि यह सरणी के लिए आवश्यक अधिकतम और न्यूनतम सीमा के भीतर है।
यदि आप अब नीचे दिए गए उदाहरण की जांच करते हैं, तो आप देखेंगे कि IF कथन को न्यूनतम श्रेणी सत्यापन शामिल करने के लिए संशोधित करने की आवश्यकता है।
# 6) CWE-89: SQL इंजेक्शन
एसक्यूएल इंजेक्षन सुरक्षा भेद्यता का एक रूप है जिसके तहत हमलावर संसाधनों तक पहुँच प्राप्त करने या डेटा को एक्सेस करने के लिए अधिकृत डेटा को बदलने के लिए एक संरचित क्वेरी लैंग्वेज (SQL) कोड को Webform इनपुट बॉक्स में इंजेक्ट करता है।
इस भेद्यता को डिज़ाइन, कार्यान्वयन और संचालन चरणों के दौरान अनुप्रयोग में पेश किया जा सकता है।
यह SQL क्वेरी कुछ जानकारी के लिए डेटाबेस में अनधिकृत अनुरोध करने के लिए है। एक सामान्य इनपुट ऑपरेशन में, उपयोगकर्ता प्रमाणीकरण के लिए एक वेब फॉर्म का उपयोग किया जाता है। जब कोई उपयोगकर्ता पाठ बॉक्स में अपना नाम और पासवर्ड दर्ज करता है, तो ये मान एक SELECT क्वेरी में डाले जाते हैं।
यदि इनपुट मान सही हैं, तो उपयोगकर्ता को एप्लिकेशन या अनुरोध तक पहुंच प्रदान की जाती है, लेकिन यदि मान गलत हैं, तो एक्सेस से इनकार कर दिया जाएगा।
दुर्भावनापूर्ण इनपुट को अवरुद्ध करने के लिए कुछ वेब रूपों में आज तंत्र नहीं है एक हमलावर डेटाबेस में दुर्भावनापूर्ण अनुरोध भेजने के लिए इनपुट बक्से का उपयोग कर सकता है। यह एकल अनुरोध उन्हें पूरे डेटाबेस तक पहुंच प्रदान कर सकता है जिसमें संवेदनशील जानकारी हो सकती है।
# 7) CWE-416: पहले वाली फ्रीड मेमोरी
यह समस्या रिलीज़ होने के बाद मेमोरी के संदर्भित होने के कारण होती है, जो गंभीर रूप से प्रोग्राम क्रैश का कारण बन सकती है। जब आप पहले से मुक्त मेमोरी का उपयोग करते हैं, तो इसके प्रतिकूल परिणाम हो सकते हैं, जैसे वैध डेटा को दूषित करना, मनमाने ढंग से कोड निष्पादन जो कि दोष समय पर निर्भर है।
दो सामान्य कारण हैं:
- सॉफ्टवेयर के भीतर और कुछ अन्य असाधारण मामलों में त्रुटि की स्थिति।
- कार्यक्रम के किस भाग में मुफ्त मेमोरी के कारण कोई स्पष्टीकरण नहीं है।
इस उदाहरण में, मेमोरी को मुक्त करने के तुरंत बाद दूसरे पॉइंटर को आवंटित किया जाता है। मुक्त मेमोरी के पिछले सूचक को फिर से उपयोग किया जाता है और अब नए आवंटन के आसपास कहीं ओर इंगित करता है। जब डेटा बदल जाता है, तब तक यह उपयोग की गई मेमोरी को दूषित कर सकता है और एप्लिकेशन को अपरिभाषित तरीके से व्यवहार कर सकता है।
# 8) CWE-190: इंटेगर ओवरफ्लो एरर
जब एक गणना को एक आवेदन द्वारा संसाधित किया जाता है और एक तार्किक धारणा होती है कि परिणामस्वरूप मूल्य सटीक मूल्य से अधिक होगा, तो पूर्णांक ओवरफ़्लो होता है। यहां, पूर्णांक मान उस मान तक बढ़ जाता है जिसे किसी स्थान पर संग्रहीत नहीं किया जा सकता है।
जब ऐसा होता है, तो मान आमतौर पर बहुत छोटा या नकारात्मक मूल्य बन जाएगा। यदि रैपिंग की उम्मीद की जाती है, तो यह ठीक है, लेकिन रैप अप्रत्याशित होने पर सुरक्षा परिणाम हो सकते हैं। जब यह परिदृश्य होता है, तो इसे महत्वपूर्ण कहा जा सकता है क्योंकि परिणाम का उपयोग लूपिंग, सुरक्षा निर्णय, मेमोरी आवंटित करने के लिए उपयोग किया जाता है, और कई और अधिक।
यह कमजोरी आम तौर पर अनिश्चित व्यवहार को जन्म देती है और दुर्घटनाओं का कारण बन सकती है। यदि मान प्रवाह की तुलना में डेटा के लिए महत्वपूर्ण है, तो एक साधारण डेटा भ्रष्टाचार हो सकता है। लेकिन अगर चारों ओर लपेट आगे बफर की तरह आगे की स्थिति की ओर जाता है, तो स्मृति भ्रष्टाचार हो सकता है।
यह समस्या बफर ओवरफ्लो को ट्रिगर कर सकती है, जिसका उपयोग हमलावर द्वारा मनमाने कोड को निष्पादित करने के लिए किया जा सकता है। यह पूर्णांक ओवरफ़्लो त्रुटि आमतौर पर एसडीएलसी के डिज़ाइन और कार्यान्वयन चरणों के दौरान सिस्टम में पेश की जाती है।
# 9) CWE-352: क्रॉस-साइट अनुरोध क्षमा
यह तब होता है जब कोई वेब एप्लिकेशन HTTP अनुरोध को पर्याप्त रूप से सत्यापित नहीं करता है, चाहे वह अनुरोध वास्तव में सही उपयोगकर्ता से आ रहा था या नहीं। वेबसर्वर सभी अनुरोधों को स्वीकार करने और उन पर प्रतिक्रिया देने के लिए डिज़ाइन किए गए हैं।
मान लें कि एक ग्राहक एक या कई सत्रों में कई HTTP अनुरोध भेजता है। एक वेबसर्वर के लिए यह जानना बहुत मुश्किल है कि सभी अनुरोध प्रामाणिक थे या नहीं, और यह आमतौर पर संसाधित होता है। एक हमलावर के पास एक ग्राहक को विशेष रूप से तैयार किए गए वेबपेज पर जाने के लिए मजबूर करने का तरीका हो सकता है और अब वह फंड ट्रांसफर जैसे कुछ अनुरोध करने में सक्षम हो सकता है, अपने ईमेल पते को बदल सकता है, और बहुत कुछ।
तुरंत एक हमलावर की पहुंच है और वे डेटा चोरी करने में सक्षम होंगे और डेटा को नष्ट भी कर सकते हैं। वे हमेशा अपनी पहुंच बनाए रख सकते हैं और जब वे कर रहे हैं, तो भविष्य के किसी भी फोरेंसिक को रोकने के लिए ऑडिट लॉग से समझौता कर सकते हैं जो उनके शोषण को उजागर कर सकता है।
नीचे दी गई छवि एक हमलावर को उपयोगकर्ता को कार्रवाई करने के लिए प्रेरित करती है जो वे प्रदर्शन करने का इरादा नहीं रखते हैं।
# 10) CWE-22: डायरेक्टरी ट्रैवर्सल
निर्देशिका ट्रैवर्सल या फ़ाइल पथ ट्रैवर्सल एक वेब सुरक्षा भेद्यता है जो एक हमलावर को उस सर्वर पर मनमानी फ़ाइलों को पढ़ने की अनुमति देता है जो वर्तमान में एक एप्लिकेशन चला रहा है।
ये फाइलें एक एप्लिकेशन कोड, बैक-एंड सिस्टम के लिए क्रेडेंशियल और ऑपरेटिंग सिस्टम फाइलें हो सकती हैं। कुछ अन्य परिदृश्य में, एक हमलावर सर्वर पर इन मनमानी फ़ाइलों को लिखने में सक्षम हो सकता है जो उन्हें एप्लिकेशन डेटा या व्यवहार को संशोधित करने की अनुमति दे सकता है, और इससे उन्हें सर्वर का कुल नियंत्रण मिल जाएगा।
[छवि स्रोत ]
# 11) CWE-78: OS कमांड इंजेक्शन
यह विशेष तत्वों के अनुचित स्वच्छता के बारे में है जो कि डाउनस्ट्रीम घटक को भेजे जाने वाले इच्छित ओएस कमांड के संशोधन को जन्म दे सकता है। एक हमलावर इन दुर्भावनापूर्ण आदेशों को एक लक्ष्य ऑपरेटिंग सिस्टम पर निष्पादित कर सकता है और एक ऐसे वातावरण तक पहुंच सकता है जहां वे पढ़ने या संशोधित करने के लिए नहीं थे।
यह निश्चित रूप से एक हमलावर को खतरनाक कमांड को सीधे ऑपरेटिंग सिस्टम में निष्पादित करने की अनुमति देगा।
जब भी किसी विशेषाधिकार प्राप्त कार्यक्रम में यह भेद्यता होती है, तो यह हमलावर को उन आदेशों का उपयोग करने की अनुमति देता है जो पर्यावरण में अनुमत हैं या अन्य आदेशों को उन विशेषाधिकारों के साथ कहते हैं जो हमलावर के पास नहीं हैं, जो नुकसान की मात्रा को बढ़ा सकता है।
# 12) CWE-787: आउट-ऑफ-बाउंड्स एरर लिखें
ऐसा तब होता है जब एप्लिकेशन अंत में या पिछले बफर की शुरुआत से पहले डेटा लिखता है।
जब ऐसा होता है, तो अंतिम परिणाम आमतौर पर डेटा भ्रष्टाचार, सिस्टम या एप्लिकेशन क्रैश होता है। एप्लिकेशन क्या करता है, कुछ सूचक अंकगणित है जो बफर सीमाओं के बाहर एक स्मृति स्थान को संदर्भित करने में उपयोग किया जाता है।
# 13) CWE-287: अनुचित प्रमाणीकरण त्रुटि
यह तब होता है जब एक हमलावर के पास एक वैध पहचान होने का दावा होता है लेकिन सॉफ़्टवेयर सत्यापित करने या यह साबित करने में विफल रहा कि दावा सही है।
एक सॉफ़्टवेयर उपयोगकर्ता की लॉगिन जानकारी को गलत तरीके से सत्यापित करता है और परिणामस्वरूप, एक हमलावर आवेदन के भीतर कुछ विशेषाधिकार प्राप्त कर सकता है या संवेदनशील जानकारी का खुलासा कर सकता है जो उन्हें संवेदनशील डेटा तक पहुंचने और मनमाने कोड को निष्पादित करने की अनुमति देता है।
# 14) CWE-476: डेलीफ्रेंसिंग अ नॉल पॉइंटर
शून्य पॉइंटर को डीफ़र करना तब होता है जब एप्लिकेशन डीरेफेरेंस करता है एक पॉइंटर जो वैध परिणाम देने के लिए चाहिए था बजाय NULL को लौटाता है और इससे क्रैश हो जाता है। एक शून्य सूचक को निष्क्रिय करना दौड़ की स्थिति और कुछ प्रोग्रामिंग त्रुटि जैसी कई खामियों के माध्यम से हो सकता है।
NULL पॉइंटर की मदद से की जाने वाली प्रक्रियाएं आमतौर पर विफलता की ओर ले जाती हैं, और इस प्रक्रिया को अंजाम देने की संभावना बहुत पतली होती है। यह हमलावरों को दुर्भावनापूर्ण कोड निष्पादित करने में मदद करता है।
[छवि स्रोत ]
# 15) CWE-732: गलत अनुमति असाइनमेंट
यह भेद्यता तब होती है जब कोई एप्लिकेशन इस तरह से एक बहुत ही महत्वपूर्ण और महत्वपूर्ण संसाधन के लिए अनुमतियाँ प्रदान करता है, जो एक दुर्भावनापूर्ण उपयोगकर्ता द्वारा एक्सेस किए जाने वाले संसाधन को उजागर करता है।
जब आप कई लोगों को संसाधन की अनुमति देते हैं, तो इससे संवेदनशील जानकारी उजागर हो सकती है या हमलावर द्वारा संशोधित की जा सकती है। यदि संसाधनों को अनुमति देने के लिए इस तरह के दृष्टिकोण के खिलाफ कोई जांच नहीं होती है, तो यह बहुत ही विनाशकारी अंत हो सकता है यदि प्रोग्राम कॉन्फ़िगरेशन या कुछ संवेदनशील डेटा गलत हाथ में जाता है।
# 16) CWE-434: अप्रतिबंधित फ़ाइल अपलोड
यह भेद्यता तब होती है जब एप्लिकेशन को फ़ाइल अपलोड करने से पहले फ़ाइल प्रकारों को मान्य नहीं किया जाता है। यह भेद्यता भाषा स्वतंत्र है, लेकिन आमतौर पर एएसपी और पीएचपी भाषा में लिखे गए अनुप्रयोगों में होती है।
एक खतरनाक प्रकार की फ़ाइल एक फ़ाइल है जिसे स्वचालित रूप से अनुप्रयोग वातावरण में संसाधित किया जा सकता है।
निम्न प्रोग्राम एक PHP फ़ाइल का अपलोड दिखाता है। वेबरोट निर्देशिका में अपलोड करने से पहले फ़ाइल प्रकार को सत्यापित और सत्यापित नहीं किया गया था। इस कमजोरी के परिणामस्वरूप, एक हमलावर एक मनमाने ढंग से PHP फ़ाइल अपलोड कर सकता है और अपलोड की गई फ़ाइल को सीधे एक्सेस करके निष्पादित कर सकता है।
# 17) CWE-611: एक्सएमएल संस्थाओं के माध्यम से सूचना एक्सपोजर
जब XML दस्तावेज़ को प्रसंस्करण के लिए एक आवेदन में अपलोड किया जाता है और इस दस्तावेज़ में समान संसाधन पहचानकर्ता के साथ XML इकाइयाँ होती हैं जो किसी अन्य दस्तावेज़ में अन्य स्थान से भिन्न स्थान पर हल होती है। यह विसंगति इसके आउटपुट में गलत दस्तावेजों को संलग्न करने के लिए आवेदन कर सकती है।
XML दस्तावेज़ों में कभी-कभी एक दस्तावेज़ प्रकार परिभाषा (DTD) होती है, जिसका उपयोग XML संस्थाओं और अन्य विशेषताओं को परिभाषित करने के लिए किया जाता है। DTD के माध्यम से, समान संसाधन पहचानकर्ता प्रतिस्थापन स्ट्रिंग के रूप में कार्य कर सकता है। XML पार्सर क्या करेगा, यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर में समाहित है और इन कंटेंट को एक्जीक्यूशन के लिए XML डॉक्यूमेंट में वापस इनपुट करें।
[छवि स्रोत ]
# 18) CWE-94: कोड इंजेक्शन
उपयोगकर्ता के डेटा में कोड सिंटैक्स का अस्तित्व नियोजित नियंत्रण व्यवहार को बदलने और मनमाने कोड को निष्पादित करने की हमलावर की संभावना को बढ़ाता है। इस भेद्यता को 'इंजेक्शन कमजोरियों' के रूप में जाना जाता है और यह कमजोरी एक डेटा नियंत्रण को उपयोगकर्ता-नियंत्रित बना सकती है।
यह भेद्यता एक ऐसे परिदृश्य को दर्शाती है जहां सॉफ्टवेयर कोड में अविश्वसनीय डेटा की अनुमति देता है और विशेष वर्णों का सत्यापन नहीं करता है जो कोड खंड और वाक्यविन्यास दोनों के व्यवहार को नकारात्मक रूप से प्रभावित कर सकते हैं।
संक्षेप में, एक हमलावर किसी प्रकार के मनमाने कोड को इंजेक्ट कर सकेगा और उन्हें एप्लिकेशन के भीतर निष्पादित कर सकेगा। निम्न PHP कोड अविश्वसनीय डेटा में eval () फ़ंक्शन का उपयोग दिखाता है। एक हमलावर के नीचे कोड में कोड 'परम' पैरामीटर को मनमाने ढंग से कोड में पारित करने में सक्षम है जिसे तब सॉफ्टवेयर में निष्पादित किया जाएगा।
नीचे दिए गए उदाहरण कॉल को स्पष्ट करते हैं phpinfo () समारोह। सिस्टम () कॉल के माध्यम से लक्ष्य सॉफ़्टवेयर पर मनमाने ढंग से ओएस कमांड निष्पादित करने के लिए इस भेद्यता का अन्य में शोषण किया जा सकता है।
# 19) CWE-798: हार्ड-कोडित एक्सेस कुंजी
यह तब होता है जब पासवर्ड और एक्सेस कुंजी को इनबाउंड प्रमाणीकरण उद्देश्य के लिए सीधे आवेदन में कोडित किया जाता है और कुछ बाहरी घटकों के लिए और आंतरिक डेटा के एन्क्रिप्शन के लिए आउटबाउंड संचार होता है। हार्ड-कोडित लॉगिन विवरण आमतौर पर भेद्यता का कारण बनता है जो एक हमलावर के लिए सॉफ़्टवेयर व्यवस्थापक द्वारा कॉन्फ़िगर किए गए प्रमाणीकरण को बायपास करने का मार्ग प्रशस्त करता है।
सिस्टम प्रशासक को हमेशा इस भेद्यता का पता लगाना और उसे ठीक करना बहुत कठिन लगेगा।
इस कमजोरी की दो मुख्य धाराएँ हैं:
- भीतर का : आवेदन में एक प्रमाणीकरण प्रणाली होती है जो हार्ड-कोडित विवरण के खिलाफ इनपुट क्रेडेंशियल्स को मान्य करती है।
- आउटबाउंड : एप्लिकेशन किसी अन्य सिस्टम से कनेक्ट होता है और अन्य सिस्टम से कनेक्ट होने के लिए विवरण सिस्टम में हार्डकोड किया जाता है।
इनबाउंड स्ट्रीम में, हमेशा एक डिफ़ॉल्ट व्यवस्थापक खाता बनाया जाता है, और इसे एक्सेस करने के लिए क्रेडेंशियल्स को आवेदन में हार्ड-कोडित किया जाएगा और उस डिफ़ॉल्ट व्यवस्थापक खाते के साथ संबद्ध किया जाएगा।
हार्ड-कोडित विवरण आमतौर पर एप्लिकेशन की प्रत्येक स्थापना के दौरान समान होता है, और इसे किसी के द्वारा परिवर्तित या अक्षम नहीं किया जा सकता है। यहां तक कि सिस्टम प्रशासक के पास अधिकार नहीं है, सिवाय इसके कि वे मैन्युअल रूप से एप्लिकेशन को संशोधित कर सकते हैं। यदि पासवर्ड कभी भी सार्वजनिक रूप से प्रकट किया जाता है, तो एक हमलावर पूरे आवेदन तक पहुंच सकता है और अपने स्वयं के लाभ के लिए इसमें हेरफेर कर सकता है।
चूंकि एप्लिकेशन के सभी इंस्टॉलेशन में एक ही पासवर्ड होता है, यहां तक कि अलग-अलग संगठनों में स्थापित होने पर, यह संगठन की सभी सीमाओं पर बहुत बड़े हमले का कारण बन सकता है, उदाहरण के लिए, आवेदन में एक कीड़ा इंजेक्षन जो चारों ओर फैल जाएगा।
आउटबाउंड स्ट्रीम केवल फ्रंट-एंड सिस्टम पर लागू होती है जो बैक-एंड सर्विस के साथ प्रमाणित होती है। बैक-एंड सेवा के लिए हार्ड-कोड या निश्चित पासवर्ड की आवश्यकता हो सकती है जिसे आसानी से खोजा जा सकता है। प्रोग्रामर क्या करता है बस उन बैक-एंड क्रेडेंशियल्स को फ्रंट-एंड सॉफ़्टवेयर में हार्ड-कोड करना है। उस एप्लिकेशन का कोई भी उपयोगकर्ता पासवर्ड निकालने में सक्षम हो सकता है।
कोई भी क्लाइंट-साइड सॉफ़्टवेयर जहां पासवर्ड और एक्सेस कुंजी को हार्ड-कोड किया जाता है, आमतौर पर हार्ड-कोडेड नहीं होने की तुलना में अधिक खतरा होता है, क्योंकि बाइनरी से पासवर्ड का निष्कर्षण आमतौर पर पूरा करना बहुत आसान है।
# 20) CWE-400: अनियंत्रित संसाधन उपभोग
यह भेद्यता तब होती है जब अनुप्रयोग ठीक से आवंटन को नियंत्रित नहीं करता है और एक सीमित संसाधन के रखरखाव के लिए, यह एक हमलावर को उपभोग किए गए संसाधनों की मात्रा को प्रभावित करने में सक्षम होने की अनुमति देता है, जो अंततः उपलब्ध संसाधनों की थकावट का कारण होगा।
सीमित संसाधनों के हिस्से में मेमोरी, फाइल सिस्टम स्टोरेज, डेटाबेस कनेक्शन पूल प्रविष्टियां और सीपीयू शामिल हैं।
मान लें कि एक हमलावर इन सीमित संसाधनों के आवंटन को ट्रिगर कर सकता है और संसाधनों की संख्या या आकार को नियंत्रित नहीं किया जाता है, तो हमलावर सेवा से इनकार के कारण अराजकता पैदा कर सकता है जो सभी उपलब्ध संसाधनों का उपभोग करता है।
जब ऐसा होता है, तो यह वैध उपयोगकर्ताओं को एप्लिकेशन तक पहुंचने से रोक देगा, जो पर्यावरण पर नकारात्मक प्रभाव डालेगा। उदाहरण के लिए, जब एप्लिकेशन मेमोरी थकावट के हमले से गुजरती है, तो यह पूरे एप्लिकेशन के साथ-साथ होस्ट ऑपरेटिंग सिस्टम को धीमा कर सकता है।
तीन अलग-अलग उदाहरण जो संसाधन थकावट का कारण बन सकते हैं:
- आवंटित संसाधनों की संख्या के लिए थ्रॉटलिंग की कमी
- शटडाउन चरण तक पहुंचने से पहले एक संसाधन के सभी संदर्भों को खो देना
- संसाधन के बाद संसाधन को बंद / वापस करने में विफलता
संसाधन थकावट का मुद्दा आमतौर पर निम्नलिखित परिदृश्यों के गलत कार्यान्वयन के परिणामस्वरूप होता है:
- त्रुटि की स्थिति और अन्य असाधारण परिस्थितियां।
- इस पर मिश्रित प्रतिक्रिया है कि कार्यक्रम का कौन सा हिस्सा संसाधन जारी करता है।
निम्न उदाहरण इस भेद्यता की प्रकृति को प्रदर्शित करने और जोखिम को कम करने के लिए उपयोग किए जा सकने वाले तरीकों का वर्णन करने में मदद करता है।
निम्न उदाहरण भेद्यता की व्याख्या करता है:
[छवि स्रोत ]
यह प्रोग्राम ट्रैक नहीं करता है कि कितने कनेक्शन किए गए हैं, और यह उपलब्ध कनेक्शनों की संख्या को सीमित नहीं करता है। फोर्किंग हमलावरों द्वारा उपयोग किए जाने वाले तरीकों में से एक है, जिससे बड़ी संख्या में कनेक्शन बनाकर सिस्टम को सीपीयू, प्रक्रियाओं या मेमोरी से बाहर किया जा सकता है।
एक हमलावर सभी उपलब्ध कनेक्शन का उपभोग करने के लिए है, दूसरों को दूरस्थ रूप से सिस्टम तक पहुंचने से रोकता है।
बार बार पूछे जाने वाले प्रश्न
Q # 1) SANS किस लिए खड़ा है?
उत्तर: SANS SysAdmin, ऑडिट, नेटवर्क और सुरक्षा के लिए है।
Q # 2) कमजोरियों के कुछ उदाहरणों को सूचीबद्ध करें।
उत्तर: उदाहरण इस प्रकार हैं:
- सॉफ्टवेयर कमजोरियाँ
- फ़ायरवॉल कमजोरियाँ
- नेटवर्क कमजोरियाँ
- ऑपरेटिंग सिस्टम कमजोरियाँ
- वेब सर्वर कमजोरियाँ
- डेटाबेस कमजोरियाँ
Q # 3) खतरों और कमजोरियों के बीच अंतर क्या है?
उत्तर: धमकी सिस्टम में मौजूदा कमजोरियों के माध्यम से कंप्यूटर सिस्टम या एप्लिकेशन को नुकसान पहुंचाने के प्रयास में दुर्भावनापूर्ण या अवांछित कार्य करने की संभावना है। उदाहरण: रैंसमवेयर।
कमजोरियों ऐसी कमजोरियां हैं जो एक ऐसी प्रणाली के भीतर मौजूद हैं जो किसी संगठन को नुकसान पहुंचाने के लिए एक हमलावर से अवांछित या अनधिकृत पहुंच की अनुमति दे सकती है। उदाहरण: फ़ायरवॉल ग़लतफ़हमी।
Q # 4) सबसे आम कमजोरियां क्या हैं?
उत्तर: ये इस प्रकार हैं:
- एसक्यूएल इंजेक्षन
- क्रॉस साइट स्क्रिप्टिंग
- सुरक्षा गलतफहमी
- संवेदनशील डेटा एक्सपोजर
- टूटा हुआ प्रमाणीकरण
- सत्र प्रबंधन
निष्कर्ष
यह SANS शीर्ष 20 भेद्यता सूची एक नियम या नीति नहीं है, लेकिन एक गाइड है जो हमें सॉफ़्टवेयर भेद्यता से बचने के लिए सहायता करता है। चाहे हम एक डेवलपर या सुरक्षा विशेषज्ञ हों, अब हमारे लिए इस गाइड का पालन करना बाकी है कि किसी भी गलती से बचने के लिए क्या किया जा सकता है जो हमारे आवेदन में कमजोरियों को जन्म दे सकता है जो एक अभिनेता के लिए एक दुर्भावनापूर्ण कार्य को अंजाम देने के लिए पिछले दरवाजे का निर्माण कर सकता है।
अनुशंसित पाठ
- सुरक्षा परीक्षण (एक पूर्ण गाइड)
- Acunetix वेब भेद्यता स्कैनर (WVS) सुरक्षा परीक्षण उपकरण (समीक्षा पर हाथ)
- नेटवर्क भेद्यता मूल्यांकन और प्रबंधन गाइड
- 2021 में शीर्ष 10 सबसे शक्तिशाली कमजोरियों का आकलन उपकरण
- भेद्यता मूल्यांकन और प्रवेश परीक्षण अंतर
- जेनकिंस सुरक्षा: सुरक्षा और परियोजना सुरक्षा मैट्रिक्स को सक्षम करना
- टॉप 4 साइबर सिक्योरिटी मिस्टेक टेस्टिंग सॉफ्टवेयर से बचने के लिए
- 10 सर्वश्रेष्ठ नेटवर्क सुरक्षा सॉफ्टवेयर [केवल 2021 शीर्ष चयन]