Facebook Pixel
Searching...
हिन्दी
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Building Secure and Reliable Systems

Building Secure and Reliable Systems

Best Practices for Designing, Implementing, and Maintaining Systems
द्वारा Heather Adkins 2020 541 पृष्ठ
3.86
100+ रेटिंग्स
सुनें
Listen to Summary

मुख्य निष्कर्ष

1. ढांचे सुरक्षा और विश्वसनीयता को लागू करते हैं

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

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

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

2. कोड डिज़ाइन में सरलता सुरक्षा और रखरखाव को बढ़ाती है

YAGNI कोड से बचने से विश्वसनीयता में सुधार होता है, और सरल कोड से सुरक्षा बग कम होते हैं, गलतियाँ करने के अवसर कम होते हैं, और डेवलपर का समय बचे हुए कोड को बनाए रखने में कम लगता है।

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

रखरखाव में सुधार। नियमित रूप से पुनर्गठन और तकनीकी ऋण को संबोधित करना समय के साथ कोड की सरलता बनाए रखने के लिए महत्वपूर्ण है। यह निरंतर प्रक्रिया जटिल, समझने में कठिन कोड के संचय को रोकने में मदद करती है, जो सुरक्षा और विश्वसनीयता के मुद्दों का कारण बन सकती है। लिंटर्स और कोड स्वास्थ्य मेट्रिक्स जैसे उपकरण टीमों को सुधार के क्षेत्रों की पहचान करने और उच्च कोड गुणवत्ता मानकों को बनाए रखने में मदद कर सकते हैं।

3. मजबूत टाइपिंग और सफाई सामान्य कमजोरियों को रोकते हैं

मजबूत प्रकारों का उपयोग आपके कोड को उन प्रकार की त्रुटियों से बचाता है जिन्हें एक संकलक नहीं पकड़ता है।

प्रकार सुरक्षा। मजबूत टाइपिंग संकलन के समय त्रुटियों को पकड़ने में मदद करती है, जिससे कई सामान्य कमजोरियों को उत्पादन में पहुँचने से पहले रोका जा सकता है। विभिन्न संदर्भों के लिए विशिष्ट प्रकारों का उपयोग करके (जैसे, HTML सामग्री के लिए SafeHtml, URLs के लिए SafeUrl), डेवलपर्स डिज़ाइन द्वारा सुरक्षा गुणों को लागू कर सकते हैं। यह दृष्टिकोण SQL इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग (XSS) जैसी कमजोरियों को पेश करना बहुत कठिन बना देता है।

इनपुट सत्यापन। उचित इनपुट सफाई सुरक्षा कमजोरियों को रोकने के लिए महत्वपूर्ण है। उपयोगकर्ता इनपुट को संभालने के लिए समर्पित पुस्तकालयों और ढांचे का उपयोग करके, डेवलपर्स यह सुनिश्चित कर सकते हैं कि सभी डेटा संवेदनशील संचालन में उपयोग करने से पहले सही तरीके से सत्यापित और साफ किया गया है। इसमें शामिल हैं:

  • उपयोगकर्ता-जनित सामग्री में विशेष वर्णों को एस्केप करना
  • URLs और फ़ाइल पथों को सत्यापित और साफ करना
  • सभी इनपुट के लिए सख्त प्रकार की जांच लागू करना

4. यूनिट परीक्षण व्यक्तिगत घटकों के व्यवहार की पुष्टि करता है

यूनिट परीक्षण आमतौर पर इंजीनियरिंग कार्यप्रवाह के हिस्से के रूप में स्थानीय रूप से चलते हैं ताकि डेवलपर्स को कोडबेस में परिवर्तन सबमिट करने से पहले तेज़ फीडबैक मिल सके।

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

  • वास्तविक कोड के साथ या उससे पहले परीक्षण लिखना (परीक्षण-प्रेरित विकास)
  • सामान्य और किनारे के मामलों को कवर करना
  • निर्भरताओं को अलग करने के लिए मॉक और स्टब का उपयोग करना

