services - security system




सुरक्षा के बारे में हर प्रोग्रामर को क्या पता होना चाहिए? (12)

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

मुझे पूरा यकीन है कि कोई भी सुरक्षा के बारे में हर चीज नहीं सीख सकता है लेकिन यकीन है कि प्रत्येक प्रोग्रामर या आईटी छात्र को इसके बारे में "न्यूनतम" ज्ञान होना चाहिए और मेरा सवाल यह है कि यह न्यूनतम ज्ञान क्या है?

क्या आप कुछ ई-किताबें या पाठ्यक्रम सुझा सकते हैं या कुछ भी इस सड़क से शुरू करने में मदद कर सकते हैं?


  1. महत्वपूर्ण क्यों है।
  2. यह व्यापार-बंद के बारे में है।
  3. क्रिप्टोग्राफी काफी हद तक सुरक्षा से एक व्याकुलता है।

अपने उपयोगकर्ताओं के पासवर्ड नमक और हैश। उन्हें अपने डेटाबेस में सादा पाठ में कभी भी सहेजें।


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

  • हमेशा अपने कोड तोड़ने का प्रयास करें (चीटशीट्स का उपयोग करें और अधिक जानकारी के लिए चीजों को Google करें)।
  • अपने प्रोग्रामिंग क्षेत्र में सुरक्षा त्रुटियों के लिए अद्यतन किया जाना चाहिए।
  • और जैसा ऊपर बताया गया है किसी भी प्रकार के उपयोगकर्ता या स्वचालित इनपुट पर भरोसा न करें।
  • ओपनसोर्स अनुप्रयोगों का उपयोग करें (उनकी सबसे अधिक सुरक्षा त्रुटियों को ज्ञात और हल किया जाता है)।

आप निम्न लिंक पर अधिक सुरक्षा संसाधन पा सकते हैं:

आपके आवेदन विक्रेता सुरक्षा प्रवाह के बारे में अधिक जानकारी के लिए Google।


ढांचे और एपीआई में सुरक्षित चूक का महत्व:

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


मैं सीडब्ल्यूई / एसएएनएस टॉप 25 सबसे खतरनाक प्रोग्रामिंग त्रुटियों की समीक्षा करने का सुझाव देता हूं। इसे भविष्य में नियमित अपडेट के वादे के साथ 2010 के लिए अपडेट किया गया था। 2009 संशोधन भी उपलब्ध है।

http://cwe.mitre.org/top25/index.html

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

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


मोज़िला में वेब सुरक्षा टीम ने एक महान मार्गदर्शिका बनाई है, जिसे हम अपनी साइटों और सेवाओं के विकास में रखते हैं।


यदि आप अपने अनुप्रयोगों को सुरक्षित रखना चाहते हैं तो सिद्धांतों को ध्यान में रखना:

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

अपने एप्लिकेशन को सुरक्षित बनाने के बारे में कुछ उत्कृष्ट किताबें और लेख ऑनलाइन हैं:

अपने डेवलपर्स को एप्लिकेशन सुरक्षा सर्वोत्तम मूल्यों पर प्रशिक्षित करें

Codebashing (भुगतान)

सुरक्षा नवाचार (भुगतान)

सुरक्षा कम्पास (भुगतान)

ओडब्ल्यूएएसपी वेबगोट (फ्री)


सुरक्षा पर सामान्य जानकारी के लिए, मैं ब्रूस श्नीयर पढ़ने की अत्यधिक अनुशंसा करता हूं। उन्हें एक वेबसाइट, उनके क्रिप्टो-ग्राम न्यूजलेटर , कई books मिली books , और कई interviews

मैं सोशल इंजीनियरिंग (और केविन मिटनिक ) से परिचित भी होगा।

वास्तविक दुनिया में सुरक्षा कैसे चलती है, इस बारे में एक अच्छी (और सुंदर मनोरंजक) पुस्तक के लिए, मैं क्लिफ स्टॉल द्वारा उत्कृष्ट (हालांकि थोड़ा दिनांकित) 'द कूकू अंडे' की सिफारिश करता हूं।


कंप्यूटर नेटवर्क और सुरक्षा में एक अच्छा स्टार्टर कोर्स एमआईटी कोर्स हो सकता है। एक बात जो मैं सुझाऊंगा वह गोपनीयता के बारे में नहीं भूलना है। गोपनीयता, कुछ इंद्रियों में, सुरक्षा के लिए वास्तव में आधारभूत है और अक्सर सुरक्षा पर तकनीकी पाठ्यक्रमों में शामिल नहीं होती है। आपको इस पाठ्यक्रम में नैतिकता और कानून पर गोपनीयता पर कुछ सामग्री मिल सकती है क्योंकि यह इंटरनेट से संबंधित है।


सुरक्षा एक प्रक्रिया है, न कि उत्पाद।

कई लोग इस तथ्य के बारे में भूल जाते हैं।


  • याद रखें कि आपको (प्रोग्रामर) को सभी हिस्सों को सुरक्षित करना है, लेकिन हमलावर को केवल आपके कवच में एक कंक ढूंढने में सफल होना है।
  • सुरक्षा "अज्ञात अज्ञात" का एक उदाहरण है। कभी-कभी आपको पता नहीं चलेगा कि संभावित सुरक्षा त्रुटियां क्या हैं (बाद में)।
  • एक बग और सुरक्षा छेद के बीच का अंतर हमलावर की खुफिया पर निर्भर करता है।






security