कुंजी सॉफ्टवेयर के पंजे से बचने के लिए 10 युक्तियाँ

लेखक: Eugene Taylor
निर्माण की तारीख: 15 अगस्त 2021
डेट अपडेट करें: 12 मई 2024
Anonim
कुंजी सॉफ्टवेयर के पंजे से बचने के लिए 10 युक्तियाँ - प्रौद्योगिकी
कुंजी सॉफ्टवेयर के पंजे से बचने के लिए 10 युक्तियाँ - प्रौद्योगिकी

विषय



स्रोत: केंटोह / ड्रीमस्टाइम डॉट कॉम

ले जाओ:

सॉफ्टवेयर डेवलपमेंट में, बग्स को खत्म करने से लेकर दोषों को ठीक करने तक पर ध्यान केंद्रित किया जा रहा है, जिनमें से कई बार-बार होते हैं।

सभी सॉफ्टवेयर में दोष हैं, विशेष रूप से आज के जटिल कोड में हजारों लाइनें हैं जिन्हें बस इतना ही कहा जाना है। इंस्टीट्यूट ऑफ इलेक्ट्रिकल एंड इलेक्ट्रॉनिक्स इंजीनियर्स (IEEE) इस दुविधा से अवगत है। 2014 में शुरू, IEEE ने एक नई पहल शुरू की: कंप्यूटर सोसायटी सेंटर फ़ॉर सिक्योर डिज़ाइन (CSD)। इसका मिशन? सॉफ्टवेयर सिस्टम को पहचानने के लिए मार्गदर्शन प्रदान करना, जो मजबूत, पहचान योग्य सुरक्षा गुणों के साथ सॉफ्टवेयर सिस्टम को समझौता करने और डिजाइन करने और निर्माण करने के लिए असुरक्षित हैं

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

उस तरह की जानकारी प्राप्त करने के लिए, सीएसडी ने सॉफ्टवेयर सुरक्षा के क्षेत्र में दिग्गजों की मदद मांगी - कमोबेश वे, जिन्होंने या तो उपरोक्त गलतियाँ की हैं या उन्हें ठीक करने में उनका हाथ था। बहुत विचार-विमर्श के बाद, समूह ने अपने विचारों को एक पेपर में इकट्ठा किया, "टॉप 10 सॉफ्टवेयर सिक्योरिटी डिज़ाइन फ्लैव्स से बचना।" आईईईई ने उल्लेख किया कि सूची में कई खामियां हैं जो दशकों से अच्छी तरह से ज्ञात हैं, लेकिन एक समस्या बनी हुई है। यहाँ अच्छी तरह से उन खामियों पर एक नज़र डालें - और उन्हें कैसे ठीक करें।


सुरक्षित डिजाइन क्या है?

यह पहले यह परिभाषित करने में सहायक हो सकता है कि CSD एक सुरक्षित डिज़ाइन को क्या मानता है: "एक सुरक्षित डिज़ाइन का लक्ष्य एक ऐसी प्रणाली को सक्षम करना है जो आवश्यक प्रमाणीकरण, प्राधिकरण, गोपनीयता, डेटा अखंडता, जवाबदेही, उपलब्धता और गैर-प्रत्यावर्तन आवश्यकताओं का समर्थन करता है और लागू करता है। "

सूची में आने से पहले व्यवसाय के एक और टुकड़े का ध्यान रखना होगा। याद रखें कि CSD ने अपना ध्यान बग से दोषों की ओर स्थानांतरित कर दिया है? यह महत्वपूर्ण है कि हर कोई उसी पृष्ठ पर हो, जिसमें CSD बग और दोषों को परिभाषित करता हो। दोनों सॉफ्टवेयर दोष हैं, अलग-अलग हैं। तो वे कैसे भिन्न होते हैं, बिल्कुल? खैर, बग्स कार्यान्वयन-स्तर की सॉफ़्टवेयर समस्याएं हैं जो कोड में मौजूद हो सकती हैं, लेकिन कभी भी निष्पादित नहीं हो सकती हैं। दूसरी ओर, पंजे, एक गहरे स्तर पर स्थित समस्याएं हैं; वे और अधिक सूक्ष्म हैं, और सॉफ्टवेयर कोड के रूप में त्वरित किया जा सकता है। निचला रेखा: पंजे डिजाइन स्तर पर गलतियों या ओवरसाइट्स का परिणाम हैं।

