असुरक्षित एपीआई या लाइब्रेरी

OWASP कैटगरी: MASVS-CODE: कोड की क्वालिटी

खास जानकारी

सुरक्षित नहीं माने जाने वाले एपीआई या लाइब्रेरी का इस्तेमाल करने से, ऐप्लिकेशन की सुरक्षा काफ़ी कम हो जाती है. इनमें से किसी भी डिपेंडेंसी में सुरक्षा से जुड़ा उल्लंघन होने पर, हमलावर कई तरह के वेक्टर का इस्तेमाल करके कई तरह के हमले कर सकता है. जैसे, मैन-इन-द-मिडल (एमआईटीएम) और रिमोट कोड एक्ज़ीक्यूशन (आरसीई).

सुरक्षा से जुड़ी कमज़ोरियों वाली डिपेंडेंसी को लागू करने का खतरा तब पैदा होता है, जब डेवलपर सुरक्षा से जुड़े आकलन और कमज़ोरियों की जांच को सॉफ़्टवेयर डेवलपमेंट लाइफ़साइकल (एसडीएलसी) में इंटिग्रेट नहीं करते. कुछ मामलों में, वे ऐप्लिकेशन की डिपेंडेंसी के लिए, अपने-आप अपडेट होने की नीति लागू नहीं करते.

आम तौर पर, निर्भरता का गलत इस्तेमाल करने की प्रोसेस, ऐप्लिकेशन बाइनरी (.apk) का विश्लेषण करके शुरू होती है. ऐसा इसलिए किया जाता है, ताकि जोखिम वाली लाइब्रेरी का पता लगाया जा सके. इस चरण में, ओपन सोर्स इंटेलिजेंस (ओएसआईएनटी) का इस्तेमाल किया जाता है. इससे पहले से मिली उन संभावित कमज़ोरियों का पता लगाया जाता है जिनका फ़ायदा उठाया जा सकता है. इसके बाद, हमलावर सार्वजनिक तौर पर ज़ाहिर की गई जोखिम की आशंका वाली जानकारी का फ़ायदा उठा सकते हैं. जैसे, सामान्य जोखिम की आशंका और एक्सपोज़र (सीवीई) की जानकारी का इस्तेमाल करके, वे और हमले कर सकते हैं.

असर

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

जोखिम कम करने के तरीके

मज़बूत सुरक्षा

ध्यान दें कि यहां दी गई सुरक्षा से जुड़ी रणनीतियों को एक साथ लागू करना होगा, ताकि सुरक्षा को बेहतर बनाया जा सके. साथ ही, ऐप्लिकेशन पर होने वाले हमलों को कम किया जा सके. हर मामले के हिसाब से, सही तरीके का आकलन किया जाना चाहिए.

डिपेंडेंसी में मौजूद जोखिम की आशंका का आकलन

डेवलपमेंट लाइफ़साइकल की शुरुआत में, डिपेंडेंसी की पुष्टि करने की सुविधा लागू करें, ताकि तीसरे पक्ष के कोड में मौजूद कमज़ोरियों का पता लगाया जा सके. इस फ़ेज़ में यह जांच की जाती है कि प्रोडक्शन एनवायरमेंट में रोल आउट करने से पहले, इन-हाउस नहीं बनाया गया कोड सुरक्षित है या नहीं. सॉफ़्टवेयर डेवलपमेंट लाइफ़साइकल में स्टैटिक ऐप्लिकेशन सिक्योरिटी टेस्टिंग (एसएएसटी) और डाइनैमिक ऐप्लिकेशन सिक्योरिटी टेस्टिंग (डीएएसटी) टूल लागू करके, पुष्टि की प्रक्रिया को बेहतर बनाया जा सकता है. इससे ऐप्लिकेशन की सुरक्षा को बेहतर बनाने में मदद मिलती है.

डिपेंडेंसी को लगातार अपडेट करना

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

ऐप्लिकेशन की पेनेट्रेशन टेस्टिंग करना

नियमित तौर पर पेनेट्रेशन टेस्ट करें. इस तरह के टेस्ट का मकसद, किसी ऐसी जानी-पहचानी कमज़ोरी का पता लगाना है जो मालिकाना हक वाले कोड और/या तीसरे पक्ष की डिपेंडेंसी पर असर डाल सकती है. इसके अलावा, सुरक्षा से जुड़े आकलन के दौरान अक्सर ऐसी कमज़ोरियों का पता चलता है जिनके बारे में पहले से जानकारी नहीं होती (ज़ीरो-डे). पेनेट्रेशन टेस्ट, डेवलपर के लिए मददगार होते हैं. इनसे उन्हें ऐप्लिकेशन की मौजूदा सुरक्षा की स्थिति के बारे में जानकारी मिलती है. साथ ही, सुरक्षा से जुड़ी उन समस्याओं को प्राथमिकता देने में मदद मिलती है जिनका फ़ायदा उठाया जा सकता है और जिन्हें ठीक करना ज़रूरी है.

संसाधन