چکیده

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

واژگان کلیدی: خود حفاظتی، خود بهینه سازی، خود ترمیمی و خود پیکربندی

لآ

-۱ مقدمه

وجود ویژگیهای توزیع پذیری، تعامل پذیری و سرویسهای شبکهای در سیستمهای نرم افزاری کنونی و همچنین اهداف متفاوت سیاسی، نظامی ، اقتصادی و غیره موجب افزایش حملات خارجی پیچیده و گسترده شده است.از سویی دیگر، برطرف سازی نیازهای امنیتی سیستمهای نرمافزاری امروزی که با رفتارهای پویا و پیچیده طراحی میشوند، با استفاده از روشهای معمولی هزینه بر ، زمان بر و ناکارآمد است. موارد ذکر شده موجب حرکت به سوی سیستمهای نرم افزاری خودتطبیق و انجام تحقیقات و کارهای عملی گسترده در این حوزه گشته است.سیستم خودتطبیق سیستمی است که رفتار خود را در پاسخ به تغییرات در محیط عملیاتی خود تغییر می دهد. به بیان دیگر یک سیستم خودتطبیق رفتار خود را ارزیابی نموده و هنگامی که این رفتارها در جهت اهداف تعیین شده برای نرمافزار نباشند و یا کارایی بالاتری ممکن باشد، این رفتارها را تغییر میدهد. به طور کلی، یک سیستم خودتطبیق باید حداقل از چهار ویژگی زیر پشتیبانی کند :خود حفاظتی۱، خود بهینه سازی۲، خود ترمیمی۳، و خود پیکربندی.۴ امروزه امنیت به عنوان نگرانی عمده در طراحی و ساخت سیستم های نرم افزاری محسوب می شود . خود حفاظتی از سیستم های نرم افزاری کلاسی از سیستم های خود مختار است که قادر به تشخیص و کاهش تهدیدات امنیتی در زمان اجرا است .سیستم خود حافظتی قادربه تشخیص رفتار قانونی از غیر قانونی است و مانند سایر خواص Self-*، اجازه می دهد تا سیستم خود را با تغییرات محیطی بطور خودکار ( بدون دخالت انسان) انطباق دهد و بدین وسیله می تواند پاسخگو و مقرون به صرفه باشد. هدف اصلی از سیستم خود حفاظتی دفاع از محیط عملیاتی در برابر اقدامات مخرب عمدی است که این کار را توسط اسکن فعالیت های مشکوک و واکنش نشان دادن به آنها بدون آگاهی کاربر انجام میدهد.[۱]

در [۲]خود حفاظتی از دو دیدگاه مشخص میشود: دیدگاه واکنشی۵ بدین معنا که سیستم بطور خودکار در برابر حملات مخرب و یا خرابیهای آبشاری دفاع میکند و دیگری دیدگاه پیشفعال۶ بدین معنا که سیستم مشکلات امنیتی در آینده را پیش بینی میکند و گامهایی را در جهت کاهش آن برمیدارد. خود حفاظتی رابطه نزدیکی با دیگر خواص Self -* مانند خود پیکربندی۷ و خود بهینه سازیدارد.

سازمان دهی این مقاله بصورت زیر است : در بخش ۲ به معرفی چند نمونه از معماری های خود حفاظتی می پردازیم وسپس در بخش ۳ الگو ها و تاکتیک های خود حفاظتی را بیان می کنیم و در بخش ۴ به مقایسه تکنیک های ارائه شده در بخش قبلی می پردازیم و در پایان در بخش ۵ نتیجه گیری خواهیم کرد.

-۲ معماری های خود حفاظتی

بیشتر تحقیقات در زمینه خود حفاظتی، تا به امروز ، بر روی لایه خاصی از دفاع (به عنوان مثال، شبکه، میزبان، میان افزار)متمرکز شده اند و همیشه کمبود توانایی درک کل موضوع وجود دارد. در [۴]،خود حفاظتی مبتنی بر معماری ( ABSP) 8 برای رسیدگی به این چالش ارائه شده است که تلاش می کند تا شناسایی و مقابله با تهدیدات امنیتی را بوسیله معماری نرم افزار که با سیستم در حال اجرا همگام است، انجام دهد. برای نشان دان روش ABSP به عنوان مفهوم خود حفاظتی از مولفه ای بنام مدیر معماری۹ طبق شکل ۱ استفاده می کند.

۱ Self Protection 2 Self Optimization 3 Self Healing 4 Self Configuration 5 Reactive 6 Proactive 7self-configuration

۸ Architecture Based Self Protection 9 Architecture manager

لأ

شکل : ۱ معماری خود تطبیقی

مدیر معماری وظیفه مانیتور مولفه ها و ارتباطات در سیستم را بعهده دارد و آنها را با اهداف خود حفاظتی منطبق می کند. برای رسیدن به این هدف مدیر معماری از حلقه MAPE1 استفاده می کند[۵] که از یک سو به حسگرهای خارج از سیستم متصل است تا وضعیت کنونی آنها را مانیتور کند و از سوی دیگر به تاثیر دهنده ها۲ وصل است که می توانند دستورات تطبیقی را دریافت و تغییرات معماری را بر روی سیستم پایه در زمان اجرا اعمال نمایند.