بخشی از مقاله
چکیده
بسیاری از تولیدکنندگان نرمافزار در هنگام تولید برنامه تنها به پیادهسازی ویزگیهای کاربردی مورد نیاز در نرمافزار توجه داشته و نسبت به ارزیابی و پیادهسازی امنیت در نرمافزارهای خود بیتوجه اند. این در حالی است که وجود مشکلات امنیتی نرمافزارها خسارات قابل توجهی را متوجه مشتریان و استفاده کنندگان از این نرمافزارها میکند. بنابراین ارزیابی و پیادهسازی امنیت در نرمافزارهای کاربردی از اهمیت ویژهای برخوردار است. در این مقاله به معرفی و مقایسه برخی از چارچوبهای امنیتی مورد استفاده در ارزیابی نرمافزارهای کاربردی خواهیم پرداخت. این چارچوبها در زمان توسعه نرمافزار و یا پس از انتشار آن مورد استفاده قرار میگیرند.
واژههای کلیدی:چارچوب، استاندارد، طراحی و پیاده سازی ، امنیت نرمافزار
مقدمه
امنیت نرمافزار1، شاخصی حیاتی برای تولید نرمافزارهای با کیفیت بالا است که ضمن بالا بردن بهرهوری در تولید نرمافزارها، به ایجاد نرمافزارهای قدرتمند و شکستناپذیر منجر میگردد. به عبارتی، در کنار نیازمندیهای کارکردی2 برای هر نرمافزار، مجموعهای از نیازمندیها و صفات غیر کارکردی3 نیز برای هر نرمافزار متصور است که یکی از مهمترین آنها امنیت است. امنیت علاوه بر اینکه به عنوان یک صفت غیرکارکردی اصولاً برای غالب نرمافزارها لازم است، شاید تامین آن حتی از بسیاری صفات کارکردی آنها نیز مهمتر باشد.حفاظت، پشتیبانی و نگهداری از دادههای رایانهای، اطلاعات مهم، برنامههای حساس، نرمافزارهای مورد نیاز و یا هر آنچه که در حافظه جانبی رایانه مورد توجه بوده و با اهمیت میباشد، امنیت رایانهای نامیده میشود. امنیت نرمافزار وابستگی شدید به چرخه حیات توسعه آن دارد. در صورتی که امنیت در مراحل نیازسنجی، آنالیز، طراحی، پیاده سازی، تست، و راهاندازی نرم افزار در نظر گرفته نشده باشد، به احتمال زیادی دارای آسیب پذیری امنیتی خواهد بود.
چرخه توسعه نرمافزار امن
فعالیتهای امنیتی خود را برای برنامههای کاربردی منطبق بر فازهای چرخه حیات توسعه نرمافزار - 4SDLC - تعیین میکند.[2] متدولوژی SDLC، جهت اطمینان سازی از اینکه سیستمها بر اساس رویکرد منظم، منطقی و گام به گام طراحی و اجرا شده، بنا شده است و فازهای آن عبارتند از:
·تحلیل
·طراحی
·توسعه
·یکپارچهسازی
·تست
·اجرا
مروری بر چارچوبهای استاندارد ارزیابی امنیتی نرمافزاررشد بسیار سریع فناوری اطلاعات و نیاز این فناوری به امنیت، باعث شده موسسات و سازمانهای بسیاری به تدوین استاندارد و خلق روشهای امنسازی نرمافزارها همتگُمارند. هر کدام ار آنها با توجه به تهدیدات پیش رو، هزینههای پیادهسازی، سطوح مورد نیاز امنیت و سایر عوامل مورد نیازشان روشی را ابداع نمودند.
-1-2 دسته بندی چارچوب های موجود
در مطالعات انجام شده، استانداردها و شیوهها به دو دسته کلی مدیریتی و فنّی به شرح زیر قابل تقسیم هستند.
چارچوب های مدیریتی
این قبیل استانداردها یا روشها، به ارائه راهکارهایی جهت مدیریت امنیت در مراکز فناوری اطلاعات و سیستمهای اطلاعاتی میپردازند. از جمله وظایف تعریف شده در اینگونه استانداردها، تهیه و تدوین سیاست امنیتی سازمان، استقرار سیستم مدیریت امنیت، شناسایی داراییهای سازمان و تهدیدات علیه آنها، تحلیل تهدیدات علیه سیستمهای اطلاعاتی، امکان سنجی و انتخاب ابزارهای لازم جهت رفع تهدیدات، نظارت بر جریان اطلاعات و نگهداری امنیت ایجاد شده، آموزش و فرهنگ سازی و همچنین تدوین قوانین لازم در سازمان جهت پیاده سازی سیاست امنیتی است. استانداردهای BS-7799، BS17799 و ISO 27001 ز این قبیل استانداردها هستند. این دسته استانداردها به ارائه پیشنهادهایی برای حوزه مدیریتی میپردازند که کمتر مورد توجه گزارش پیشرو میباشد.اهمیت و جایگاه شناخته شدهتری برخودار هستند، مورد بررسی و ارزیابی قرار خواهد گرفت.
موسسه امریکایی 6NSA و مرکز ملی امنیت رایانه - NCSC 7 - در سال 1983 استانداردی بنام 8TCSEC یا کتاب نارنجی 9 تدوین کرد که در سال 1990 یک استاندارد اروپایی بنام 10ITSEC نیز از روی آن تهیه شد. بعدها TCsec با CC جایگزین شد و در سال 2005 منتشر شد.معیار ارزیابی سیستم کامپیوتری مورد اطمینان که به اختصار با عنوان TCSEC شناخته میشود، استاندارد وزارت دفاع دولت ایالات متحده آمریکا 11 - DoD - است که شامل مجموعه ای از کنترلهای پایه، جهت ارزیابی میزان اثربخشی کنترلهای امنیتی انجام شده بر روی سیستم رایانهای است. استاندارد TCSEC برای ارزیابی، طبقهبندی و انتخاب سیستمهای رایانهای که وظیفه پردازش، ذخیره و بازیابی اطلاعات حساس و یا طبقهبندی شده را بر عهده دارند، استفاده میشود.این استاندارد بعنوان ابزاری برای سنجش میزان امنیت سیستمهای نرم-افزاری بکار میرود، دارای چهار سطح D تا A میباشد. سطح D نشانگر کمترین امنیت و A نشانگر بیشترین امنیت میباشد. جدول 1 مشخصات دقیقتر این طبقهبندیها را نشان میدهد.
چارچوبهای فنّی
اینگونه استانداردها یا روشها به چگونگی پیادهسازی و بکارگیری روشهای مختلف جهت ایمن سازی سیستمهای اطلاعاتی مانند شبکه، سیستم عامل، پایگاههای اطلاعاتی و نرم افزارهای کاربردی و نظایر آن میپردازند. به عنوان نمونه میتوان استانداردهای CC، TCSEC، ITSEC و Microsoft SDL را نام برد. در ادامه تعدادی از این استانداردها که ازسطوح ارزیابی در این چارچوب - کتاب نارنجی وزارت دفاع آمریکا - عبارتند از چهار سطح به قرار ذیل:
•سطح Minimal Security :Dاین سطح شامل حداقل محافظت میباشد که سیستم نتوانسته الزامات امنیتی سطوح بالاتر را تامین نماید.
•سطح Discretionary Protection :Cدر سطح محافظت اختیاری، دو زیرسطح به قرار زیر تعریف میشوند:
•سطح :C1 محافظت امنیتی محتاطانه12شامل مکانیزمهای زیر است: شناسایی و احراز هویت کاربر، تفکیک کاربران و دادهها، کنترل دسترسی مدل DACبا امکان اِعمال محدودیت دسترسی برای هر فرد، مستندسازی و راهنمای کاربران حسب نیاز.
•سطح :C2 محافظت دسترسی کنترل شده13شامل کنترل دسترسی DAC با دانهبندی دُرشتتر، حسابرسی هر فرد از طریق فرآیند ورود به سیستم، رویدادنگاری، استفادهی مجدد از اشیاء، انزوای منابع میباشد.
•سطح Mandatory Protection :Bدر سطح محافظت اجباری، سه زیرسطح به قرار زیر تعریف میشوند:
•سطح :B1 محافظت امنیتی برچسبگذاریشده14شامل بیان غیرصوری از مدل خطمشیء امنیتی، برچسب حساسیت دادهها، کنترل دسترسی از مدل MAC روی نهادها و اشیاء منتخب، قابلیت export کردن برچسبها، تشریح و درستییابی طراحی.
•سطح :B2 محافظت ساختیافته15شامل تعریف شفاف مدل خطمشیء امنیتی و مستندسازی صوری آن، اِعمالِ DAC و MAC روی تمام نهادها و اشیاء، تحلیل کانالهای پنهان رسانهی ذخیرهسازی، ساختیافته براساس المانهای حساس به محافظت و غیرحساس به محافظت، مکانیزمهای احرازهویت توسعهیافته، امکانات و قابلیتهای مدیریتی و راهبری مورد اعتماد، و کنترلهای مدیریتپیکربندی سفتوسخت.
•سطح :B3 دامنههای امنیتی شامل نیازمندیهای reference monitor، مهندسی سیستم با هدف به حداقل رساندن پیچیدگیها، تعریف نقش راهبر امنیتی، رویدادنگاری همه وقایع مرتبط با امنیت، انجامِ تشخیص، اطلاعرسانی، و پاسخگویی در مقابل حملات به طور خودکار، روالهای مورداعتماد برای ترمیم خرابی سیستم، و تحلیل کانالهای پنهان زمانی میباشد.
•سطح Verified Protection :Aسطح محافظت درستییابیشده نیز شامل زیرسطحی به نام طراحیِ درستییابی شده است.
•سطح :A1 طراحی درستییابی شدهداز نظر کارکرد، معادل با سطح B3 است اما تشریح صوری سطح بالای طراحی و درستییابی صوری به همراه روالهای مدیریت و توزیع صوری در آن به کار برده میشود.
-1-3 مزایا
این چارچوب به درجهبندی امنیتی محصولات میپردازد که هر درجه نیازمندیهای کاربردی و تضمینی خاصی را مشخص میکند. بنابراین هر درجه، سطح امنیتی هر محصول را مشخص میکند که میتواند به عنوان یک معیار مناسب جهت مقایسه امنیت محصولات به کار رود.
-2-3 معایب
TCSEC در ابتدا برای ارزیابی سیستمهای عامل طراحی شده بود و مشکلاتی برای ارزیابی بانکهای داده، نرمافزارهای شبکه و کارتهای هوشمند وجود داشت.مشکل دیگر این روش هزینه زیاد زمانی، مالی و پردازشی این روش است.
در سال 1390 میلادی کشورهای انگلیس، فرانسه و آلمان بر اساس معیار ارزیابی امنیتی TCSEC، معیاری برای ارزیابی امنیتی محصولات فناوری ارائه نمودند. پس از بررسیهای فراوانی که توسط مجامع بینالمللی بر روی معیار ارزیابی مذکور صورت گرفت، نسخه 1,2 این معیار توسط اتحادیه کشورهای اروپایی برای بکارگیری عملی در زمینه ارزیابی امنیتی محصولات فناوری اطلاعات تهیه و به دنیا ارائه شد. این استاندارد که در حقیقت تکمیل شده و توسعه یافته استاندارد TCSEC میباشد، دارای 6 کلاس ارزیابی به شرح زیر است:
•سطح :E1
در این سطح، هدف امنیتی و طراحی معماری غیر رسمی باید فراهم شوند. براساس مستندات کاربر/سرو، میتوان محصول مورد نظر را از دید امنیتی مورد ارزیابی قرار داد. توابعی که باید برای امنیت اجرا شوند، توسط توسعهدهندگان یا ارزیابها تست و بررسی میشوند.
•سطح :E2
در این سطح، مستندات غیر رسمی طراحی محصول با جزئیات طراحی باید فراهم شوند. با استفاده از معماری محصول میتوان مؤلفهها و اجزای آن را به دو دسته امنیتی و غیر امنیتی تقسیم کرد. برای یافتن خطاهای محصول، تست و بررسیهای نفوذ بر روی آن انجام شده، پیکربندی کنترل شده و امنیت ارزیابی میشود.
•سطح :E3
در این سطح، کد منبع یا نقشه سختافزار محصول باید فراهم شوند. بین کد منبع و جزئیات طراحی باید تناظر و تطابق وجود داشته باشد. در این مرحله رویههایی برای تأیید محصول مورد استفاده قرار میگیرد. زبانهای