Hacker News

Pentesters को लागी CSP: आधारभूत कुराहरु बुझ्दै

टिप्पणीहरू

2 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

प्रत्येक पेन्टेस्टरलाई किन सामग्री सुरक्षा नीति मास्टर गर्न आवश्यक छ

सामग्री सुरक्षा नीति (CSP) क्रस-साइट स्क्रिप्टिङ (XSS), डाटा इन्जेक्सन, र क्लिकज्याकिंग आक्रमणहरू विरुद्धको सबैभन्दा महत्त्वपूर्ण ब्राउजर-साइड रक्षा संयन्त्रहरू मध्ये एक भएको छ। यद्यपि प्रवेश परीक्षण संलग्नताहरूमा, CSP हेडरहरू प्रायः गलत कन्फिगर गरिएका - र गलत बुझिएका - सुरक्षा नियन्त्रणहरू मध्ये एक रहन्छन्। एक 2024 अध्ययनले 1 मिलियन भन्दा बढी वेबसाइटहरूको विश्लेषण गरेको फेला पारेको छ कि केवल 12.8% मात्र CSP हेडरहरू प्रयोगमा राखिएको छ, र ती मध्ये, लगभग 94% मा कम्तिमा एउटा नीति कमजोरी छ जुन शोषण गर्न सकिन्छ। पेन्टेस्टरहरूका लागि, CSP बुझ्नु ऐच्छिक छैन — यो सतह-स्तरको मूल्याङ्कन र ग्राहकको सुरक्षा स्थितिलाई वास्तवमा बलियो बनाउने रिपोर्ट बीचको भिन्नता हो।

तपाईंले वेब अनुप्रयोग मूल्याङ्कन, बग बाउन्टी शिकार, वा संवेदनशील ग्राहक डेटा ह्यान्डल गर्ने व्यापार प्लेटफर्ममा सुरक्षा निर्माण गरिरहनुभएको होस्, CSP ज्ञान आधारभूत छ। यो गाइडले CSP के हो, यसले कसरी हुड अन्तर्गत काम गर्छ, कहाँ असफल हुन्छ, र कसरी पेन्टेस्टरहरूले कमजोर नीतिहरूलाई व्यवस्थित रूपमा मूल्याङ्कन गर्न र बाइपास गर्न सक्छन् भनी व्याख्या गर्छ।

सामग्री सुरक्षा नीतिले वास्तवमा के गर्छ

यसको मूलमा, CSP एक HTTP प्रतिक्रिया हेडर (वा कम सामान्य रूपमा, ट्याग) मार्फत डेलिभर गरिएको घोषणात्मक सुरक्षा संयन्त्र हो। यसले ब्राउजरलाई निर्देशन दिन्छ कि सामग्रीका स्रोतहरू - लिपिहरू, शैलीहरू, छविहरू, फन्टहरू, फ्रेमहरू, र थप - दिइएको पृष्ठमा लोड गर्न र कार्यान्वयन गर्न अनुमति छ। जब कुनै स्रोतले नीति उल्लङ्घन गर्छ, ब्राउजरले त्यसलाई रोक्छ र वैकल्पिक रूपमा उल्लङ्घनलाई निर्दिष्ट अन्तिम बिन्दुमा रिपोर्ट गर्छ।

CSP पछिको मूल प्रेरणा XSS आक्रमणहरूलाई कम गर्नु थियो। परम्परागत XSS प्रतिरक्षाहरू जस्तै इनपुट सेनिटाइजेसन र आउटपुट एन्कोडिङ प्रभावकारी तर भंगुर छन् - एकल छुटेको सन्दर्भ वा एन्कोडिङ त्रुटिले जोखिमलाई पुन: परिचय गराउन सक्छ। CSP ले डिफेन्स-इन-डेप्थ लेयर थप्छ: यदि आक्रमणकारीले DOM मा खराब स्क्रिप्ट ट्याग इन्जेक्ट गर्छ भने, राम्रोसँग कन्फिगर गरिएको नीतिले ब्राउजरलाई यसलाई कार्यान्वयन गर्नबाट रोक्छ।

CSP ले श्वेतसूची मोडेल मा काम गर्छ। ज्ञात-खराब सामग्री ब्लक गर्ने प्रयास गर्नुको सट्टा, यसले स्पष्ट रूपमा अनुमति दिएको कुरा परिभाषित गर्दछ। अन्य सबै पूर्वनिर्धारित रूपमा अस्वीकार गरिएको छ। सुरक्षा मोडेलको यो उल्टो सिद्धान्तमा शक्तिशाली छ, तर व्यवहारमा, जटिल वेब अनुप्रयोगहरू - विशेष गरी दर्जनौं एकीकृत मोड्युलहरू जस्तै CRM, इनभ्वाइसिङ, एनालिटिक्स र बुकिंग प्रणालीहरू प्रबन्ध गर्ने प्लेटफर्महरूमा कडा नीतिहरू कायम राख्नु कुख्यात रूपमा गाह्रो छ।

