
FIASSE v1.1
एप्लिकेशन सुरक्षा को सॉफ्टवेयर इंजीनियरिंग में एकीकृत करने के लिए एक फ्रेमवर्क (FIASSE) जो सिक्योरेबल सॉफ्टवेयर इंजीनियरिंग मॉडल (SSEM) का उपयोग करता है
एप्लिकेशन सुरक्षा को सॉफ़्टवेयर इंजीनियरिंग में एकीकृत करने के लिए एक फ़्रेमवर्क (FIASSE)
नोट: यह रिपॉज़िटरी एक चालू कार्य है। योगदान का स्वागत है!
अवलोकन
TL;DR: कृपया DOC पढ़ें। FIASSE वेबसाइट देखें। योगदान देने के लिए GitHub Discussions पर जाएँ।
इस रिपॉज़िटरी में एप्लिकेशन सुरक्षा को सॉफ़्टवेयर इंजीनियरिंग में एकीकृत करने के लिए OWASP फ़्रेमवर्क (FIASSE) के लिए संसाधन और सामग्री शामिल है। FIASSE (उच्चारण /feiz/ जैसे 'phase') एक विक्रेता-स्वतंत्र फ़्रेमवर्क है जो सुरक्षित (securable) सॉफ़्टवेयर बनाने के लिए एक डेवलपर-केंद्रित, सिद्धांत-आधारित दृष्टिकोण को बढ़ावा देता है। यह मान्यता है कि सुरक्षा विकास की तरह एक गतिशील, सतत प्रक्रिया है। यह सिक्योरेबल सॉफ़्टवेयर इंजीनियरिंग मॉडल (SSEM) को एक साझा डिज़ाइन भाषा के रूप में प्रस्तुत करता है जो स्थापित सॉफ़्टवेयर इंजीनियरिंग शब्दावली का उपयोग करके सुरक्षा को सॉफ़्टवेयर आर्किटेक्चर, डिज़ाइन और इंजीनियरिंग में एकीकृत करता है, सुरक्षा को उन सिद्धांतों में समाहित करके जो कोड को ही आकार देते हैं। यह फ़्रेमवर्क विकास टीमों को कोड के पूरे जीवनकाल में साइबर घटनाओं से भौतिक प्रभाव की संभावना को कम करते हुए लचीले ढंग से कंप्यूटिंग मूल्य जोड़ने में सक्षम बनाता है।
FIASSE एक सृजनात्मक (creational) फ़्रेमवर्क है। यह इस बात को संबोधित करता है कि सॉफ़्टवेयर में सुरक्षा कैसे लागू की जाती है, इंजीनियरिंग निर्णयों को सीधे सुरक्षित परिणामों से जोड़ता है। यह एक आश्वासन (assurance) फ़्रेमवर्क, एक परिपक्वता मॉडल, या नियंत्रण कैटलॉग या भेद्यता मेट्रिक्स का प्रतिस्थापन नहीं है। यह उन दृष्टिकोणों का पूरक है और आश्वासन तथा अनुपालन पर डाउनस्ट्रीम दबाव को कम करता है।
उद्देश्य
व्यावहारिक दिशानिर्देश प्रदान करना जो डेवलपर्स को सशक्त बनाते हैं ताकि वे गहन सुरक्षा विशेषज्ञता की आवश्यकता के बिना सुरक्षित सॉफ़्टवेयर बना सकें, और सुरक्षा पेशेवरों को उनके सुरक्षा अनुभव को सॉफ़्टवेयर इंजीनियरिंग में प्रभावी ढंग से एकीकृत करने में मार्गदर्शन करना। FIASSE इसे एक सॉफ़्टवेयर इंजीनियरिंग लेंस के माध्यम से प्राप्त करता है, जिससे संज्ञानात्मक भार कम होता है और विकास तथा सुरक्षा टीमों के बीच सहयोग को बढ़ावा मिलता है।
यह किस प्रकार भिन्न है?
जबकि OWASP Top 10 जैसी आश्वासन-केंद्रित परियोजनाएँ इस बात पर प्रकाश डालती हैं कि किन बातों से बचना चाहिए (एक ब्लॉक लिस्ट), OWASP FIASSE अनुसरण करने के लिए सकारात्मक विशेषताओं और प्रथाओं का एक समूह प्रदान करता है (एक अनुमति सूची)। यह दृष्टिकोण सुरक्षित सॉफ़्टवेयर बनाने के लिए मौजूदा सॉफ़्टवेयर इंजीनियरिंग कौशल का लाभ उठाता है, बजाय इसके कि डेवलपर्स को शोषण तकनीकें सीखने या भेद्यता-केंद्रित मानसिकता अपनाने की आवश्यकता हो। ज़ोर परिचित इंजीनियरिंग सिद्धांतों के माध्यम से व्यावहारिक, सुरक्षित कोडिंग को सक्षम बनाने पर है।
विकास प्रक्रिया के भीतर सुरक्षा की व्यावहारिक भूमिका को स्पष्ट रूप से परिभाषित करके, यह फ़्रेमवर्क सुनिश्चित करता है कि व्यावसायिक मूल्य प्रभावी ढंग से प्राप्त हो। कोड लिखे जाने से पहले स्पष्ट सुरक्षा अपेक्षाएँ निर्धारित करने से इस संभावना को कम किया जाता है कि सुरक्षा दोष बाद में खोजे जाएँगे और उन्हें ठीक करना होगा। प्रभावी अपनाने से मौजूदा आश्वासन मेट्रिक्स में सुधार होना चाहिए, निष्कर्षों की उथल-पुथल कम होनी चाहिए, अधिक टिकाऊ समाधान उत्पन्न होने चाहिए, और उपचार का समय कम होना चाहिए।
मूल मूल्य
FIASSE चार मूल मूल्यों द्वारा निर्देशित है। प्रत्येक एक सापेक्ष प्राथमिकता व्यक्त करता है: दोनों पक्षों का महत्व है, लेकिन जब चुनाव करना आवश्यक हो, तो FIASSE बाईं ओर का पक्ष लेता है।
- सुरक्षा नियंत्रणों के बजाय सुरक्षित विशेषताएँ: कमज़ोरियों की भरपाई के लिए बाद में जोड़े गए सुरक्षा नियंत्रणों के बजाय उन इंजीनियरिंग गुणों को प्राथमिकता दें जो किसी सिस्टम को बनाने और रक्षात्मक बनाए रखने की अनुमति देते हैं।
- मूल्यांकन के बजाय भागीदारी: कार्य पूरा होने के बाद किए गए मूल्यांकन के बजाय पूरे जीवनचक्र में सुरक्षा और विकास के बीच संरचित जुड़ाव को प्राथमिकता दें।
- सुरक्षा शब्दजाल के बजाय इंजीनियरिंग प्रथम सिद्धांत: सुरक्षा-विशिष्ट शब्दजाल या विरोधी अनुमानों के बजाय स्थापित सॉफ़्टवेयर इंजीनियरिंग प्रथम सिद्धांतों में निहित होने को प्राथमिकता दें।
- सुरक्षा गतिविधि के बजाय व्यावसायिक मूल्य: सुरक्षा को साध्य के रूप में अपनाने के बजाय संगठन के मूल्य सृजन को बनाए रखने वाली सुरक्षा को प्राथमिकता दें।
मुख्य सिद्धांत
- सुरक्षित-योग्य प्रतिमान (Securable Paradigm): "सुरक्षित" की कोई स्थिर अवस्था नहीं होती। जिस सिस्टम को आज सुरक्षित घोषित किया गया है, वह कल असुरक्षित हो सकता है। FIASSE इंजीनियरिंग के लक्ष्य को "क्या यह सुरक्षित है?" से "क्या इसे इस तरह बनाया गया है कि सुरक्षा बनाए रखी जा सके?" की ओर पुनर्निर्देशित करता है — अनुकूली लचीलापन, विकासवादी सुरक्षा और निरंतर सुधार के माध्यम से।
- लचीले ढंग से कंप्यूटिंग मूल्य प्रदान करना: व्यावसायिक संदर्भ में सॉफ़्टवेयर इंजीनियरिंग का प्राथमिक निर्देश। सॉफ़्टवेयर को कार्यात्मक आवश्यकताओं को पूरा करना चाहिए और साथ ही उन सुरक्षित-योग्य गुणों को बनाए रखना चाहिए जो उसे प्रत्येक परिवर्तन के बाद आने वाले परिवर्तन, तनाव और हमले का सामना करने में सक्षम बनाते हैं।
- सुरक्षा मिशन: भौतिक प्रभाव को कम करना: सुरक्षा का मिशन किसी साइबर घटना के भौतिक प्रभाव की संभावना को कम करना है। उल्लंघनों का पूर्ण उन्मूलन एक व्यावहारिक व्यावसायिक लक्ष्य नहीं है, इसलिए सुरक्षा रणनीतियों को व्यावसायिक उद्देश्यों और जोखिम क्षमता के साथ संरेखित होना चाहिए।
- गुणवत्ता-सुरक्षा संबंध: सुरक्षा सॉफ़्टवेयर गुणवत्ता से अधिक नहीं हो सकती। जो गुण सॉफ़्टवेयर को समझने, बदलने, परीक्षण करने और निरीक्षण करने में आसान बनाते हैं, वही गुण उसे सुरक्षित करना संभव बनाते हैं। इंजीनियरिंग गुणवत्ता में निवेश एक सुरक्षा निवेश है।
- डेवलपर-केंद्रित सुरक्षा: सॉफ़्टवेयर इंजीनियरों को परिचित सॉफ़्टवेयर इंजीनियरिंग सिद्धांतों का उपयोग करके सुरक्षित-योग्य सिस्टम बनाने के लिए सशक्त बनाना, बजाय इसके कि उनसे पेनिट्रेशन टेस्टर की मानसिकता अपनाने की मांग की जाए।
- साझा डिज़ाइन भाषा के रूप में SSEM: सुरक्षा विशेषताओं को परिभाषित करने और चर्चा करने के लिए स्थापित सॉफ़्टवेयर इंजीनियरिंग शब्दों (जैसे, Analyzability, Modifiability, Testability) का उपयोग करना। यह सुरक्षा को डेवलपर्स के लिए सुलभ बनाता है और सुरक्षा पेशेवरों को मूल्यांकन के लिए एक साझा आधार देता है।
- सुरक्षा को विकास और व्यावसायिक लक्ष्यों के साथ संरेखित करना: सुरक्षा और विकास पूरक हैं, प्रतिद्वंद्वी नहीं। AppSec SDLC में प्रारंभिक चरण में भाग लेता है, विशेष रूप से आवश्यकताओं के संग्रह और फ़ीचर योजना के दौरान, ताकि कोड लिखे जाने से पहले अपेक्षाएँ स्पष्ट हों।
- पारदर्शिता सिद्धांत: सिस्टम इस तरह डिज़ाइन किए जाते हैं कि अधिकृत पक्ष आंतरिक स्थिति और व्यवहार को समझ सकें। संरचित लॉगिंग, इंस्ट्रुमेंटेशन और ऑडिट ट्रेल्स कोड में निर्मित होते हैं, न कि केवल बाहरी टूलिंग द्वारा प्रदान किए जाते हैं।
- न्यूनतम आश्चर्य का सिद्धांत: सिस्टम उपयोगकर्ताओं, डेवलपर्स और प्रशासकों के लिए सहज और पूर्वानुमेय तरीकों से व्यवहार करते हैं। पूर्वानुमेयता विश्लेषण में सहायता करती है, संज्ञानात्मक बोझ को कम करती है, और विश्वास सीमाओं को स्पष्ट बनाती है।
- AppSec में प्रथम-श्रेणी नागरिक के रूप में आवश्यकताएँ: सुरक्षा फ़ीचर्स, खतरा परिदृश्य और सुरक्षा स्वीकृति मानदंड आवश्यकताओं की प्रक्रिया के माध्यम से प्रदान किए जाते हैं। भेद्यताएँ आमतौर पर उस अपेक्षा तक पहुँचती हैं जो कभी निर्दिष्ट नहीं की गई थी, इसलिए वह अंतराल आवश्यकताओं की प्रक्रिया में होना चाहिए।
इंजीनियरिंग सिद्धांत
फ्रेमवर्क का खंड 4 डेवलपर्स को ऐसे सिद्धांत देता है जो सीधे कोड स्तर पर लागू होते हैं: