امنیت نرم افزار

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

مرحله یک

تعیین کردن اهداف امنیتی
مشخص کردن زمینه ها و باید ها و نبایدهای وابسته به :
جلوگیری از دسترسی های غیر مجاز
جلوگیری از تغییر غیر مجاز داده ها
فراهم کردن سرویس ها حتی در حضور حمله

مرحله دو

ساخت نمایی اولیه از برنامه
مشخص کردن کارکردها و ویژگی های برنامه به صورت کلی
توجه به تکراری بودن فرآیند مدل سازی تهدیدها
عدم توقف در انجام هر مرحله
تعیین هر چه بیشتر جزئیات در صورت ممکن و در سریعترین زمان

مرحله سه

تجزیه قسمت های برنامه
مشخص کردن موارد زیر برای تشخیص بیشتر نقاط آسیب پذیر :
تعیین مرزهای تغییر سطح اطمینان
تعیین جریان های داده
تعیین نقاط ورود و خروج داده

مرحله چهار

تعیین تهدیدها
مشخص کردن تهدیدها و حمله های محتمل در برنامه
استفاده از افراد متخصص در زمینه امنیت برای لیست کردن تهدیدها
شروع با تهدیدها و حمله های شناخته شده
تعیین مواردی که قابل اعمال در برنامه هستند
تشخیص Misuse و Abuse Case کاربردهای بی مصرف برای حذف آنها.

مرحله پنج

تعیین آسیب های برنامه
مرور برنامه برای تعیین صریح آسیب پذیری ها
استفاده از تهدیدهای لیست شده در مراحل قبلی برای شناخت هر چه بیشتر آسیب پذیری های برنامه

در آخر

پس از شناسایی کامل تهدیدها بر طبق روند توضیح داده شده به پوشش دادن ایمنی آنها با استفاده از الگوهای امن در معماری نرم افزار میپردازیم همانند:
جدا کردن مولفه ها با توجه به حق دسترسی ( privilege separation )
تلاش برای کم کردن قسمتی از کد که با حق دسترسی سطح بالا اجرا می شود.
قابلیت استفاده از این الگو در صورتی که برنامه شامل عملکردهای متفاوتی باشد که بدون حق دسترسی سطح بالا اجرا شوند.
فهرست