بخشی از مقاله
چکیده
رویکردهای مختلفی برای ارزیابی و اندازهگیری امنیت نرمافزار وجود دارد. تجربهی نگارنده نشان میدهد دارد که برای هدایت تولیدکننده به سمت رسیدن به امنیت مورد نظر بهرهبردار، ارزیاب یا مرجع صدور گواهی بایستی سه مورد زیر را مدنظر داشته باشد: - 1 تمرکز بر راهحل در ارایه عدم انطباقها، - 2 در نظر گرفتن شرایط تولیدکننده - مانند هزینه، زمان، فناوری تولید - و ارایه عدم انطباقهای بهینه با توجه به همپوشانی کنترلها. - 3 در نظر گرفتن امنیت از دید بهرهبردار از طریق روشهایی مانند مدلسازی تهدید.با این نگاه و بر اساس تجربیات چندساله ارزیابی نرمافزار، در این مقاله روشی معرفی شده است که در آن، پس از شناخت و ارزیابی نرمافزار، بر اساس تعامل ارزیاب، تولیدکننده و بهرهبردار، مدلی از نرمافزار بدست میآید. این مدل شامل کنترلها تهدیدات و رابطهی متقابل بین آنهاست. بر اساس این مدل میتوان میزان مخاطره هر تهدید و اولویت هر کنترل برای بهبود امنیت کل نرمافزار را محاسبه نمود. در ادامه نیز یک نرمافزار واقعی بر اساس این روش مدلسازی و ارزیابی شده است که نتایج آن به همراه یافتهها شرح داده شده است.
واژههای کلیدی:اندازهگیری، نرمافزار، ارزیابی امنیت، کنترل
-1 مقدمه
نرمافزار به عنوان یکی از لایههای سامانههای اطلاعاتی است که بهطور مستقیم با کاربر در ارتباط است. مساله ارزیابی و تایید یک محصول از دید امنیتی، هنوز یکی از چالشهای تحقیقاتی در این خصوص است. عمدهی مشکل در این خصوص، وابستگی ارزیابی و خصوصا اندازهگیری امنیت نرمافزار به دانش و خبرگی ارزیاب است. حتی روشهای شناخته شدهای مانند معیار مشترک [1] 1، BSIMM [2]، [3] DISA application Security نیز از این امر مستنثی نیستند. مراجعه به کنترلهای ارایه شده در سطوح مختلف این استانداردها گویای این مطلب است. از سوی دیگر به اذعان استانداردهایی مانند معیار مشترک [1] و [4] ISO 27001 ارزیابی یک نرمافزار بدون در نظر گرفتن شرایط بهرهبردار چندان مفید نیست.
چرا که اصولا امنیت برای بهرهبردار و بر اساس نیاز وی باید تعریف شود. از این رو بدون انجام یک فرایند مدیریت و تحلیل مخاطرت یا مدلسازی تهدید نه تنها نمیتوان اندازهگیری درستی از امنیت داشت، بلکه نمیتوان ارزیابی صحیحی نیز انجام داد. مشکل دیگر در حوزهی ارزیابی نرمافزار نبود زبان مشترک و بعضا اهداف متفاوت بین تولیدکننده و ارزیاب است. در اغلب پروژههای نرم-افزاری بهرهبردار از تولیدکننده میخواهد که تاییدیهای از یک مرجع ارزیابی امنیتی ارایه دهد. مدیران پروژه به دلیل عدم شناخت و فشارهای کاری این کار را به انتهای پروژه موکول میکنند و خواستههای ارزیاب پس از ارزیابی را به راحتی نمی توانند برآورده سازند یا گاهی اوقات به صورت ناقص در یک فرایند رفت و برگشت طولانی رفع میشوند. از جمله علل چالشهای اینچنینی عبارتند از:
·ممکن است ارزیابی به روشهای تست نفوذ انجام شود. عمده مشکلات روشهای تست نفوذ این است که همهی سناریوها ارزیابی نمیشوند در ثانی ارزیاب به جای ارایه راه حل، مشکل را منتقل میکند و معمولا روش رفع مشکل توسط تولیدکننده جامع نبوده و ممکن است موارد بالقوه را رفع نکند یا ممکن است ارزیاب در ارزیابی مجدد مشکلاتی را ارایه کند که مشخص کند تولیدکننده باید مساله را به شکل دیگری حل مینمود و این به معنای هزینهی کردن ناکارا برای امنسازی است.
·ممکن است ارزیاب به جای ارایه مشکل راه حل ارایه دهد اما ناآشنایی او با فضای تولید و فناوریهای آن باعث شود که راه حل ارایه شده هزینهی زیادی را به تولید کننده تحمیل کند.
·ارزیاب همپوشانی کنترلها را در نظر نگرفته و بر اساس یک روش تحلیل مخاطرات عمل نکرده و از این طریق نیز هزینه-های امنسازی غیر قابل تحمل میشود .[2]
·بالارفتن هزینه امنسازی خود ضد امنیت است چرا که ممکن است تولیدکننده زیربار این مساله نرود. لذا تفاهم و درک متقابل تولیدکننده و ارزیاب میتواند باعث کاهش هزینهها و در نتیجه رغبت تولیدکنندگان به مساله امنیت، ارزیابی و اخذ تاییدیه شود.
در این مقاله سعی شده است روشی ارایه شود که تا حدی چالشهای فوقالذکر را کاهش دهد. به این منظور یک نرمافزار s ، بر اساس کنترلهای بالقوه و بالفعلی که باعث کاهش تهدیدات آن میشود مدل شده و در نهایت پس از محاسبهی امنیت فعلی نرم-افزار کنترلهای بهینه برای بالابردن امنیت آن بهمیزان خاصی ارایه میشود. سازماندهی این مقاله به این صورت است که، در بخش بعد کارهای مرتبط به این مقاله ارایه شده است. در بخش 3 مدل مربوط و فرمولهای محاسبه امنیت ارایه میشود. پس از آن در بخش4 یک نمونه عملیاتی برای نشان دادن کاربردی بودن روش ارایه شده است. در نهایت نیز جمعبندی و کارهای آتی آورده شده است.
-2 کارهای مرتبط
امنیت را به دلیل پیچیدگی، عدم قطعیت، پویایی و خلاقیت مهاجمان، نمیتوان به عنوان یک مفهوم مطلق اندازهگیری کرد .[5] در اندازهگیری امنیت باید بهدنبال معیارهای ارزیابی باتوجه به نیاز تولیدکننده، بهرهبردار و ارزیاب بود. بعضی از رویکردها روی تحلیل مخاطره تمرکز دارند و بعضی نیز تمرکز خود را روی اقدامات متقابل جهت کاهش مخاطره منعطف کردهاند. یک تحلیل مخاطره کمی مانند آنچه در [6] گفته شد میتوان نمونهای از رویکرد اول باشد. گام اول در تحلیل مخاطره شناسایی تمام داراییها و انتساب مقادیری به آنها و سپس شناخت تهدیدهایی که برای این داراییها وجود دارند است. گام دوم تخمین احتمال رخداد این تهدیدات و ضررهایی است که به سیستم وارد میآورند.
با ترکیب این دو مقدار میتوان لیست اولویتبندی شدهای از تهدیداتی که سیستم را بهخطر میاندازند، داشت. فهمیدن اینکه کدام دارایی بیشتر میتواند برای محصول نرمافزاری مشکل ایجاد کند و شناسایی سریع تهدیدات نای دارایی معمولاّ نیاز به تجربهی امنیتی دارد. یک فرایند دیگر برای مدیریت مخاطره روش [7] Riskit است که برای اولویتبندی و کنترل مخاطرهها استفاده میشود. این روش مخاطره را مبتنی بر احتمال و ضرر اولویتبندی میکند. رویکرد دیگر استفاده از درخت حمله برای افزایش دقت در محاسبهی روابط بین داراییها، تهدیدها و حملات است. درخت حمله توسط Bruce [8] Schneier معرفی گردید و با - 1 - هدف حمله، - 2 - حمله - 3 - چگونگی پیادهسازی حمله، ساختاردهی شده است .[9]
پس از شناسایی، حملات باید برمبنای مخاطره مورد ارزیابی قرار گیرند، محاسبهی مخاطره را میتوان از رابطهی احتمال رخدادن آن ضربدر میزان تخریب محاسبه کرد .[10] اگرچه Buldas و همکاران [10] تاکید کرده اند که خسارت را می توان حساب کرد، اما محاسبه ی مخاطره رخداد بسیار مشکل است. بنابراین آنها مدلی پیشنهاد دادند که احتمال حمله را باتوجه به پارامترهای زیر مدنظر قرار میدهد: اهداف مهاجم، هزینه های حمله برای مهاجم، احتمال موفقیت، احتمال به تصرف درآمدن و خسارت ناشی از به تصرف درآمدن. یک اشکال بالقوه ی این پیشنهاد این است که توسعهدهندگان نرمافزار نیاز دارند تا به فهم درستی از انگیزههای مهاجم دست پیدا کنند.
علاوهبراین مهاجمان با توجه به اینکه در مقابل مخاطره چه رفتاری نشان میدهند، باهم متفاوتند.مرور کارهای مرتبط نشان میدهد که بهترین راه حل اولویتبندی اقدامات، شناسایی و اولویت بندی حملات و تهدیدها و سپس استفاده از آن ها به عنوان ورودی برای اولویتبندی اقدامات است. - برای مثال [7] را ببینید. - اگرچه تعداد کمی از روشها از ابتدا روی اولویتبندی اقدامات تمرکز دارند.به عنوان رویکردی که برروی اقدامات متقابل تمرکز دارد، Sang Tran و همکاران در [11] رویکردی برای انتخاب اقدامات متقابل جهت کاهش مخاطره با توجه به هزینه پیشنهاد دادند. این پیشنهاد، گرافهای مخاطره را به عنوان ورودی نیاز دارد. این رویکرد اقدامات را با توجه به مفاهیم مختلف مانند تاثیر در کاهش مخاطره، تاثیر روی دیگر اقدامات و هزینهی اقدامات تحلیل میکند.
بهعنوان رویکرد دیگری که به هزینه نیز توجه کرده است میتوان رویکرد پیشنهادی در [12] را مثال زد که یک تحلیل هزینه-فایده برای اختصاص منابع بهینه و پیادهسازی کنترلهای بهینه با توجه به هزینه پس از شناخت تمام اقدامات است.Baca و [13] Petersen روشی را پیشنهاد داده اند که اقدامات متقابل را با استفاده از امتیازدهی تجمعی سلسهمراتبی اولویتبندی میکند. روش شامل دو قسمت است: - 1 - ضمیمه ای برای درخت حمله و - 2 - فرآیندی جهت هدایت تحلیل برای رسیدن به لیستی از اقدامات متقابل اولویتبندی شده. آنها برای قسمت دوم یک ابزار نیز پیاده سازی کردهاند.
از نقاط ضعف تحلیل مخاطره و درخت حمله این است که فرض میکنند توسعهدهندگان تصور خوبی از آنچه مهاجم فکر میکند دارند. درصورتی که باید بسیاری از فاکتورهای مختلف محاسبه شوند. علاوه براین، برای توسعه دهندگان دشوار است که بدون تجربهی امنیتی حملات را بدون راهنمایی شناسایی کنند. از این رو روشهای پیشنهاد شده در این مقاله این مشکل را با دو روش مختلف حل کردهاند: اول، درختهای حمله که با عاملها توسعه داده شدهاند تا به توسعهدهندگان اجازه دهند که با فرض اینکه میدانند چه کسانی مهاجم هستند، اقدامات مهاجمان را پیشبینی کنند. دوم، یک فرایند پیشنهاد شده که تواما روی مقایسهی حملات و اقدامات مختلف تمرکز دارد.
-3 روش پیشنهادی
برای انتخاب و اولویتبندی کنترلهای امنیتی در مورد یک محصول، روش پیشنهادی براساس مدل تهدید عمل میکند. به این منظور فرض کنید T={t1'…'Wn} مجموعهی تهدیدها باشد و C={c1'…'Fm} مجموعهی کنترلهای ممکن و موجود باشد.
تعریف کنترل: یک کنترل c، هر اقدام در خصوص نرمافزار و بستر قرارگیری آن است که بهصورت مستقیم یا غیرمستقیم جلوی یک تهدید یا حمله را گرفته یا سطح مخاطره آن را کاهش میدهد. هر کنترل c، با سهتایی - c,copmletec,costc - نمایش داده میشود. 0 1 نشان میدهد که کنترل چهمقدار کامل و درست پیاده سازی شده است. costc هزینهی لازم برای تکمیل پیادهسازی c باتوجه به وضعیت فعلی نرمافزار است.
تعریفد تهدید: یک تهدید x، توالی از گامها با فرضیات محیط عملیاتی خاصی که مستقیم یا غیرمستقیم منجر به نقض امنیتی میشود. هر تهدید با چهارتایی - x,impactx,detectx,exploitx - نمایش داده میشود. این نحوهی نمایش، یک سادهسازی از CWSS [14] است. در این نمایش، x نشاندهندهی تهدید، impactx نشاندهندهی میزان خسارتی است که تهدید x در صورت عملیشدن به سیستم وارد میشود، detectx نشاندهندهی میزان راحتی کشف آسیبپذیری است که باعث تهدید x میشود و exploitx نیز نمایشگر میزان راحتی مهاجم در استفاده از این تهدید است.
تعریف گراف تهدیدات: گراف تهدیدات، گرافی است که تمام تهدیدات مربوط به نرمافزار را شامل میشود. این گراف را که با نماد TT نشان میدهیم به صورت زیر تعریف میشود:که سهتایی - tx , ty , P xy - بیانگر آن است که تهدید tx با درجهی شدت Pxy منجر به تهدید ty میگردد.تعریف گراف تقابل: گراف تقابل، گرافی است شامل تهدیدات، کنترلهای متناظر با تهدیدات و میزان تقابلی که آن کنترل در مقابل تهدید متناظر دارا است. این گراف را که با نماد TC نمایش میدهیم بهصورت زیر تعریف میشود:که سهتایی - cm , tx , fmx - نشاندهندهی آن است که کنترل cm به میزان0 1 مانع واقعشدن تهدید tx میشود. یک به معنای اینکه پیادهسازی کامل این کنترل مخاطره این تهدید را بهصورت کامل از بین میبرد.
تعریف وضعیت امنیتی نرمافزار: نرمافزار باتوجه به میزان مخاطرهای که هر تهدید برای آن ایجاد میکند و میزان تقابلی که هر کنترل در مقابل تهدیدهای آن دارد، دارای یک وضعیت امنیتی است. وضعیت امنیتی نرمافزار s را با چندتایی = - , , , - نشان میدهیم. در این چندتایی کنترلهای موجود یا مورد نیاز برای امنیت نرمافزار، لیست تهدیدهای مرتبط با نرمافزار، گراف تهدیدات و گراف تقابل نرمافزار است.باتوجه به تعاریف فوق معیارهای زیر برای اندازهگیری امنیت تعریف شدهاند.محاسبهی مخاطرهی تهدید در نرمافزار: هر تهدید، علاوه بر مخاطرهای که بهطور مستقیم در نرمافزار ایجاد میکند، بهطور غیرمستقیم نیز به تسهیل در عملیشدن تهدیدات دیگر کمک میکند که آن تهدیدات دارای مخاطرهی مختص خود هستند. درنتیجه مخاطره تهدید tx در نرمافزار s که با نشان داده می-شود به شکل زیر محاسبه میگردد:
محاسبهی مخاطرهی باقیماندهی تهدید در نرمافزار: پس از پیادهسازی کنترل متناظر با یک تهدید، میزان مخاطرهای که به سبب آن تهدید در نرمافزار بهوجود آمده بود، کاهش مییابد. مخاطره باقیماندهی تهدید tx در نرمافزار s که به صورت نشان داده میشود، بهصورت بازگشتی مانند زیر تعریف میشود:
قضیه: در محاسبهی با هر ترتیبی از اعضاء به یک نتیجهی مشترک میرسیم. به عبارت دیگر:
به دلیل خاصیت جابهجایی ضرب، این قضیه صحیح است و در اینجا از آوردن اثبات جهت خلاصه کردن خودداری میشود.