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

۱۲ مرداد ۱۳۹۰ توسط , ۶ نظر

هنگامیکه مشغول جمع آوری نیازمندی ها برای نرم افزارتان هستید ، به طور معمول کاربرد ، کارایی ، ظاهر گرافیکی کاربر ، قابلیت نگهداری و سایر ویژگی ها را در آن لحاظ می کنید ، اما امنیت چطور ؟

امنیت باید از ابتدای ساخت سیستم در آن در نظر گرفته شود و باید قسمتی از مشخصات و نیازمندی های کاربردی سیستم در نظر گرفته شود. امنیت ممکن است یک کشمکش باشد ، مشتریان و مدیران پروژه گاها فکر می کنند امنیت جزئی ذاتی از سیستم است. آنها ممکن است از تاکید بر امنیت طفره روند و آن را به دید فرآیندی که باید به مرور و در طول توسعه نرم افزار تکمیل شود نگاه کنند. واقعیت این است که هرچه توسعه نرم افزار تکمیل تر شود ، اعمال و در نظر گرفتن امنیت پر هزینه تر و زمانبر تر خواهد بود.

بنابراین ، این فرض که نیازی نیست امنیت را به چشم یک نیازمندی در سیستم ببینیم ، یک ریسک بسیار بزرگ است. هنگامیکه امنیت به طور مشخص قسمتی از نیازمندی های یک نرم افزار نباشد ، ممکن است هیچگاه در نظر گرفته نشود. چرخه توسعه امن (Security Development Lifecycle – SDL) که بر یکپارچه سازی امنیت با چرخه توسعه نرم افزار تاکید دارد ، مبتنی بر ۷ گام است:

یک . جمع آوری نیازمندی های امنیتی
دو . امن کردن طراحی
سه . ترکیب کردن مدل های حمله (Incorporate threat modeling)
چهار . انجام بازبینی کد
پنج . انجام آزمون های نفوذ (penetration tests)
شش . امن کردن توزیع نرم افزار
هفت . یکپارچه سازی نظرات در تکرار بعدی چرخه توسعه نرم افزار

در صورت جمع آوری نیازهای امنیتی و در نظر گرفتن امنیت در تمامی گام های فرآیند توسعه نرم افزار ، برطرف کردن مشکلات بالقوه در حین طراحی و توسعه بسیار کم هزینه تر از زمانی خواهد بود که پس از عرضه نرم افزار ، خطایی بروز کند. یکی از سخت ترین جنبه های تولید نرم افزار های امن ، تجزیه و تحلیل کردن خطرات در مقابل برنامه کاربردی و شناسایی قسمت هایی از سیستم است که بالاترین ریسک را نشان می دهند. تمرین مدل سازی تهدید ، از چگونگی حمله به نرم افزار پرده بر می دارد و موجب شناسایی راههای مقابله با حمله و تامین امنیت می شود.

SDL به برنامه نویسان اجازه می دهد تهدید ها را شناسایی و به سرعت اقدامات متقابل لازم را در طول چرخه توسعه نرم افزار انجام دهند و به نوعی انجام اقدامات متقابل جزئی از امکانات برنامه به شمار می آید. برخی از برنامه نویسان از همان ابتدا اقدام به لیست کردن حملات بالقوه به عنوان نقص های نرم افزار می نمایند و آنها را در سیستم های پیگیری باگ (Bug Tracking System) ثبت و تا زمان تعدیل کامل ، آنها را از لیست حذف نمی نمایند. با استفاده از این روش ، تهدیدها هیچگاه فراموش نمی شوند و تا زمانیکه اقدامات متقابل برای حل مشکل آنها توسعه نیافته باشد ، همیشه در دید خواهند بود.

 

انتشارات مایکروسافت (Microsoft Press) سه کتاب منتشر کرده است که می تواند شما را در زمینه درک فرایندی که مایکروسافت از آنها بهره می برد ، یاری دهد :

این کتابها دربردارنده انبوهی از اطلاعات درباره تکنیک های برنامه نویسی امن هستند .

در طول سالها ، بهترین شیوه ها و راههای کدنویسی فرموله ، تست و اشتراک گذاشته شده اند. اصول امنیتی نیز از این قاعده مستثنی نبوده اند.

۶ پاسخ به “امنیت در نرم افزار هایتان را از پایه بنا کنید”

  1. میلاد محمدی ۱۲ مرداد ۱۳۹۰ در ۴:۳۶ ب.ظ #

    مطلب بسیار خوبی بود ، دست شما درد نکنه

  2. arash ۸ شهریور ۱۳۹۰ در ۸:۱۰ ب.ظ #

    با درود به شما
    ممنون از مقالات بسیار مفیدی که در سایت قرار میدهی من در زمینه برنامه نویسی فعالم و ممنون میشم اگر مطالب بیشتر در این زمینه ارائه بدین
    ضمنا من طرحی برای تولید یک مجموعه که شامل نوت بوک و تبلت دارم که میخواهم به یک شرکت معتبر بفروشم ، آیا شما میتوانید در این زمینه به من کمک کنید و طریقه ارتباط با شرکتی مثل سامسونگ را به من بگویید ؟ در مراجعه به سایت سامسونگ به نتیجه نرسیدم همینطور اپل

    • آراد حقی ۱۱ شهریور ۱۳۹۰ در ۶:۳۳ ق.ظ #

      دوست عزیز فکر می کنم تنها راه ارتباطی با این شرکت ها از طریق وب سایت شان باشد ، متاسفانه اطلاعات بیشتری در خصوص چگونگی برقراری این ارتباط ندارم

  3. علی ۱۷ اسفند ۱۳۹۰ در ۱:۴۱ ب.ظ #

    اووومممم ، مطالب جالبی داری ، احتمالا از این به بعد مشتریت شم
    D:
    در ضمن طراحی سایتت هم خیلی قشنگ ( فقط اگه یه زره روشن تر بود دیگه عالی بود )
    ممنون از مطالب عالیت ، ادامه بده

    • آراد حقی ۱۸ اسفند ۱۳۹۰ در ۷:۳۴ ب.ظ #

      مرس علی جان ، امیدوارم مطالب مورد استفاده شما قرار بگیرد

  4. حسین ۳۰ فروردین ۱۳۹۱ در ۸:۰۸ ق.ظ #

    سلام دوست عزیز! میخواستم ببینم برای ارسال مقاله به ژورنال های خارجی معتبر چکار باید بکنم؟؟؟….


پاسخ دهید