कुंजी सॉफ्टवेयर के पंजे से बचने के लिए 10 युक्तियाँ

जगह की परिभाषा के साथ, आइए आज सॉफ्टवेयर में दिखाई देने वाली सबसे आम खामियों को देखें।


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

प्रमाणीकरण तंत्र का उपयोग करें जिसे बायपास या छेड़छाड़ नहीं किया जा सकता है
प्रमाणीकरण के पूरे उद्देश्य को पराजित किया जाता है, अगर वीटेट उपयोगकर्ता या सॉफ्टवेयर प्रक्रिया से बायपास या छेड़छाड़ कर सकते हैं। CSD ने तीन सुझाव दिए: प्रमाणीकरण प्रणाली को एक चोक बिंदु के रूप में कार्य करने के लिए डिज़ाइन करें, क्रेडेंशियल्स को सीमित जीवन दें और बहु-कारक प्रमाणीकरण का उपयोग करें।

नो बग्स, नो स्ट्रेस - योर स्टेप बाय स्टेप गाइड बाय स्टेप गाइड टू लाइफ-चेंजिंग सॉफ्टवेर विदाउट योर लाइफ

जब कोई भी सॉफ़्टवेयर गुणवत्ता की परवाह नहीं करता है तो आप अपने प्रोग्रामिंग कौशल में सुधार कर सकते हैं।

प्रमाणीकरण के बाद अधिकृत करें
प्राधिकृत प्रमाणीकरण से अलग है। उदाहरण के लिए, डेबिट कार्ड और पिन एटीएम उपयोगकर्ताओं को प्रमाणित करते हैं। हालांकि, प्रमाणित एटीएम उपयोगकर्ता केवल अपने खातों से पैसे निकालने के लिए अधिकृत हैं। सीएसडी का मानना ​​है कि अधिकृत करने को एक सामान्य बुनियादी ढांचे (सिस्टम लाइब्रेरी या बैक एंड) का उपयोग करके स्पष्ट जांच माना जाना चाहिए जो अनुमत अनुमतियों और सेवाओं को परिभाषित करता है।

कड़ाई से अलग डेटा और नियंत्रण निर्देश, और अविश्वासित स्रोतों से प्राप्त नियंत्रण निर्देशों को कभी भी संसाधित न करें
इंजेक्शन कमजोरियों को रोकने के लिए, सह-डेटा और नियंत्रण निर्देशों को नियंत्रित करना महत्वपूर्ण है। अलगाव के सिद्धांत को नजरअंदाज करने से निम्न-स्तरीय सुरक्षा तंत्र को कमजोर करके सुरक्षा कम हो जाती है। CSD निम्नलिखित सलाह प्रदान करता है:

  • नियंत्रण-प्रवाह अखंडता और नियंत्रण के अलगाव और अविश्वसनीय डेटा की जांच के लिए डिजाइन कंपाइलर, पार्सर और बुनियादी ढांचे के संबंधित टुकड़े।
  • एपीआई बनाएं जो भाषा के तार का उपभोग करने वाले तरीकों या समापन बिंदुओं से बचें।
  • एपीआई से बचने के लिए एप्लिकेशन विकसित करें जो डेटा को मिलाते हैं और उनके मापदंडों में जानकारी को नियंत्रित करते हैं।

एक दृष्टिकोण को परिभाषित करें जो यह सुनिश्चित करता है कि डेटा स्पष्ट रूप से मान्य है
सॉफ्टवेयर सिस्टम और घटक उन आंकड़ों के बारे में धारणा बनाते हैं जो वे चलाते हैं। यह सुनिश्चित किया जाना चाहिए कि धारणाएं पकड़ में हैं। गलतियाँ गलत धारणाओं से पैदा होती हैं। सीएसडी की सिफारिश:

  • केंद्रीकृत सत्यापन तंत्र का डिज़ाइन या उपयोग।
  • एक विहित रूप में डेटा का परिवर्तन।
  • सत्यापन प्रधानों के सामान्य पुस्तकालयों का उपयोग।
  • कार्यान्वयन की इनपुट मान्यता को राज्य के प्रति सजग बनाना

