کتاب Designing Secure Software با نام کامل Designing Secure Software A Guide for Developers یک منبع کامل و غنی برای برنامهنویسانی است که میخواهند امنیت را در برنامهها و کدهای خود رعایت کنند. این کتاب شامل 3 قسمت کلی است که به طور موشکافانهای به شرح امنیت در ایجاد و نگهداری نرمافزار میپردازد.
در ادامه مقدمهای از کتاب Designing Secure Software را از زبان نویسنده بیان میکنیم.
مقدمهای بر کتاب Designing Secure Software:
این کتاب شامل 13 فصل است که در سه بخش تنظیم شده است، شامل مفاهیم، طراحی و اجرا، به علاوه یک نتیجهگیری است.
بخش اول: مفاهیم
فصلهای 1 تا 5 یک مبنای مفهومی برای بقیه کتاب ارائه میدهد.
فصل 1: مبانی، مروری بر مبانی امنیت اطلاعات و حریم خصوصی است.
فصل 2: تهدیدها، مدلسازی تهدید را معرفی میکند، مفاهیم اصلی سطوح حمله و مرزهای اعتماد را در زمینه حفاظت از داراییها بیان میکند. سه فصل بعدی ابزارهای ارزشمندی را در اختیار خوانندگان برای ایجاد نرمافزار ایمن قرار میدهد.
فصل 3: کاهشها، استراتژیهای متداول مورد استفاده برای کاهش تهدیدات شناسایی شده دفاعی را مورد بحث قرار میدهد.
فصل 4: الگوها، تعدادی از الگوهای طراحی امنیتی مؤثر را ارائه میدهد و برخی الگوهای ضد الگو را برای اجتناب از آنها مشخص میکند.
فصل 5: رمزنگاری، یک رویکرد جعبه ابزار را برای توضیح نحوه استفاده از کتابخانههای رمزنگاری استاندارد برای کاهش خطرات رایج، بدون ورود به ریاضیات اساسی (که در عمل به ندرت مورد نیاز است)، در نظر میگیرد.
بخش دوم: طراحی
این بخش از کتاب Designing Secure Software شاید منحصر به فرد ترین و مهمترین سهم آن را برای خوانندگان آینده نشان دهد.
فصل 6، طراحی ایمن و فصل 7، مرورهای طراحی امنیتی، راهنمایی در مورد طراحی نرمافزار ایمن و تکنیکهای عملی برای انجام آن، به ترتیب از دیدگاه طراح و منتقد، به موضوع نزدیک میشود. در این فرآیند، آنها توضیح میدهند که چرا از ابتدا امنیت در طراحی نرمافزار مهم است.
این فصلها از ایدههای ارائه شده در قسمت اول کتاب Designing Secure Software استفاده میکنند و روشهای خاصی را برای چگونگی ترکیب آنها برای ایجاد یک طراحی ایمن ارائه میدهند. روش بررسی به طور مستقیم بر اساس تجربه صنعت من است، از جمله یک مرحله به مرحله که میتوانید با نحوه کار خود سازگار شوید. هنگام مطالعه این فصلها، نمونه سند طراحی را در ضمیمه A مرور کنید، به عنوان نمونهای از نحوه عملی کردن این ایدهها.
قسمت سوم: پیادهسازی
فصلهای 8 تا 13 امنیت را در مرحله اجرا پوشش میدهد و نحوه استقرار، عملیات و پایان عمر را مورد بررسی قرار میدهد. پس از طراحی ایمن، این بخش از کتاب Designing Secure Software نحوه توسعه نرمافزار را بدون معرفی آسیبپذیریهای بیشتر توضیح میدهد. این فصلها شامل قطعاتی از کد هستند که هم نحوه ورود آسیبپذیریها به کد و هم نحوه جلوگیری از آنها را نشان میدهد.
فصل هشتم: برنامهنویسی ایمن، چالش امنیتی برنامهنویسان و آسیبپذیریهای واقعی در کد را نشان میدهد.
فصل 9: ایرادات برنامهنویسی سطح پایین، خطاهای محاسباتی رایانه و نحوه مدیریت صریح تخصیص حافظه پویا به سبک C را میتواند امنیت را تضعیف کند.
فصل 10: ورودی نامعتبر و فصل 11: امنیت وب، بسیاری از اشکالات متداول را که سالهاست به خوبی شناخته شدهاند اما به نظر نمیرسد از بین میروند (مانند تزریق، پیمایش مسیر، آسیبپذیریهای XSS و CSRF) را پوشش میدهد.
فصل دوازدهم: آزمایش امنیت، تمرینات بسیار کم استفاده شده برای اطمینان از ایمن بودن کد شما را پوشش میدهد.
فصل 13: بهترین شیوههای توسعه ایمن، راهنمای پیادهسازی ایمن را جمعبندی میکند، برخی از بهترین شیوههای کلی را پوشش میدهد و هشدارهای احتیاطی در مورد مشکلات رایج ارائه میدهد.
گزیدههای کد موجود در این بخش از کتاب به طور کلی آسیبپذیریهایی را نشان میدهد که باید از آنها اجتناب شود، و پس از آن نسخههای وصله شدهای که نحوه ایمنسازی کد را نشان میدهد (به ترتیب با برچسب “کد آسیبپذیر” و “کد ثابت”). به این ترتیب، کد اینجا برای استفاده در نرمافزارهای تولیدی کپی نشده است. حتی کد ثابت میتواند در زمینه دیگری به دلیل مسائل دیگر دارای آسیبپذیری باشد، بنابراین نباید هیچ کد ارائه شده در کتاب Designing Secure Software را برای هر برنامه ایمن تضمین کنید.
نتیجه
The Afterword کتاب را به پایان میرساند و روشهایی را توصیف میکند که امیدوارم تأثیر مثبتی داشته باشد. در اینجا من نکات کلیدی ذکر شده در کتاب را خلاصه میکنم، سعی میکنم به آینده نگاه کنم و ایدههای احتمالی را ارائه میدهم که میتواند به ارتقاء امنیت نرمافزار کمک کند، با چشماندازی برای اینکه چگونه کتاب Designing Secure Software میتواند به امنیت بیشتر نرمافزار کمک کند.
ضمائم
ضمیمه A یک نمونه طرح طراحی است که نشان میدهد طراحی امنیت در عمل چگونه به نظر میرسد.
ضمیمه B واژهنامهای از اصطلاحات امنیتی نرمافزار است که در سراسر کتاب Designing Secure Software آمده است.
پیوست C شامل برخی از تمرینات و سوالات باز است که خوانندگان بلندپرواز ممکن است از تحقیق در مورد آنها لذت ببرند.
پیوست D شامل مجموعهای از برگههای تقلب است که مفاهیم و فرآیندهای کلیدی را خلاصه میکند.
علاوه بر این، مجموعهای از منابع به منابع ذکر شده در کتاب را میتوانید در https://designingsecuresoftware.com/ (و از https://nostarch.com/designing-secure-software/ پیوند خورده است) پیدا کنید.
همچنین شما میتوانید برای مطالعهی امنیت سیستمهای رایانهای از کتاب Computer Security نیز استفاده نمائید.
سرفصلهای کتاب Designing Secure Software:
- Foreword
- Preface
- Acknowledgments
- Introduction
- PART I: CONCEPTS
- Chapter 1: Foundations
- Chapter 2: Threats
- Chapter 3: Mitigation
- Chapter 4: Patterns
- Chapter 5: Cryptography
- PART II: DESIGN
- Chapter 6: Secure Design
- Chapter 7: Security Design Reviews
- PART III: IMPLEMENTATION
- Chapter 8: Secure Programming
- Chapter 9: Low-Level Coding Flaws
- Chapter 10: Untrusted Input
- Chapter 11: Web Security
- Chapter 12: Security Testing
- Chapter 13: Secure Development Best Practices
- Afterword
- Appendix A: Sample Design Document
- Appendix B: Glossary
- Appendix C: Exercises
- Appendix D: Cheat Sheets
- Index
فایل کتاب Designing Secure Software را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.