निरंतर फीडबैक। विकास कार्यप्रवाह में यूनिट परीक्षणों को एकीकृत करके, टीमें तेजी से पुनरावृत्तियों और अनपेक्षित साइड इफेक्ट्स को पकड़ सकती हैं। यह निरंतर फीडबैक लूप कोड गुणवत्ता बनाए रखने में मदद करता है और नए बग के परिचय को रोकता है। स्वचालित CI/CD पाइपलाइनों में हर कोड परिवर्तन पर यूनिट परीक्षण चलाए जा सकते हैं, जिससे डेवलपर्स को तुरंत फीडबैक मिलता है।

5. एकीकरण परीक्षण प्रणाली-व्यापी इंटरैक्शन का मूल्यांकन करता है

एकीकरण परीक्षण व्यक्तिगत इकाइयों और अमूर्तताओं से परे जाता है, डेटाबेस या नेटवर्क सेवाओं जैसी अमूर्तताओं के नकली या स्टब्ड-आउट कार्यान्वयन को वास्तविक कार्यान्वयन से बदलता है।

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

  • यथार्थवादी परीक्षण वातावरण स्थापित करना
  • परीक्षण डेटा को सुरक्षित रूप से प्रबंधित करना
  • असिंक्रोनस संचालन और समय संबंधी मुद्दों को संभालना

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

6. गतिशील विश्लेषण उपकरण रनटाइम त्रुटियों और कमजोरियों का पता लगाते हैं

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

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

  • मेमोरी लीक और बफर ओवरफ्लो
  • उपयोग के बाद मुक्त त्रुटियाँ
  • डेटा रेस और डेडलॉक्स
  • अपरिभाषित व्यवहार

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

7. फज़ परीक्षण किनारे के मामलों और अप्रत्याशित इनपुट को उजागर करता है

फज़िंग सेवा की स्थिरता का परीक्षण करने के लिए उपयोगी हो सकता है।

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

  • मेमोरी भ्रष्टाचार के मुद्दे
  • इनपुट सत्यापन दोष
  • सेवा से इनकार की कमजोरियाँ
  • फ़ाइल स्वरूपों या नेटवर्क प्रोटोकॉल में पार्सिंग त्रुटियाँ

निरंतर फज़िंग। निरंतर एकीकरण पाइपलाइनों में फज़ परीक्षण को एकीकृत करने से टीमों को अपने सिस्टम में नई कमजोरियों के लिए लगातार जांच करने की अनुमति मिलती है। जैसे-जैसे कोडबेस विकसित होता है, फज़िंग पुनरावृत्तियों या नए मुद्दों को उजागर कर सकती है जो परिवर्तनों द्वारा पेश किए गए हैं। libFuzzer और AFL (अमेरिकन फज़ी लॉप) जैसे उपकरण विभिन्न प्रकार的软件 के लिए फज़ परीक्षण को लागू करना आसान बनाते हैं।

8. निरंतर सत्यापन प्रणाली की निरंतर स्थिरता सुनिश्चित करता है

सावधानीपूर्वक डिज़ाइन किए गए परीक्षण सूट विभिन्न सॉफ़्टवेयर के विभिन्न टुकड़ों की सहीता का मूल्यांकन कर सकते हैं जो समान कार्य करते हैं।

सक्रिय स्थिरता। निरंतर सत्यापन पारंपरिक परीक्षण से परे जाता है, विभिन्न परिस्थितियों में प्रणाली का निरंतर परीक्षण करता है। यह दृष्टिकोण यह सुनिश्चित करने में मदद करता है कि प्रणाली समय के साथ विफलताओं और हमलों के प्रति स्थिर बनी रहे। निरंतर सत्यापन तकनीकों में शामिल हैं:

  • अराजकता इंजीनियरिंग प्रयोग
  • नियमित आपदा वसूली अभ्यास
  • स्वचालित सुरक्षा स्कैनिंग और पैठ परीक्षण
  • वास्तविक लोड स्थितियों के तहत प्रदर्शन तनाव परीक्षण

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

अंतिम अपडेट:

FAQ