क्रिप्टोग्राफी का सही ढंग से उपयोग करें
सीएसडी स्वीकार करता है कि क्रिप्टोग्राफी सही होना मुश्किल है। हालाँकि, यह सही नहीं हो रहा है:

  • पुस्तकालयों और एल्गोरिदम का दुरुपयोग
  • गरीब कुंजी प्रबंधन
  • यादृच्छिकता जो यादृच्छिक नहीं है
  • क्रिप्टोग्राफी को केंद्रीकृत करने में विफलता
  • एल्गोरिथ्म अनुकूलन और विकास के लिए अनुमति देने में विफलता

इस कठिनाई के कारण, CSD एक विशेषज्ञ से परामर्श करने की वकालत करता है। सीएसडी ने यह भी कहा कि विशेषज्ञता के क्षेत्र को क्रिप्टोग्राफी लागू किया जाना चाहिए।

देखभाल के साथ पहचान-संवेदनशील डेटा संभालना
दो चीजें होती हैं; डिज़ाइनर संवेदनशील के रूप में डेटा की पहचान करने में विफल होते हैं, या डिज़ाइनर उन सभी तरीकों को निर्धारित नहीं करते हैं जिनमें डेटा को उजागर या हेरफेर किया जा सकता है। CSD एक डेटा-संवेदनशीलता नीति बनाने का प्रस्ताव करता है जो सभी कंपनी-विशिष्ट कारकों को संबोधित करती है। नीति में शामिल होना चाहिए:

  • सरकार और उद्योग के नियमों के बारे में जानकारी जो संगठन पर लागू होती है
  • डेटा गोपनीयता लागू होती है या नहीं
  • संक्रमण में डेटा कब संभाला जाता है

हमेशा उपयोगकर्ताओं पर विचार करें
उपयोगकर्ताओं पर विचार करने में डेवलपर्स की विफलता कई मुद्दों को जन्म दे सकती है, जिनमें शामिल हैं:

  • सुविधा वृद्धि
  • उपयोगकर्ता संवेदनशील जानकारी का खुलासा करते हैं
  • जटिल सुरक्षा प्रक्रियाएं जो गलत या उपयोग में कमी की बाधाओं को सुधारती हैं।

CSD को पता है कि सुरक्षा बनाम सुविधा एक मुद्दा है। जोखिम मूल्यांकन दृष्टिकोण का उपयोग करना (व्यापार बंद करना) सही नहीं हो सकता है, लेकिन उपयोगकर्ताओं को पूरी तरह से अनदेखा करने से बेहतर है।

समझें कि बाहरी घटकों को एकीकृत करने से आपकी हमले की सतह कैसे बदल जाती है
पहले डिजाइन दोष के समान, सॉफ्टवेयर सिस्टम बाहरी घटकों से सुरक्षा कमजोरियों को भी मूल सॉफ़्टवेयर सिस्टम में एकीकृत किया जाता है। CSD सलाह देता है:

  • बाहरी घटक सुरक्षा का अध्ययन करने के लिए पर्याप्त समय निर्धारित करना।
  • सुरक्षा नियंत्रण लागू होने तक बाहरी घटकों के विश्वास से बचना।
  • सब कुछ दस्तावेज। उदाहरण के लिए, समझाएं कि डिफ़ॉल्ट सेटिंग्स क्यों बदली गईं।

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

  • समय के साथ सुरक्षा गुण बदलते हैं, जैसे कि कोड को अपडेट किया जाता है
  • कार्यक्षमता को अलग करने या टॉगल करने की क्षमता
  • उन वस्तुओं में परिवर्तन करना जिनका उद्देश्य गुप्त रखा जाना है
  • आपके नियंत्रण से परे घटकों की सुरक्षा गुणों में परिवर्तन

क्यों सॉफ्टवेयर अभी भी असुरक्षित है पर एक दिलचस्प ले लो

Cigital ब्लॉग पर, प्रिंसिपल कंसल्टेंट जिम डेलग्रोसो ने कारणों की पेशकश की कि क्यों अभियोजन उपरोक्त दोषों में से एक या अधिक के साथ सॉफ़्टवेयर डिज़ाइन कर सकते हैं:

  • इनमें से कुछ खामियां हर समय सही होना मुश्किल है।
  • हम इंसान हैं, और इंसान गलती करता है।
  • डिजाइन की खामियों को ढूंढना मुश्किल हो सकता है।

आईईईई के सेंटर फॉर सिक्योर डिज़ाइन ने बार को कीड़े से खामियों में बदल दिया है। केवल समय ही बताएगा कि उनके सुझावों का प्रभाव पड़ेगा या नहीं।