بخشی از مقاله
چکیده
تا کنون روشهای متعددی برای ارزیابی امنیتی نرمافزارها اعم از روشهای مبتنی بر چکلیستهای امنیتی یا روشهای مبتنی بر مدل-سازی تهدید ارائه شده است. روشهای ارزیابی موجود هر کدام نقصها و مزایای خود را دارند. انتخاب یک چارچوب واحد برای ارزیابی تمام نرمافزارها، با توجه به نیازهای مختلف در یک فرآیند ارزیابی مشکل است. در این مقاله ضمن مرور روشها و استانداردهای مطرح شده در ارزیابی امنیتی نرمافزار، پارامترهای مختلفی برای تحلیل و مقایسه این روشها نیز ارائه شده است.
این پارامترها اجازه میدهد تا روش مناسب برای ارزیابی را با توجه به هدف و شرایط موجود، انتخاب کرد و یا ایجاد نمود. پارامترهای ارائه شده در قالب چهار دستهی هدف مورد ارزیابی ، قابلیتها و ویژگیهای ارزیابی، هدف امنیتی مورد نظر و هزینهی ارزیابی دسته بندی شدهاند. نتایج این تحقیق نشان میدهد که میتوان روش ارزیابی مورد نظر را بر اساس ویژگیهای مورد انتظار از ارزیابی امنیتی نرمافزار انتخاب نموده و بکار بست.
امنیت نرم افزار، ارزیابی امنیتی ، پارامترهای ارزیابی، چکلیست، استاندارد میشود، همیشه چالشی در انتخاب روش صحیح ارزیابی امنیتی بوده است. -1 مقدمه علاوه بر این، شرایط موجود برای بهرهبرداران سامانههای نرمافزاری و یا تولیدکنندگان نرمافزارها، اعم از شرایط فنی، زمانی، و مالی حاکم بر فرایند ارزیابی، مساله ی انتخاب روش مناسب ارزیابی امنیتی نرمافزار را دشوارتر مینماید. در این مقاله با بررسی روشهای ارزیابی امنیت نرم افزار، پارامترهایی را ارائه میدهیم که میتواند جهت تحلیل و ارزیابی روشهای ارزیابی امنیتی نرمافزار استفاده شوند. این پارامترها، روشهای ارزیابی را از جنبهی هدف مورد ارزیابی، قابلیتها و ویژگیهای ارزیابی، هدف امنیتی مورد ارزیابی، و هزینهی ارزیابی مورد تحلیل و مقایسه قرار میدهند.
ساختار مقاله بدین صورت است: در بخش دوم ، توصیف پارامترهای ارزیابی و مقایسه روشهای ارزیابی بیان شده است. بخش سوم به معرفی برخی از روشهای ارزیابی امنیتی نرمافزار با ذکر پارهای از خصوصیات، معایب و مزایای آنها پرداخته است. بخش چهارم روشهای ارزیابی مطرح شده را با پارامترهای مقایسه در جدول بررسی و تحلیل میکند. این مقاله در بخش پنجم جمعبندی و نتیجهگیری میشود.
-2 پارامترهای مقایسه
بررسی روشهای مختلف ارائه شده برای ارزیابی امنیتی نرمافزار و ویژگیهای حاکم بر آنها از یک سو و نیازمندیهای تولیدکنندگان و سازمانهای بهرهبردار سامانههای نرم افزاری از سوی دیگر نشاندهنده مجموعه پارامترهایی است که میتواند مبنای مقایسه و تحلیل روشهای ارزیابی امنیتی نرمافزار قرار گیرد. پارامترهای شناسایی شده شامل هدف مورد ارزیابی، قابلیتها و ویژگیهای ارزیابی، هدف امنیتی مورد ارزیابی و هزینه ی ارزیابی میباشند. این پارامترها در زیربخشهای آتی معرفی و توصیف شده اند.
-1-2 هدف مورد ارزیابی
هدف مورد ارزیابی نشاندهندهی میزان پوششدهی ارزیابی است. به عبارت دیگر، دامنه و سطح ارزیابی را نشان میدهد . بررسیهای انجام گرفته نشان میدهد که ارزیابی امنیتی نرمافزار میتواند ناظر به سه سطح - 1 محصول تولید شده، - 2 فرایندهای ایجاد کنندهی محصول نرمافزاری، و - 3 سازمان پشتیبان/مجری فرایندهای ایجاد نرم افزار باشد که فرایندهای ایجاد نرم افزار را تولید و مدیریت میکنند.
الف - محصول: محصول را "هر دستاورد قابل تحویل یا اسناد ناشی از فعالیتهای یک فرآیند" تعریف میکنیم .[1] نمونههایی از محصولات مانند سند مشخصات نیازمندی نرمافزار،کد منبع نرمافزار و محصول نهایی نرمافزار است. برای مثال روش [2] CC متمرکز بر ارزیابی محصول و معیار مناسبی برای مشتریان جهت ارزیابی محصول میباشد و سبب تفهیم بهتر نیازمندی-های مشتری به تولید کنندگان میشود.
ب - فرایند ایجاد محصول - چرخه حیات تولید محصول - : ارزیابی امنیتی ناظر بر فرایند، به چگونگی تولید محصول اشاره دارد. برای گرفتن بهترین نتیجه در ارزیابی امنیت نرمافزار بهتر است کنترلهای امنیتی تمام فازهای چرخه حیات نرمافزار را پوشش دهند.
· در فاز برنامهریزی، محصول یا خدماتی که قرار است از لحاظ امنیتی مورد ارزیابی قرار گیرد مشخص می شود.
· فاز تعیین نیازمندیها بهترین زمان برای تیم ایجاد نرمافزاراست تا مسائل بنیادی امنیت را در نظر گرفته و به تجزیه و تحلیل اینکه چگونه این الزامات را متناسب با نیازهای کسب و کار و مقرون بصرفه انجام دهند، بپردازد. در این فاز میتوان کنترلهای ارزیابی مخاطرات را درنظر گرفت. ارزیابی مخاطرات در واقع فرآیند شناسایی مشکلاتی است که هنوز رخ نداده است. مخاطرات با بررسی احتمال تهدید و آسیبپذیری و با در نظر گرفتن پتانسیل شدت حادثه ناخواسته ارزیابی میشود. برای مثال حوزهی فرآیندهای SSE-CMM شامل فعالیتهایی برای تجزیه و تحلیل تهدیدات، شدت آنها و مخاطرات مرتبط با آنها است.
· فاز طراحی، یک مرحله حیاتی برای اعمال بهترین شیوهها در طراحی و مشخصات کارکردی نرمافزار است. در این مرحله می-توان مدلسازی تهدید را انجام داد. این کنترل سبب میشود تا معماران نرمافزار نقصهای امنیتی را زودتر شناسایی کنند و این امر سبب آسانتر شدن اصلاحات آن میشود و کمک می کند تا کل هزینه توسعه کاهش یابد.
· در فاز پیاده سازی، کنترلهای مرتبط با برنامه نویسی امن قرار دارد. کنترلهای مربوط به تحلیل کد منبع جهت اطمینان از شناسایی و تصحیح اشکالهای امنیتی در کد نرمافزار در این فاز قرار میگیرد.
· در فاز آزمون، کنترلهای مرتبط با تضمین و اطمینان از صحت عملیات انجام شده قرار دارد. برای مثال تمام کنترلهای آزمون و و تحلیل آسیبپذیری در این فاز قرار میگیرد
· در فاز نگهداری بیشتر تمرکز بر بازخورد عمومی نرم افزار از لحاظ امنیتی است تا بتوان در صورت وقوع حادثه، وصله و اقدامات اصلاحی مناسب انجام داد.
پ - سازمان پشتیبان فرایند ایجاد نرم افزار: برخی از روشهای ارزیابی نرمافزار، کنترلهایی جهت امنسازی سازمان و شرکتهای فعال در حوزهی نرمافزار را نیز ارائه میدهند. اینگونه روشها سطح بلوغ سازمان را از منظر فعالیتها و شیوههای امنیتی مورد ارزیابی قرار میدهند. دیدگاه اینگونه ارزیابی بر این مساله استوار هستند که سازمانهای با سطح بلوغ بالا در امنیت اطلاعات میتوانند فرایندهای امنی را ایجاد کرده که خود منجر به محصول امن نیز میگردد. کنترلهای اریابیز در این بخش عمدتاً شامل مدیریت، پرسنل، محیط فیزیکی و خطمشی سازمانی هستند:
· مدیریت: هریک از نقشهای سازمانی مربوط به امنیت و مسئولیت مرتبط با آن را مشخص میکند. در حقیقت بر اساس ساختار سازمانی اعضای مرتبط با امنیت شناسایی و نقش آنها تعیین میشود. مدیریت همچنین باید بر بازنگری دورهای خدمات امنیتی و مکانیزمهای کنترلی آنها نظارت موثر کند. این بخش به تضمین اینکه سطح امنیتی طی زمان تغییر نمیکند، کمک خواهد کرد.
· بررسی نیروی انسانی: این حوزه به ارزیابی و حالت مناسب از دانش و مهارت کارکنان میپردازد. هدف اصلی این قسمت ارتقای سطح مهارت و آموزش نیروی کاردان و تصحیح کنندهی اشتباهات امنیتی است.
· محیط فیزیکی: در این حوزه باید کنترلهایی جهت پیشگیری از دسترسی فیزیکی غیر مجاز، خسارت و تعارض به اطلاعات سازمان ارزیابی شوند.
· خطمشی سازمانی: این حوزه، جهتگیری و حمایت مدیریت برای امنیت اطلاعات با توجه به الزامات کسبوکار، قوانین و آییننامههای مرتبط را فراهم میکند.
-2-2 قابلیتها و ویژگیهای افزونه ارزیابی
این قابلیتها را میتوان به عنوان ویژگیهای تکمیلی و مضاعف در نظر گرفت که در برخی از روشهای موجود ارزیابی نرم افزار وجود دارد. داشتن این خاصیتها جزو مزایای روش ارزیابی محسوب میشود.
الف - قابلیت استفاده مجدد: قابلیت استفاده مجدد به معنای استفاده از اسناد فنی موجود و آزمونها برای ارزیابیهای آتی است. بنابراین سبب کاهش تلاش ارزیاب برای بدست آوردن نیازمندیها در ارزیابیهای آتی میشود. مانند استاندارد CC که بدلیل داشتن کلاسACO6 دارای قابلیت استفاده مجدد است میتواند از ترکیب نتایج ارزیابی استفاده کند.
ب - تضمین امنیت: تضمین امنیت در واقع مجموعه فعالیتهای برنامه-ریزی شده و روشمند است که تضمین میکند که فعالیتهای فرآیند نرم-افزار و محصول سازگار با الزامات و استانداردها باشد. همچنین نشان میدهد توابع نرمافزار عاری از آسیبپذیری عمدی یا ناخواسته است. مانند استاندارد CC که دارای هشت کلاس تضمین امنیت میباشد.
پ - گواهینامه امنیتی: گواهینامه امنیتی، براساس سطح تضمین امنیت از جانب شخص سوم صادر میشود و این اطمینان را میدهد که نرمافزار در سطح قابل قبولی از امنیت قرار دارد. به عنوان مثال CC گواهینامه امنیتی صادر میکند.
ت - قابلیت اندازهگیری: این قابلیت سبب رتبه بندی نرمافزار برای تامین امنیت میشود و امکان مقایسه نرمافزارها بر اساس یک سنجهی تعریفشده از امنیت را فراهم میآورد. مانند SSE-CMM سطح بلوغ مشخص میکند.
ث - مقبولیت روش ارزیابی: برای بررسی مقبولیت روش ارزیابی باید سابقهی استفاده از روش ارزیابی، تعداد نسخ روش ارزیابی مورد نظر و اینکه چه تعداد شرکتهای مطرح از این روش استفاده کردند و تا کنون چه تعداد گواهی نامه صادر شده است را درنظر بگیریم. هرچند که مقبولیت روش ارزیابی خود میتواند حاصل از سایر ویژگیهای یک روش ارزیابی باشد، اما به دلیل اهمیت آن، به ویژه از منظر تولیدکنندگان یا بهرهبرداران سامانه های نرمافزاری، به عنوان یک پارامتر جداگانه معرفی شده است. مانند روش BSIMM که توسط شرکت های بزرگ و مطرح در حوزهی نرمافزار استفاده شده است. تعداد گواهینامههای صادر شده توسط استاندارد CC در مقایسه با دیگر روشهای ارزیابی،نشان از مقبولیت این استاندارد است.
-3-2 هدف امنیتی
اهداف امنیتی به حفاظت از محرمانگی، صحت و دسترسپذیری اطلاعات برمیگردد. روش ارزیابی میتواند کنترلهایی را جهت برآورده کردن هر یک از این اهداف امنیتی داشته باشد.
الف - محرمانگی: روش ارزیابی شامل کنترلهای جهت حفظ محرمانگی اطلاعات ذخیره شده، در حال مبادله، و در حال پردازش است. روش OWASP دارای کنترل های ناظر بر محرمانگی است.
ب - صحت: روش ارزیابی شامل کنترلهایی جهت بررسی صحت اطلاعات ذخیره شده، در حال مبادله، و در حال پردازش است. CC شامل چنین کنترلهایی است.
پ - دسترسپذیری: روش ارزیابی شامل کنترلهایی جهت بررسی دسترسی کاربران مجاز به سیستم است.
-4-2 هزینه ارزیابی
هزینهی ارزیابی که یکی از پارامترهای مهم از دیدگاه متقاضیان ارزیابی امنیتی است، عمدتا بر اساس زمان مورد نیاز و نیروی انسانی متخصص برای ارزیابی بدست میآید. هزینه نیروی انسانی متخصص نیز به سطح خبرگی مورد نیاز ارزیاب برای دنبال کردن روش ارزیابی مورد استفاده وابسته است. از این رو می توان گفت که هزینهی ارزیابی نرمافزار وابسته به متدولوژی انتخابی، دامنهی ارزیابی و منابع مورد درخواست است. روشهای ارزیابی مختلف با توجه به وسعت دامنه ارزیابی، از منابع گوناگونی استفاده میکنند. این منابع میتواند به منابع انسانی و یا اسناد فنی تقسیم شود. در بررسی منابع انسانی باید افراد درگیر در ارزیابی، خبرگی ارزیابها و زمان آموزش ارزیاب را در نظر گرفت. هرچقدر در فرآیند ارزیابی از منابع بیشتری استفاده شود به تبع آن هزینهی بیشتری نیز مصرف میشود.
هزینه با توجه به نوع محصول نیز میتواند متفاوت باشد. در روشهای ارزیابی که قابلیت استفاده مجدد دارند، هزینه خانواده محصول یا محصولاتی که میتوانند از ترکیب مولفههای نرمافزاری قبلاً تائید شده استفاده کنند، مقرون بهصرفهتر هستند. زیرا توابع امنیتی ارزیابی شده و مکانیزمهایی که مربوط به پلتفرم ارزیابی شده هستند میتوانند بر اساس متدولوژی ارزیابی نیازی به ارزیابی مجدد نداشته باشند.
-3 تحلیل و ارزیابی روشهای ارزیابی امنیتی نرمافزار
با توجه به تنوع موجود در روشهای ارزیابی امنیتی نرمافزار، در این بخش روشهایی که رویکردهای متفاوتی در ارزیابی امنیتی نرمافزار دارند معرفی شده و بر اساس پارامترهای بخش قبل، مورد بررسی قرار میگیرند. - CC - Common Criteria -1-3 موسسه استانداردهای بین المللی ISO در ابتدای دهه 90 میلادی کار خود را برای تدوین استانداردهای ارزیابی امنیت در بازار صنعت فناوری اطلاعات شروع کرد که نتیجه آن تولید ISO 15408 بود. امروزه CC که همان ISO 15408 است یکی از معروفترین استانداردهای ارزیابی امنیت است.