अनुप्रयोग सुरक्षा

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

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


 * डिजाइन की समीक्षा। कोड लिखे जाने से पहले सुरक्षा समस्याओं के लिए एप्लिकेशन के आर्किटेक्चर और डिज़ाइन की समीक्षा की जा सकती है। इस चरण में एक सामान्य तकनीक एक खतरा मॉडल  का निर्माण है।
 * व्हाइटबॉक्स सुरक्षा समीक्षा, या कोड समीक्षा। यह एक सुरक्षा इंजीनियर है जो स्रोत कोड की मैन्युअल रूप से समीक्षा करके और सुरक्षा खामियों को ध्यान में रखते हुए एप्लिकेशन को गहराई से समझता है। आवेदन की समझ के माध्यम से, आवेदन के लिए अद्वितीय भेद्यता पाई जा सकती है।
 * ब्लैकबॉक्स सूचना सुरक्षा ऑडिट। यह केवल सुरक्षा कमजोरियों के लिए परीक्षण करने वाले एप्लिकेशन के उपयोग के माध्यम से है, किसी स्रोत कोड की आवश्यकता नहीं है।
 * स्वचालित टूलींग। कई सुरक्षा उपकरणों को विकास या परीक्षण परिवेश में शामिल करके स्वचालित किया जा सकता है। इसके उदाहरण स्वचालित DAST/SAST उपकरण हैं जो कोड संपादक या CI/CD प्लेटफॉर्म में एकीकृत हैं।
 * बग बाउंटी प्रोग्राम। ये हैकर-संचालित एप्लिकेशन सुरक्षा समाधान हैं जो कई वेबसाइटों और सॉफ़्टवेयर डेवलपर्स द्वारा पेश किए जाते हैं जिनके द्वारा व्यक्ति रिपोर्टिंग बग के लिए मान्यता और मुआवजा प्राप्त कर सकते हैं।

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

सुरक्षा खतरे
ओपन वेब एप्लीकेशन सिक्योरिटी प्रोजेक्ट (OWASP) मुफ्त और खुले संसाधन प्रदान करता है। इसका नेतृत्व ओडब्ल्यूएएसपी फाउंडेशन नामक एक गैर-लाभकारी संस्था द्वारा किया जाता है। ओडब्ल्यूएएसपी शीर्ष 10 - 2017 40 से अधिक सहयोगी संगठनों से संकलित व्यापक डेटा के आधार पर हालिया शोध के परिणाम हैं। इस डेटा ने 50,000 से अधिक अनुप्रयोगों में लगभग 2.3 मिलियन कमजोरियों का खुलासा किया। OWASP टॉप 10 - 2021 के अनुसार, दस सबसे महत्वपूर्ण वेब एप्लिकेशन सुरक्षा जोखिमों में शामिल हैं:
 * 1) टूटा हुआ अभिगम नियंत्रण # कंप्यूटर सुरक्षा
 * 2) क्रिप्टोग्राफ़िक विफलताएँ
 * 3) कोड इंजेक्शन
 * 4) असुरक्षित डिजाइन
 * 5) सुरक्षा गलत कॉन्फ़िगरेशन
 * 6) कमजोर और पुराने घटक
 * 7) पहचान और प्रमाणीकरण विफल
 * 8) सॉफ्टवेयर और डेटा इंटीग्रिटी फेलियर
 * 9) सुरक्षा लॉगिंग और निगरानी विफलता*
 * 10) सर्वर-साइड अनुरोध जालसाजी (एसएसआरएफ)*

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

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

सुरक्षा मानक और नियम

 * सीईआरटी सी कोडिंग मानक
 * ISO/IEC 27034-1:2011 सूचना प्रौद्योगिकी — सुरक्षा तकनीक — अनुप्रयोग सुरक्षा — भाग 1: सिंहावलोकन और अवधारणाएँ
 * ISO/IEC TR 24772:2013 सूचना प्रौद्योगिकी - प्रोग्रामिंग भाषाएँ - भाषा चयन और उपयोग के माध्यम से प्रोग्रामिंग भाषाओं में भेद्यता से बचने के लिए मार्गदर्शन
 * एनआईएसटी विशेष प्रकाशन 800-53
 * OWASP ASVS: वेब अनुप्रयोग सुरक्षा सत्यापन मानक

यह भी देखें

 * अनुप्रयोग सेवा वास्तुकला (एएसए)
 * सामान्य कमजोरियों की गणना
 * डाटा सुरक्षा
 * मोबाइल सुरक्षा
 * ओडब्ल्यूएएसपी
 * Microsoft सुरक्षा विकास जीवनचक्र
 * प्रयोग करने योग्य सुरक्षा