بخشی از مقاله
ارائه مدلی پیشنهادی برای مدل سازی تست نفوذپذیری بر پایه FHM با استفاده از شبکههای پتری
چکیده
در این مقاله قصد داریم به ارائه یک روش مدون در جهت مدلسازی تست نفوذپذیری بپردازیم . یک تست نفوذ یک پروسه مجاز، برنامه ریزی شده و سیستماتیک برای به کارگیری آسیبپذیری ها جهت نفوذ به سرور، شبکه و یا منابع برنامه های کاربردی است. در واقع تست نفوذ روشی برای ارزیابی امنیتی یک سیستم یا شبکه کامپیوتری است که از طریق شبیه سازی حمله یک هکر یا نفوذگر خرابکار صورت می گیرد. مدل پیشنهادی عملیلت مدلسازی تست نفوذ را همزمان با پیشرفت مراحل متدلوژی فرض خطا با استفاده از شبکهها ی پتری انجام میدهد. برای نیل به هدف بالا ابتدا مروری اجمالی بر شبکههای پتری و انواع آن خواهیم داشت سپس به ارائه دو متدلوژی پرکاربرد در زمینه ایجاد و شناسایی نقایص موجود در سیستم پرداخته و مراحل متدلوژی فرض خطا را تشریح کرد ه و در پایان مدل پیشنهادی خود را ارائه و به تشریح دو سناریو با استفاده از مدل خود میپردازیم.
واژه های کلیدی
تست نفوذپذیری، شبکههای پتری، درخت نقص، درخت حمله، تست نقص
-1 مقدمه
در طی سالهای اخیر بسیاری از شرکت ها برای راحتی بیشتر مشتریان و کارمندان خود، برخی امکانات اضافی را به برنامههای کاربردی موجود اضافه کرده و یا برنامههای کاربردی جدیدی را پیادهسازی کردهاند. برای مثال میتوان به دسترسی آنلاین به خدمات بانکی و یا گسترش شیوه های ارتباط الکترونیک برای کارمندانی که در خانه کار می کنند، اشاره کرد. از طرف دیگر بسیاری از شرکت ها به ضرورت حضور در اینترنت برای جذب مشتریان بالقوه و حفظ مشتریان فعلی پی برده اند. در هر دو
مورد، زمانی که بحث حضور در اینترنت پیش می آید، عنصر امنیت به خصوص امنیت سرورها اهمیت ویژهای پیدا میکند. سرورهای وب، در کنار سرویسهای مفید خود، مجموعه جدیدی از آسیبپذیریها را نیز پدید آوردهاند که لازم است دستاندرکاران سیستمهای رایانه ای، به خصوص سیستم های مبتنی بر وب، آنها را جدی تلقی کنند.[1] البته آسیبپذیریها به سرورها محدود نمیشوند و ممکن است به صورت عمدی یا غیرعمدی در طراحی و پیادهسازی برنامه های کاربردی، حتی برنامههایی که مدتهاست در حال کار هستند، ایجاد شده باشند. به همین جهت شناسایی آسیبپذیریها و میزان نفوذ و تأثیر آنها بر روی سیستم از اهمیت
ویژه ای برخوردار است. لذا بسیاری از شرکتها برای نیل به هدف فوق ناگزیر به استفاده از تست نفوذ میباشند.[2]
بنابراین در اینجاست که به اهمیت روشهایی برای مدلسازی تست نفوذ پی می بریم . در ارتباط با کارهایی که در این زمینه انجام شده است میتوان به درختان حمله[5] و شبکههای حمله[6] برای مدلسازی تست نفوذ اشاره کرد که هر یک دارای معایب و مزایایی هستند . توضیح مختصری از این منابع در انتهای مطالب آورده شده است.
مدل پیشنهادی ما تا حدودی بر پایه اصول شبکههای حمله استوار است که به تشریح چگونگی استفاده از این اصول در مدل پیشنهادی خود خواهیم پرداخت.
-2 شبکههای پتری
شبکهها ی پتری در سال 1962 بر اثر کار آقای کارل آدام پتری توسعه یافت که مورد توجه MIT قرار گرفت. یک شبکه پتری از چهار جزء تشکیل شده است که در شکل1 مشاهده میکنید.
شکل:1 اجزاء تشکیل دهند شبکه پتری
اینها چهار جزء اصلی در شبکه پتری هستند و به علت کم بودن، باعث سادگی در شبکه پتری شدهاند. هریک از اجزاء بالا برای نشان دادن حالتی در شبکههای پتری مورد استفاده قرار میگیرند به شرح زیر:
: token نشانه یا مهره
: Place مکان، برای نگهداری موقت token ها.
:Transition انتقال، مرکز فعالیت که بر روی token اثر می گذارد و شاید token جدید ایجاد کند.
: Arc کمان، مسیر حرکت token ها در گراف شبکه پتری. از مزایای شبکههای پتری میتوانیم به موارد ذیل اشاره کنیم:
• ابزاری مناسب برای مدل سازی بر پایه منطق ریاضی بصورت گرافیکی.
• از شبکهها ی پتری میتوان برای مدل سازی، توصیف و تحلیل سیستمهایی که ماهیتی همزمان، توزیع شده، موازی و یا اتفاقی دارند استفاده کرد.
• از خصوصیات مهم شبکههای پتری قابل اجرابودن آن است.
بر خلاف UML ، در شبکه های پتری همواره تجزیه و تحلیل و پیادهسازی بصورت همزمان صورت می گیرد.
با وجود تمام نقاط قوت ، شبکه های پتری کلاسیک دارای ضعفهای بسیاری در موقعیتهای عملی است و نمیتوان با آن بسیاری از فعالیتهای عملی را مدلسازی نمود.
به همین دلیل شبکههای پتری در جهتهای مختلف بسط یافته است که دو تا از مهمترین توسعه های شبکههای پتری عبارتند از:
بسط رنگ <---- petri net رنگی
بسط زمان <---- petri net زمانی
-1-2 شبکههای پتری رنگی
شبکههای پتری رنگی یک زبان مدلسازی برای مدل کردن و تجزیه و تحلیل سیستم های همزمان است. در این نوع از شبکه پتری خاصیتی به نام رنگ به توکنها اضافه میشود که آنها را از همدیگر مجزا می کند، هر مکانی به یک مجموعه رنگ وابسته میشود که شامل تمامیمقادیر موجود برای یک توکن است. یک مکان می تواند دارای چندین توکن از یک رنگ مشابه باشد، مهمترین تفاوت بین پتری کلاسیک و پتری رنگ در نحوه شلیک کردن توکن هاست بصورتیکه در پتری معمولی به محض فراهم شدن حداقل تعداد توکن ها برای یک گذر عملیات شلیک توکن شروع میشود، ولی در پتری رنگی فقط زمانی عملیات شلیک توکن در یک گذر انجام می شود که توکن های مشخص شده در گارد (دستور شرطی موجود بر روی یک گذر) در مکانهای ورودی به یک گذر فراهم باشند. شکل 2 مثال سادهای از یک شبکه پتری رنگی را نشان میدهد.
شکل:2 مثال شبکه پتری رنگی قبل و بعد از شلیک توکن
-2-2 شبکههای پتری زمانی
در این نوع از شبکه پتریب،عدی به نام زمان به شبکه اضافه میشود. این بعد زمانی میتواند به هریک از اجزاء شبکه پتری اختصاص داده شود ولی عمده استفاده از آن بر روی گذرهاست. ما زمانی از ب عد زمان استفاده میکنیم که نیاز به نشان دادن تاخیرهایی برای گذر از یک مکان به مکان دیگر داشته باشیم. همچنین در مواردیکه نیاز به ایجاد هماهنگی بین نقاط مختلف شبکه داشته باشم از بعد زمان بهره میبریم . تفاوت عمده بین شبکه پتری رنگی با شبکه پتری زمانی در نحوه شلیک توکن هاست. در پتری زمانی حتی با وجود توکنهای مورد نیاز تعریف شده در گارد یک گذار، عملیات شلیک تا صفر شدن زمان تاخیر روی گذار به تعویق میافتد. شکل 3 نمونه ساده ای از یک پتری
زمانی قبل و بعد از شلیک توکن را نشان میدهد.
-3-2 شبکه پتری رنگی با فاصله زمانبندی شده
این نوع پتری همانند پتری زمانی میباشد اما با این تفاوت که ما از میزان تاخیرهای موجود برای انتقال از یک مکان به مکان دیگر صددرصد مطمئن نیستیم، به این منظور به جای
شکل:3 مثال شبکه پتری زمانی قبل و بعد از شلیک توکن
استفاده از یک بعد زمانی از یک فاصله زمانی که عمدتا بر روی کمان خروجی از گذار گذاشته میشود استفاده میکنیم. عمده استفاده از این نوع شبکه پتری در این مقاله برای مدلسازی حمله به سیستم های توزیع شده که در آن میزان تاخیرها همیشه صددرصدی نیست و تخمینی است، میباشد. شکل4 نمونهای از
شبکه پتری رنگی با فاصله زمانبندی را نشان میدهد.
شکل:4 شبکه پتری رنگی با فاصله زمانبندی شده قبل و بعد از شلیک توکن