हरेक pull request अन्त्यबिन्दु थप्ने वा परिवर्तन गर्ने कुराले तपाईंको API आक्रमण सतह परिवर्तन गर्छ। धेरैजसो API सुरक्षा उपकरणहरूले त्यो अन्त्यबिन्दु लाइभ नभएसम्म र पहिले नै ट्राफिक लिने नभएसम्म याद गर्दैनन्। त्यतिन्जेल, समाधान अब कोड समीक्षामा एक-लाइन परिवर्तन रहँदैन, यो घटना प्रतिक्रिया कुराकानी हो।
एपीआई सुरक्षा भनेको एप्लिकेसनले आफ्नो अन्तिम बिन्दुहरू कसरी उजागर गर्छ भन्ने जोखिमहरू पत्ता लगाउने र बन्द गर्ने अभ्यास हो: कसले तिनीहरूलाई कल गर्न सक्छ, तिनीहरूले कुन डेटा फिर्ता गर्छन्, र तिनीहरूले कागजातले भनेअनुसार गर्छन् कि गर्दैनन्।
यस समस्याको लागि बनाइएका धेरैजसो उपकरणहरूले रनटाइममा API को परीक्षण गर्छन्, बाहिरबाट, जसरी आक्रमणकारीले गर्छ। त्यो दृष्टिकोणले काम गर्छ, तर यसले API तैनाथ गरेपछि मात्र काम गर्छ। जाइगेनी पहिलेको बाटो लिन्छ: यसले एकल अनुरोध अन्तिम बिन्दुमा पुग्नु अघि तपाईंको स्रोत कोड र तपाईंको API विशिष्टता पढ्छ।
API परीक्षण गर्ने चार तरिकाहरू, र प्रत्येकले के जवाफ दिन्छ
धेरैजसो परिपक्व कार्यक्रमहरूले यी मध्ये एक भन्दा बढी चलाउँछन्:
- स्थिर परीक्षण तैनाती गर्नु अघि स्रोत कोड र API विशिष्टताहरूको विश्लेषण गर्दछ। यसले "हामीले भर्खरै के खुलासा गर्यौं?" भन्ने उत्तर दिन्छ। यो लेख यही दृष्टिकोणमा केन्द्रित छ।
- गतिशील परीक्षण (DAST) चलिरहेको API मा वास्तविक ट्राफिक पठाउँछ र यसले कसरी प्रतिक्रिया दिन्छ भनेर अवलोकन गर्छ। यसले "अहिले वास्तवमा के पहुँचयोग्य र शोषणयोग्य छ?" भन्ने जवाफ दिन्छ।
- फज्जिङ सतह क्र्यास र किनारा-केस विफलताहरूमा अन्त्य बिन्दुहरूमा विकृत वा अप्रत्याशित इनपुट फ्याँक्छ। यसले "हामीले अनुमान नगरेको इनपुट अन्तर्गत कुन ब्रेकहरू?" को उत्तर दिन्छ।
- म्यानुअल प्रवेश परीक्षण स्वचालित उपकरणहरूले छुटेका तार्किक त्रुटिहरू पत्ता लगाउन मानव निर्णय थप्छ। यसले "एक स्मार्ट आक्रमणकारीले केलाई एकसाथ जोड्नेछ?" भन्ने उत्तर दिन्छ।
यी मध्ये कुनै पनिले अरूलाई प्रतिस्थापन गर्दैनन्। तिनीहरूले जीवनचक्रको विभिन्न बिन्दुहरूमा फरक-फरक प्रश्नहरूको जवाफ दिन्छन्, र धेरैजसो कार्यक्रमहरूमा हुने खाडल पहिलो प्रश्न हो।
किन धेरैजसो API सुरक्षा उपकरणहरूले जोखिम ढिलो देख्छन्
रनटाइम एपीआई सुरक्षा परीक्षणले लाइभ एप्लिकेसनमा ट्राफिक पठाउँछ र यसले कसरी प्रतिक्रिया दिन्छ भनेर हेर्छ। यो एक वैध र आवश्यक तह हो। यो निर्माणको हिसाबले, एक ढिलाइ सूचक पनि हो: रनटाइम स्क्यानरले यसको बारेमा केहि भन्न सक्नु अघि एक अन्त्य बिन्दु अवस्थित हुनुपर्छ, तैनाथ गरिनुपर्छ, र पहुँचयोग्य हुनुपर्छ। यसले जे फेला पार्छ त्यो स्क्यान चलाउन जतिसुकै लामो समय लाग्यो, पहिले नै खुलासा भइसकेको थियो।
त्यो समय समस्याको मुनि दोस्रो खाडल छ। रनटाइम उपकरणहरूले केवल तिनीहरूलाई थाहा भएको कुरा मात्र परीक्षण गर्न सक्छन्। यदि कुनै अन्तिम बिन्दु कहिल्यै दस्तावेज गरिएको थिएन, वा कसैले नयाँ मार्ग पठाएको क्षणमा OpenAPI विशिष्टता पुरानो भयो भने, रनटाइम स्क्यानरले यो त्यहाँ छ भनेर थाहा पाउने कुनै तरिका हुँदैन। यसले नक्साको परीक्षण गर्छ, क्षेत्रको होइन।
स्थिर API सुरक्षा परीक्षणले चेकलाई अन्तिम बिन्दु परिभाषित गरिएको ठाउँमा सारेर दुवै खाडलहरू बन्द गर्छ: तपाईंको कोड र तपाईंको API विशिष्टता, तैनाती अघि। उस्तै। pull request जसले अन्तिम बिन्दुको परिचय दिन्छ त्यो हो pull request जसले यसको जोखिमलाई सतहमा ल्याउँछ।
स्थिर API सुरक्षाको वास्तवमा अर्थ के हो?
Xygeni ले तपाईंको API इन्भेन्टरी दुई स्रोतहरूबाट बनाउँछ: तपाईंको अनुप्रयोगको स्रोत कोड र तपाईंको API विशिष्टताहरू, जसमा OpenAPI र Swagger समावेश छन्।
स्पेक-मात्र इन्भेन्टरीले कसैले कागजात गर्न सम्झेका अन्त्यबिन्दुहरू देखाउँछ। कोड-मात्र इन्भेन्टरीले के अवस्थित छ भनेर देखाउँछ तर यो कसरी प्रयोग गर्नको लागि हो भन्ने आवश्यक छैन। दुबै पढ्दा तपाईंलाई पूर्ण तस्वीर दिन्छ: तपाईंको टोलीले दस्तावेज गरेका अन्त्यबिन्दुहरू, र जो कसैले गरेनन्।
त्यो इन्भेन्टरी भनेको अरू सबै कुरा निर्माण गर्ने जग हो:
- पत्ता लागेका कुल API हरू, र जोखिममा रहेका सम्पत्तिहरू आधाररेखा अनुसार मापन गरियो
- HTTP विधिद्वारा विभाजित अन्त्यबिन्दुहरू
- सेवा अनुसार समूहबद्ध गरिएका मुद्दाहरू
- प्रत्येक अन्तिम बिन्दु यसको विधि, मार्ग, सेवा, मोड्युल, प्रमाणीकरण अवस्था र जोखिम स्कोर सहित
तपाईंको इन्जिनियरिङ लिडहरूले एउटा पनि टिकट नखोलीकनै तपाईंको API सतहको आकार देख्छन्।
Xygeni ले फेला पारेको प्रत्येक अन्तिम बिन्दु, यसको विधि, प्रमाणीकरण अवस्था र जोखिम स्कोर सहित, कोड र विशिष्टता सँगै निर्मित।
Production note कुनै पनि API सुरक्षा स्क्रिनसटबाट AI Triage प्यानल क्रप गर्नुहोस्।
OWASP API सुरक्षा शीर्ष १० मा म्याप गरिएको
निष्कर्षहरूले तपाईंको सुरक्षा टोलीहरू र तपाईंका लेखा परीक्षकहरूले पहिले नै प्रयोग गरिरहेको ढाँचा बोल्छन्। Xygeni ले OWASP API सुरक्षामा जोखिम पत्ता लगाउँछ। शीर्ष २०० (२०२०):
| OWASP | जोखिम | व्यवहारमा यसको अर्थ के हो? |
|---|---|---|
API1 | टुटेको वस्तु स्तर प्राधिकरण | एउटा अन्तिम बिन्दुले अर्को प्रयोगकर्ता वा भाडामा लिने व्यक्तिको डेटा फिर्ता गर्छ वा परिमार्जन गर्छ। |
API2 | अप्रमाणित अन्त्यबिन्दुहरू | कुनै पनि प्रमाणीकरण बिना नै रुट पहुँचयोग्य छ। |
API3 | अत्यधिक डेटा एक्सपोजर | प्रतिक्रियाले कलरलाई चाहिने वा देख्नुपर्ने भन्दा बढी फिल्डहरू फर्काउँछ |
API3 | सामूहिक कार्यभार | एउटा अन्त्यबिन्दुले कहिल्यै स्वीकार गर्न नमिल्ने क्षेत्रहरू स्वीकार गर्छ र लागू गर्छ |
API3 / API10 | प्रतिक्रियाहरूमा संवेदनशील डेटा | PII, PCI वा PHI ले ग्राहकलाई पठाउन नहुने अन्तिम बिन्दुबाट पुग्छ। |
API4 | दर सीमा छुटेको छ | एउटा अन्त्य बिन्दुलाई दुर्व्यवहार वा क्रूर-बल कलहरू विरुद्ध कुनै सुरक्षा हुँदैन। |
API5 | भाँचिएको प्रकार्य स्तर प्राधिकरण | कलरलाई अनुमति छ कि छैन भनेर जाँच नगरी एन्डपोइन्टले विशेषाधिकार प्राप्त कार्य गर्दछ |
API7 | SSRF | आक्रमणकारीको तर्फबाट अनुरोध गर्न API लाई झुक्याउन सकिन्छ। |
API8 | JWT गलत कन्फिगरेसन | टोकन प्रमाणीकरण, हस्ताक्षर, वा म्याद समाप्ति गलत तरिकाले सेट अप गरिएको छ |
API8 | CORS गलत कन्फिगरेसन | क्रस-ओरिजिन नियमहरू शोषणयोग्य हुन पर्याप्त अनुमतिपूर्ण छन्। |
API9 | जोम्बी र अनाथ अन्त्यबिन्दुहरू | अझै पनि पहुँचयोग्य रहेका र कसैको स्वामित्वमा नभएका मार्गहरू प्रयोग नगरिएका वा बिर्सिएका मार्गहरू |
एउटा वर्ग जानाजानी अनुपस्थित छ। API6, संवेदनशील व्यापार प्रवाहमा अप्रतिबन्धित पहुँच, लाई व्यापार प्रक्रियाले के अनुमति दिन्छ भनेर बुझ्न आवश्यक छ, र कुनै पनि स्थिर विश्लेषकले यसलाई विश्वसनीय रूपमा पत्ता लगाउँदैन। अन्यथा दाबी गर्ने कुनै पनि विक्रेताले तपाईंलाई चेकबक्स बेचिरहेको छ। त्यो तपाईंको खतरा मोडेलिङ र तपाईंको प्रवेश परीक्षकहरूसँग रहन्छ।
सबै खोजहरू बराबर हुँदैनन्: डेटा संवेदनशीलता र विषाक्त संयोजनहरू
निष्कर्षहरूको समतल सूचीले अप्रमाणित स्वास्थ्य-जाँच अन्त्यबिन्दुलाई अप्रमाणित अन्त्यबिन्दु जस्तै व्यवहार गर्छ जसले ग्राहक रेकर्डहरू फिर्ता गर्छ। ती एउटै समस्या होइनन्, र प्राथमिकता मोडेल जसले तिनीहरूलाई समान रूपमा स्कोर गर्छ, तपाईंको टोलीहरूलाई सूचीलाई बेवास्ता गर्न तालिम दिन्छ।
Xygeni ले प्रत्येक एन्डपोइन्टले ह्यान्डल गर्ने डेटालाई वर्गीकृत गर्छ, अनुरोध प्यारामिटरहरू र प्रतिक्रियाहरूमा PII, PCI र PHI लाई फ्ल्याग गर्छ, र त्यसलाई एन्डपोइन्टको प्रमाणीकरण अवस्थासँग जोड्छ।
यसले एउटै अन्त्य बिन्दुमा पर्ने निष्कर्षहरूलाई पनि सहसम्बन्धित गर्छ र जब तिनीहरू मिश्रित हुन्छन् तब गम्भीरता बढाउँछ। प्रतिक्रियामा PII चुहावट आफैंमा गम्भीर निष्कर्ष हो। कुनै प्रमाणीकरण आवश्यक नपर्ने अन्त्य बिन्दुमा उही चुहावट महत्त्वपूर्ण हुन्छ, र प्लेटफर्मले कसैलाई म्यानुअल रूपमा याद गर्नको लागि जडान छोड्नुको सट्टा त्यसरी स्कोर गर्छ।
जोम्बी र अनाथ अन्त्यबिन्दुहरू: कोड र विशिष्टता बीचको बहाव
Xygeni ले तपाईंको कोड र तपाईंको API स्पेसिफिकेशनलाई सँगसँगै पढेको हुनाले, यसले तिनीहरू कहाँ असहमत छन् भनेर देख्छ। त्यो बहाव तीन पहिचानयोग्य ढाँचाहरूको रूपमा देखा पर्दछ:
- कागजात नगरिएका अन्त्यबिन्दुहरू। तिनीहरू कोडमा बस्छन् र कहिल्यै पनि स्पेकमा थपिएनन्।
- जोम्बी अन्त्य बिन्दुहरू। तिनीहरूलाई पदावनत गरिएको वा सेवानिवृत्तको रूपमा चिन्ह लगाइएको छ, र तिनीहरू अझै पनि पहुँचयोग्य छन्।
- टुहुरा अन्त्य बिन्दुहरू। हालको टोलीमा कोही पनि तिनीहरूको मालिक छैनन्।
यी मध्ये कुनै पनि स्पेक-मात्र इन्भेन्टरीमा देखा पर्दैन, किनकि स्पेक नै वास्तवमा उनीहरूलाई हराइरहेको कुरा हो।
तपाईंले कारबाही गर्न सक्ने प्रमाण, अनुसन्धानको टिकट होइन
प्रत्येक खोजले जिम्मेवार ह्यान्डलरलाई संकेत गर्दछ: फाइल, वर्ग, विधि, र त्रुटि प्रस्तुत गर्ने विशिष्ट रेखा, यसको साथमा रेन्डर गरिएको अपमानजनक कोड सहित। प्रत्येकले यसको गम्भीरता, यसको OWASP API सुरक्षा शीर्ष १० श्रेणी, यसको CWE, अन्तिम बिन्दुको प्रमाणीकरण अवस्था, र संलग्न डेटाको संवेदनशीलता वर्गीकरण पनि बोक्छ।
एउटा अन्त्य बिन्दुको नाम मात्र राख्ने खोजले विकासकर्तालाई कुनै पनि कुरा ठीक गर्न सुरु गर्नु अघि नै कोडबेसमा खोजी गर्न पठाउँछ। लाइनको नाम राख्ने खोजले तिनीहरूलाई तुरुन्तै समाधानमा पुर्याउँछ।
निष्कर्षहरू JSON, CSV, Markdown र SARIF 2.1.0 को रूपमा निर्यात हुन्छन्, त्यसैले तिनीहरू t मा अवतरण हुन्छन्।ओहो, तपाईंका टोलीहरू पहिले नै काम गरिरहेका छन्।
ह्यान्डलर, लाइन, र कोड जसले एक्सपोजर प्रस्तुत गर्यो। अनुसन्धान गर्न टिकट होइन।
किन यो एउटा प्लेटफर्ममा बस्छ, अर्को कन्सोलमा होइन
Xygeni ले API सुरक्षा सँगसँगै चलाउँछ SAST, SCA, गोप्य सुरक्षा, IaC र DAST एउटै प्लेटफर्म भित्र, मार्फत सहसम्बन्धित ASPM, यसलाई आफ्नै उपकरणको साथ छुट्टै उपकरणको रूपमा पठाउनुको सट्टा login र यसको आफ्नै ब्याकलग।
त्यो महत्त्वपूर्ण छ किनकि स्थिर निष्कर्ष र रनटाइम निष्कर्षहरूले एउटै अन्त्यबिन्दुको बारेमा फरक-फरक प्रश्नहरूको जवाफ दिन्छन्, र तिनीहरू अलग भन्दा सँगै बढी उपयोगी हुन्छन्। स्थिरले तपाईंलाई अन्तिम बिन्दु पठाउनु अघि जोखिमपूर्ण हुन्छ भनेर बताउँछ। DAST ले यो चलिरहेको बेला वास्तवमा के पहुँचयोग्य र शोषणयोग्य छ भनेर पुष्टि गर्दछ।
त्यसलाई दुई कन्सोलहरूमा विभाजन गर्नुहोस् र सहसम्बन्धित जोखिम दुई असंबद्ध ब्याकलगहरू बन्छ। कसैले पनि तिनीहरूलाई मिलाउँदैन, र अन्तिम बिन्दु जुन कागजात नगरिएको र प्रमाणित नगरिएको दुवै छ, कुनै पनि कतारमा बस्दैन।
तपाईंको वास्तविक API आक्रमण सतह हेर्नुहोस्। एपीआई सुरक्षा एक को रूपमा उपलब्ध छ Enterprise Xygeni प्लेटफर्ममा एड-अन, र तपाईंको आफ्नै पूर्वाधार भित्र तपाईंको आफ्नै भण्डारहरू विरुद्ध स्क्यान चल्छ।
सोधिने प्रश्न
के यसले कुन एन्डपोइन्टहरूले संवेदनशील डेटा ह्यान्डल गर्छन् भनेर बताउन सक्छ?
हो। Xygeni ले अन्तिम बिन्दु प्यारामिटरहरू र प्रतिक्रियाहरूमा PII, PCI र PHI लाई फ्ल्याग गर्छ, र वास्तविक एक्सपोजरद्वारा निष्कर्षहरूलाई श्रेणीबद्ध गर्न त्यो वर्गीकरण प्रयोग गर्छ।
के यो हरेकमा चल्न सक्छ? pull request?
हो। वृद्धिशील स्क्यानिङले परिवर्तन भएका अन्त्यबिन्दुहरूको मात्र विश्लेषण गर्छ, र यसले उत्पादन गर्ने म्यानिफेस्टले पछिल्ला DAST स्क्यानलाई ती अन्त्यबिन्दुहरूमा केन्द्रित गर्न सक्छ, त्यसैले स्थिर र रनटाइम परीक्षण वास्तवमा सारिएको कुरासँग पङ्क्तिबद्ध रहन्छ।
के मेरो कोडले मेरो वातावरण छोड्छ?
अहँ। स्क्यानहरू तपाईंको आफ्नै पूर्वाधारमा चल्छन्। परिणामहरू मात्र अपलोड गरिन्छन्, ट्रान्जिटमा र आराम गर्दा सुरक्षित गरिन्छन्।
म कसरी API सुरक्षा प्राप्त गर्न सक्छु?
एपीआई सुरक्षा एक को रूपमा उपलब्ध छ Enterprise एड-अन। PoC अनुरोध गर्नुहोस् र यो तपाईंसँग स्कोप गरिनेछ।





