امنیت در نرم افزار هایتان را از پایه بنا کنید

هنگامیکه مشغول جمع آوری نیازمندی ها برای نرم افزارتان هستید ، به طور معمول کاربرد ، کارایی ، ظاهر گرافیکی کاربر ، قابلیت نگهداری و سایر ویژگی ها را در آن لحاظ می کنید ، اما امنیت چطور ؟
امنیت باید از ابتدای ساخت سیستم در آن در نظر گرفته شود و باید قسمتی از مشخصات و نیازمندی های کاربردی سیستم در نظر گرفته شود. امنیت ممکن است یک کشمکش باشد ، مشتریان و مدیران پروژه گاها فکر می کنند امنیت جزئی ذاتی از سیستم است. آنها ممکن است از تاکید بر امنیت طفره روند و آن را به دید فرآیندی که باید به مرور و در طول توسعه نرم افزار تکمیل شود نگاه کنند. واقعیت این است که هرچه توسعه نرم افزار تکمیل تر شود ، اعمال و در نظر گرفتن امنیت پر هزینه تر و زمانبر تر خواهد بود.
بنابراین ، این فرض که نیازی نیست امنیت را به چشم یک نیازمندی در سیستم ببینیم ، یک ریسک بسیار بزرگ است. هنگامیکه امنیت به طور مشخص قسمتی از نیازمندی های یک نرم افزار نباشد ، ممکن است هیچگاه در نظر گرفته نشود. چرخه توسعه امن (Security Development Lifecycle – SDL) که بر یکپارچه سازی امنیت با چرخه توسعه نرم افزار تاکید دارد ، مبتنی بر ۷ گام است:
یک . جمع آوری نیازمندی های امنیتی
دو . امن کردن طراحی
سه . ترکیب کردن مدل های حمله (Incorporate threat modeling)
چهار . انجام بازبینی کد
پنج . انجام آزمون های نفوذ (penetration tests)
شش . امن کردن توزیع نرم افزار
هفت . یکپارچه سازی نظرات در تکرار بعدی چرخه توسعه نرم افزار
در صورت جمع آوری نیازهای امنیتی و در نظر گرفتن امنیت در تمامی گام های فرآیند توسعه نرم افزار ، برطرف کردن مشکلات بالقوه در حین طراحی و توسعه بسیار کم هزینه تر از زمانی خواهد بود که پس از عرضه نرم افزار ، خطایی بروز کند. یکی از سخت ترین جنبه های تولید نرم افزار های امن ، تجزیه و تحلیل کردن خطرات در مقابل برنامه کاربردی و شناسایی قسمت هایی از سیستم است که بالاترین ریسک را نشان می دهند. تمرین مدل سازی تهدید ، از چگونگی حمله به نرم افزار پرده بر می دارد و موجب شناسایی راههای مقابله با حمله و تامین امنیت می شود.
SDL به برنامه نویسان اجازه می دهد تهدید ها را شناسایی و به سرعت اقدامات متقابل لازم را در طول چرخه توسعه نرم افزار انجام دهند و به نوعی انجام اقدامات متقابل جزئی از امکانات برنامه به شمار می آید. برخی از برنامه نویسان از همان ابتدا اقدام به لیست کردن حملات بالقوه به عنوان نقص های نرم افزار می نمایند و آنها را در سیستم های پیگیری باگ (Bug Tracking System) ثبت و تا زمان تعدیل کامل ، آنها را از لیست حذف نمی نمایند. با استفاده از این روش ، تهدیدها هیچگاه فراموش نمی شوند و تا زمانیکه اقدامات متقابل برای حل مشکل آنها توسعه نیافته باشد ، همیشه در دید خواهند بود.
انتشارات مایکروسافت (Microsoft Press) سه کتاب منتشر کرده است که می تواند شما را در زمینه درک فرایندی که مایکروسافت از آنها بهره می برد ، یاری دهد :
- Writing Secure Code, Second Edition by Michael Howard and David LeBlanc (Redmond, WA: Microsoft Press, 2002)
- The Security Development Lifecycle by Michael Howard and Steve Lipner (Redmond, WA: Microsoft Press, 2006)
- Threat Modeling by Frank Swiderski and Window Snyder (Redmond, WA: Microsoft Press, 2004)
این کتابها دربردارنده انبوهی از اطلاعات درباره تکنیک های برنامه نویسی امن هستند .
در طول سالها ، بهترین شیوه ها و راههای کدنویسی فرموله ، تست و اشتراک گذاشته شده اند. اصول امنیتی نیز از این قاعده مستثنی نبوده اند.


مطلب بسیار خوبی بود ، دست شما درد نکنه
با درود به شما
ممنون از مقالات بسیار مفیدی که در سایت قرار میدهی من در زمینه برنامه نویسی فعالم و ممنون میشم اگر مطالب بیشتر در این زمینه ارائه بدین
ضمنا من طرحی برای تولید یک مجموعه که شامل نوت بوک و تبلت دارم که میخواهم به یک شرکت معتبر بفروشم ، آیا شما میتوانید در این زمینه به من کمک کنید و طریقه ارتباط با شرکتی مثل سامسونگ را به من بگویید ؟ در مراجعه به سایت سامسونگ به نتیجه نرسیدم همینطور اپل
دوست عزیز فکر می کنم تنها راه ارتباطی با این شرکت ها از طریق وب سایت شان باشد ، متاسفانه اطلاعات بیشتری در خصوص چگونگی برقراری این ارتباط ندارم
اووومممم ، مطالب جالبی داری ، احتمالا از این به بعد مشتریت شم
D:
در ضمن طراحی سایتت هم خیلی قشنگ ( فقط اگه یه زره روشن تر بود دیگه عالی بود )
ممنون از مطالب عالیت ، ادامه بده
مرس علی جان ، امیدوارم مطالب مورد استفاده شما قرار بگیرد
سلام دوست عزیز! میخواستم ببینم برای ارسال مقاله به ژورنال های خارجی معتبر چکار باید بکنم؟؟؟….