CSP हेडरको शरीर रचना: निर्देशन र स्रोतहरू

एक CSP हेडर निर्देशनहरू मिलेर बनेको हुन्छ, प्रत्येकले एक निश्चित स्रोत प्रकारलाई नियन्त्रण गर्दछ। यी निर्देशनहरू बुझ्न कुनै पनि पेन्टेस्टरको लागि लक्ष्यको नीतिको मूल्याङ्कन गर्न आवश्यक छ। सबैभन्दा महत्त्वपूर्ण निर्देशनहरू समावेश छन् default-src (स्पष्ट रूपमा सेट नगरिएको कुनै पनि निर्देशनको लागि फलब्याक), script-src (जाभास्क्रिप्ट कार्यान्वयन), style-src (CSS), img-src (छवि), connect-src (छविहरू), connect-Src, Webtch-Soc, frame-src (इम्बेडेड iframes), र object-src (फ्ल्यास वा Java एपलेटहरू जस्तै प्लगइनहरू)।

प्रत्येक निर्देशनले एक वा बढी स्रोत अभिव्यक्ति स्वीकार गर्दछ जसले अनुमति दिएको उत्पत्ति परिभाषित गर्दछ। यी विशिष्ट होस्टनामहरू (https://cdn.example.com) देखि फराकिलो कुञ्जी शब्दहरूमा दायरा:

  • 'सेल्फ' — कागजातको रूपमा उही मूलबाट स्रोतहरूलाई अनुमति दिन्छ
  • 'कुनै पनि' - त्यस प्रकारका सबै स्रोतहरूलाई रोक्छ
  • 'असुरक्षित-इनलाइन' — इनलाइन स्क्रिप्ट वा शैलीहरूलाई अनुमति दिन्छ (एक्सएसएस सुरक्षालाई प्रभावकारी रूपमा बेअसर गर्छ)
  • 'unsafe-eval' — अनुमति दिन्छ eval(), setTimeout(string), र समान गतिशील कोड कार्यान्वयन
  • 'nonce-{random}' — मिल्दो क्रिप्टोग्राफिक नोन्ससँग ट्याग गरिएका विशिष्ट इनलाइन स्क्रिप्टहरूलाई अनुमति दिन्छ
  • 'strict-dynamic' — पहिले नै-विश्वसनीय स्क्रिप्टहरूद्वारा लोड गरिएका स्क्रिप्टहरूलाई विश्वास गर्दछ, होस्ट-आधारित अनुमति सूचीहरूलाई बेवास्ता गर्दै
  • डेटा: — डेटा URI लाई सामग्री स्रोतको रूपमा अनुमति दिन्छ

एक वास्तविक-विश्व CSP हेडर यस्तो देखिन सक्छ: सामग्री-सुरक्षा-नीति: पूर्वनिर्धारित-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'असुरक्षित-इनलाइन'; img-src *; वस्तु-src 'none'। पेन्टेस्टरको रूपमा, तपाईंको काम यो नीति पढ्नु र यो कहाँ बलियो छ, कहाँ कमजोर छ, र कहाँ शोषणयोग्य छ भनेर तुरुन्तै पहिचान गर्नु हो।

सामान्य CSP गलत कन्फिगरेसनहरू पेन्टेस्टरहरूले लक्षित गर्नुपर्छ

CSP हेडर डिप्लोय गर्ने र प्रभावी CSP हेडर डिप्लोय गर्ने बीचको अन्तर ठूलो छ। व्यवहारमा, धेरैजसो नीतिहरूमा विकासकर्ताको सुविधा, तेस्रो-पक्ष एकीकरण, वा साधारण गलतफहमीद्वारा प्रस्तुत गरिएका कमजोरीहरू हुन्छन्। मूल्याङ्कनका क्रममा, पेन्टेस्टरहरूले यी सामान्य असफलताहरूको लागि व्यवस्थित रूपमा जाँच गर्नुपर्छ।

सबैभन्दा विनाशकारी गलत कन्फिगरेसन 'असुरक्षित-इनलाइन' को script-src निर्देशनमा उपस्थिति हो। यो एकल कुञ्जी शब्दले CSP को सम्पूर्ण एन्टी-XSS लाभलाई अनिवार्य रूपमा बेकार बनाउँछ, किनकि यसले ब्राउजरलाई कुनै पनि इनलाइन