What's Building Secure and Reliable Systems about?

  • Focus on Integration: The book emphasizes integrating security and reliability into the entire lifecycle of system design, implementation, and maintenance.
  • Practical Guidance: It offers practical advice and best practices for organizations of all sizes, from startups to large enterprises.
  • Cultural Aspects: The authors discuss the importance of fostering a culture of security and reliability within organizations.

Why should I read Building Secure and Reliable Systems?

  • Comprehensive Resource: It serves as a guide for professionals involved in system design and operations, offering insights from experienced practitioners at Google.
  • Real-World Examples: The book shares case studies and examples, making the concepts relatable and applicable to various organizational contexts.
  • Improving Practices: Readers can learn how to improve their organization's security posture and reliability practices.

What are the key takeaways of Building Secure and Reliable Systems?

  • Integration of Principles: Security and reliability should be integrated into every stage of the system lifecycle.
  • Crisis Management: Effective crisis management strategies, including incident response planning, are outlined.
  • Cultural Importance: A culture that prioritizes security and reliability is essential for resilient systems.

What are the best quotes from Building Secure and Reliable Systems and what do they mean?

  • "Security and reliability are inherent properties of a system.": These aspects should be integrated from the beginning.
  • "A culture of inevitability can help teams have the appropriate frame of mind to build secure and reliable systems.": Accepting that failures can happen leads to better resilience.
  • "Everyone is responsible for security and reliability.": Security and reliability should be a collective effort across the organization.

What is the principle of least privilege in Building Secure and Reliable Systems?

  • Definition: Users should have the minimum access necessary to accomplish their tasks.
  • Reducing Risk: Limiting access minimizes the potential for mistakes or malicious actions.
  • Implementation Strategies: Strategies include using small functional APIs and advanced authorization controls.

How does Building Secure and Reliable Systems define adversaries?

  • Understanding Adversaries: Adversaries are individuals or groups that may exploit system vulnerabilities.
  • Motivations: Motivations include financial gain, activism, and espionage.
  • Frameworks for Analysis: The book provides frameworks for analyzing adversaries, aiding in designing resilient systems.

What role does culture play in security and reliability according to Building Secure and Reliable Systems?

  • Cultural Shift: Building a culture of security and reliability is essential for long-term success.
  • Empowerment and Training: Training employees and empowering them to take ownership of security practices is crucial.
  • Collaboration and Communication: Open communication and collaboration help identify potential issues early.

What is the role of the incident commander (IC) in crisis management as described in Building Secure and Reliable Systems?

  • Leadership During Incidents: The IC leads the incident response team and makes critical decisions.
  • Maintaining Morale: The IC focuses on maintaining team morale during high-pressure situations.
  • Handover Processes: The IC manages handovers between shifts to ensure continuity.

How does Building Secure and Reliable Systems address the trade-offs between security and reliability?

  • Balancing Act: Decisions in one area can impact the other, requiring careful consideration.
  • Design Considerations: Designers should ensure security measures do not compromise reliability.
  • Real-World Examples: Examples show how organizations navigate these trade-offs effectively.

What are some best practices for designing secure systems in Building Secure and Reliable Systems?

  • Design for Understandability: Systems should be understandable to aid in security and reliability.
  • Use of Proxies: Safe proxies manage access and enforce security policies.
  • Continuous Improvement: Regularly review and update security practices based on new insights.

What are the advanced mitigation strategies discussed in Building Secure and Reliable Systems?

  • Defense in Depth: Implement multiple defensive measures to protect systems.
  • Automated Response Mechanisms: Use automated systems for quick incident response.
  • Regular Testing and Updates: Continuously test and update security measures to adapt to threats.

How does Building Secure and Reliable Systems suggest handling legacy code?

  • Consolidate Exemption Mechanisms: Simplify the codebase to reduce vulnerabilities.
  • Refactor Regularly: Improve security and reliability through regular refactoring.
  • Avoid Overengineering: Promote the YAGNI principle to keep the codebase manageable.

समीक्षाएं

3.86 में से 5
औसत 100+ Goodreads और Amazon से रेटिंग्स.

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

लेखक के बारे में

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

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Get personalized suggestions
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on May 2,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Appearance
Loading...
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →