ارزیابی برنامه ها

تفاوت بین انواع ارزیابی های امنیتی نرم افزارها

تفاوت بین انواع ارزیابی های امنیتی نرم افزارها
در این مقاله انواع مختلف ارزیابی های امنیتی توضیح داده خواهد شد. ارزیابی هایی که گروههای حرفه ای برنامه نویس و توسعه دهندگان را از امنیت محصولات و کدهای خود مطمئن می سازند.

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

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

 

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

 

ارزیابی امنیتی معمولا با کسب اطمینان از اینکه برنامه شامل ویژگیهای زیر است شروع می شود :
– تشخیص هویت : Authentication
– مجوز : Authorization
– محرمانگی : Confidentiality
– دسترسی : Availability
– یکپارچگی : Integrity
– عدم ؟؟؟ : Non-repudiation
– انعطاف پذیری : Resilience

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

 

چه سرویسهایی می تواند یک سازمان را در رسیدن به اهداف امنیتی کمک کند؟

 

ارزیابی ریسک معماری
هر بخش از توسعه نرم افزار با معماری آن آغاز می شود. ارزیابی ریسک باید بر روی معماری انجام گیرد تا اطمینان حاصل شود که امنیت از همان ابتدا درنظر گرفته شده است. در اینجا سه استراتژی برای تأمین امنیت اولیه وجود دارد:
۱- مدل سازی تهدید (Threat Modeling) : که تعیین کننده اجزای اصلی نرم افزار، تهدیدات، کنترلهای امنیتی، دارایی ها و مزرهای اعتماد می باشد. همچنین سطوح حمله را توصیف می کند. تحلیلگران در این مدل موارد زیر را شناسایی می کنند :
– طراحی که الگوهای طراحی امن را نقض می کند
– سیستمی که کنترلهای امنیتی را از بین می برد
– کنترلهای امنیتی که از تصحیح اشتباه ، ضعف و یا سوء استفاده رنج می برند.

۲- تجزیه و تحلیل ریسک معماری (Architecture risk analysis (ARA)) : یک بررسی کامل از طراحی نرم افزار را با استفاده از تحلیلهای زیر می دهد :
– تجزیه و تحلیل مقاومت در برابر حمله
– تجزیه و تحلیل چارچوب اصلی
– تجزیه و تحلیل دو بعدی
تجزیه و تحلیل ریسک معماری همچنین اغلب شامل بررسی نقص معماری از طریق تجزیه و تحلیل کد منبع و یا آزمون نفوذ می باشد.

۳- بررسی معماری امنیتی (security architecture survey (SAS)) : در این بررسی طراحی برنامه و توسعه آن مورد ارزیابی قرار می گیرند تا مشخص شوند با بهترین شیوه های عملی و اجرایی مطابقت دارند یا خیر؟ نتایج آن اغلب برای اهداف انطباق و یا هدایت فعالیتهای امنیتی دیگر به کار گرفته می شوند. هدف از این بررسی شناسایی معایب معمول معماری و طراحی می باشد.

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

بر اساس نوع برنامه، سازمان ها همچنین می توانند از گزینه های آزمون نفوذ دستی استفاده کنند. هر کدام شامل سمت کلاینت و سمت سرور می باشد. این ارزیابی ها می توانند به صورت جعبه سفید (white box)(همراه با کد برنامه)، جعبه سیاه (block box)(تست بدون دسترسی به کد برنامه) یا جعبه خاکستری (gray box)(با برخی از اطلاعات مانند فایل های پیکربندی – اما بدون دسترسی کامل به کد منبع) انجام شوند. علاوه بر این، مدت زمان و عمق تجزیه و تحلیل را می توان مورد به مورد براساس موارد زیر مشخص کرد:
۱- آزمون نفوذ امنیتی وب سایت
۲- آزمون نفوذ برنامه موبایل
۳- تست نفوذ برنامه دسک تاپ

 

ارزیابی امنیتی زیرساخت

زیرساخت اغلب به عنوان یکی از مهمترین جنبه های حفظ امنیت نرم افزار شناخته می شود. ارزیابی امنیتی زیرساخت شبکه و حفاظت تجهیزات شبکه یک سازمان از روشهای زیر مورد ارزیابی قرار می گیرند :
۱- تست نفوذ امنیتی شبکه
۲- تست نفوذ شبکه بی سیم
۳- ایجاد ایمنی با بازبینی تنظیمات
۴- امنیت سازمانی