Skip to Content

آرشیو

امنیت در مجازی سازی و رایانش ابری

امنیت در مجازی سازی و رایانش ابری

امنیت-در-مجازی-سازی-و-رایانش-ابری
مجازی سازی و رایانش ابری

در رایانش ابری کامپوننت هایی وجود دارند که برای ساختن زیرساخت ابر به کار گرفته می شوند. در پایین ترین لایه کامپوننت های سخت افزاری عملی مانند سرورها، NAS (تجهیزات ذخیره سازی شبکه) و کامپوننت های شبکه قرار می گیرند. برای محدود کردن امکان انتشار موارد امنیتی و آلودگی، شبکه ها باید به درستی به چند DMZ قوانین محدود کننده ارتباطی بین آنها تقسیم شوند. هسته رایانش ابری مجازی سازی است، که برای جداسازی یک لایه فیزیکی ماشین به چند ماشین مجازی به صورتی مقرون به صرفه است. اشتباه نکنید. اجرا و عملیاتی سازی یک ابر مطمئنا بدون مجازی سازی نیز امکان پذیر است، اما کار و زمان بیشتری برای اجرایی شدن نیازمند است. با مجازی سازی تعدادی از ماشین های مجازی امکان اجرای بر روی یک کامپیوتر فیزیکی را دارند که باعث مقرون به صرفه شدن و کاهش هزینه ها می شود. از سوی دیگر بخشی از منابع فیزیکی سرور نیز می توان به سایر کاربران واگذار گردد. چنین ماشین های مجازی کاملا پورتابل نیز هستند، بنابراین می توانند از یک سرور فیزیکی به سرور دیگردرچند ثانیه و بدون خاموشی و downtime منتقل شوند. ماشین های مجازی جدید می توانند به سادگی ایجاد شوند. فایده دیگراستفاده از مجازی محل ماشین های مجازی در دیتاسنتر است اهمیتی ندارد که دیتاسنتر کجا واقع شده است. ماشین های مجازی به سادگی قابل کپی شدن بین دیتاسنترها هستند.

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

محیط سنتی در برابر محیط مجازی شده

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

 تفکیک شبکه: بیشتر محیط های ساده مجازی شده تنها از یک شبکه استفاده می کنند که همه ماشین های مجازی در آن قرار گرفته اند. اما این حالت چندان امن نیست. به جهت امن کردن شبکه، لایه شبکه نیاز به تفکیک به DMZ های مختلف دارد که امنیت را افزایش می دهد. برای شرکت هایی که تلاش می کنند امنیت را بالا ببرند، DMZ داخلی خودشان می تواند در فضایی که فقط ماشین های مجازی آنها قرار گرفته اند ایجاد شود. حتی می توان بیشتر نیز پیش رفت و تجهیزات شبکه مجزا مانند سوئیچ ها از CSP درخواست کرد که فقط ترافیک ماشین های مجازی اختصاصی شما از آنها عبور کند. می توان از CSP درخواست نمود که از VLAN tagging / trunking برای ماشین های مجازی استفاده کند که به این مفهوم است که هر بسته که به ماشین های مجازی اختصاصی مقصد یابی شده و از ماشین های مجازی اختصاصی نیز می آید، یک VLAN ID معین دارد، بنابراین تنها رابط های شبکه در همان VLAN قادر به دریافت و پردازش بسته های شبکه هستند.

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

موارد امنیتی در هنگام استفاده از مجازی سازی در رایانش ابری

مجازی سازی منافع متعددی را زمانی که در پلتفرم رایانش ابری استفاده می شود بدست می دهد. چنین راندمانی در هزینه، افزایش زمان در دسترس بودن، بهبود شرایط بازیابی، مجزا سازی اپلیکیشن و غیره. علیرغم تمام این مزایا وقتی که از مجازی سازی استفاده می شود موارد امنیتی وجود دارند که در ادامه اشاره شده است.

  •        Hypervisor: Hyperviser برای جداسازی سیستم عامل ماشین مجازی از سخت افزار فیزیکی مورد استفاده قرار می گیرد. وقتی که یک ماشین مجازی جدید بر روی یک ماشین فیزیکی نصب می کنیم، باید مطمئن شویم که آخرین بروزرسانی های نرم افزار بر روی سیستم عامل نصب شده و نرم افزار بدرستی به روز رسانی شده است. همین که مهاجم دسترسی مدیریت administrative را به سیستم عامل میهمان بدست بیاورد، می خواهد از تمام نقاط آسیب پذیر که در Hypervisor وجود حداکثر بهره برداری را نماید. مهاجم می تواند دسترسی کامل به ماشین فیزیکی میزبان را بدست آورد. به جهت درک اهمیت داشتن یک hypervisor ایمن باید به نکاتی توجه شود. یک hypervisor بطور خاص برای مجازی سازی ساخته شده است و بنابراین عملکرد های محدود مورد نیاز خاصی را داراست. نیازی نیست که یک hypervisor مانند یک سیستم عامل کامل باشد، زیرا باید قادر به اجرای مجموعه محدودی از عملکردها را داشته باشد. بنابراین چنین سیستمی دارای تعداد کمتری مبادی ورودی است که قابل تهاجم و بهره برداری باشد. از آنجاییکه hypervisor ها بندرت به روز رسانی می شوند، آسیب پذیری های امنیتی جدید بیشتر در موارد اصلاح نشده برای مدت طولانی اتفاق می افتد.در سال 2006 دو rootkit برای نشان  دادن اینکه چگونه می توان از rootkit ها برای کنترل ماشین میزبان. Hypervisor و همه ماشین های مجازی آن استفاده کرد توسعه داده شد.
  •        اختصاص منابع: وقتی که یک منبع معین مانند ذخیره ساز داده و یا حافظه فیزیکی به یک ماشین مجازی اختصاص داده می شود.، ماشین مجازی می تواند از آن برای ذخیره سازی داده استفاده کند. اگر منابع بعد از آن به ماشین مجازی دیگر اختصاص داده شود به این جهت که ماشین مجازی فعلی دیگر مورد نیاز نیست و بنابراین باید حذف شود. ماشین های مجازی جدید می توانند داده را ازهارد دیسک و حافظه بخوانند. داده در چنین منابعی باید در شرایطی که از یک ماشین مجازی به ماشین مجازی دیگری انتقال داده می شود، به درستی حذف شود.
  •        تهاجم به ماشین مجازی: اگر یک مهاجم با موفقیت دسترسی به یک ماشین مجازی را با استفاده از آسیب پذیری در یکی از اپلیکیشن هایی که بر روی آن ماشین مجازی اجرا شده است بدست آورد، می تواند به سایر اپلیکیشن هایی که برروی ماشین های مجازی متفاوت در همان شبکه قرار گرفته اند، حمله کند. اگر ماشین های مجازی در حال اجرا بر روی همان هاست فیزیکی باشند که ماشین فیزیکی مورد تهاجم قرار گرفته بر آن است ممکن است سخت باشد که چنین حمله ای به شبکه کشف گردد. ما باید قادر باشیم ترافیکی که از هر ماشین مجازی بر روی یک هاست فیزیکی می آید را پایش کنیم.
  •        حملات مهاجرت:  وقتی ما یک ماشین مجازی را انتقال می دهیم، این مهاجرت معمولا از انتفال کل ماشین مجازی بر روی شبکه از یک ماشین فیزیکی به ماشین فیزیکی دیگر تشکیل شده است. برای حمله موفق، مهاجم نیاز دارد که قبل از هر چیز به شبکه دسترسی داشته باشد که مهاجرت در آن اتفاق می افتد و همچنین دسترسی به خواندن/نوشتن بر حافظه در زمانی که مهاجرت اتفاق می افتد. وقتی که ارتباطات مهاجرت رمزگذاری نشده است، مهاجم می تواند یک حمله MITM را اجرا کند تا تمام فایل های VHD ماشین را کپی برداری کند.

کاهش نگرانی های امنیتی

مورد زیر شرح می دهد که چگونه ما می توانیم نگرانی های امنیتی را که در بالا شرح داده شد کاهش دهیم.

  •        Hypervisor: ازحملات به hypervisor می تواند به آسانی با به روزرسانی های مرتب آن پیشگیری کرد. از آنجاییکه تعداد کمی نقاط آسیب پذیر در hypervisor وجود دارد و همچنین تعداد کم دفعاتی که باید انجام شود وجود دارد. اما مهم است که این کار انجام شود، اگرچه این به روز رسانی ها از از نفوذ پذیری zero-day پیشگیری نمی کند، اما حداقل سیستم در برابر آسیب پذیری های عادی محافظت می شود.
  •        اختصاص منابع: قبل از اختصاص منابع به ماشین مجازی جدید، منابع باید به درستی محافظت شوند. وقتی فضای حافظه فیزیکی به یک ماشین مجازی اختصاص داده می شود، حافظه باید کلیه حافظه صفر شود تا از نشت داده ای که در سیستم قبلی مورد استفاده قرار میگرفته جلوگیری شود.همین شرایط برای داده دیسک سخت که ممکن است هنوز پس از پارتیشن بندی جدید وجود داشته باشد،صادق است. یک ماشین مجازی جدید می تواند از ابزارهای قانونی متفاوتی برای خواندن همه محتوای ساختاربندی نشده دیسک سخت به یک فایل استفاده کرده و آن را برای نشتی داده تحلیل نماید. برای جلوگیری از این شرایط، ما باید دیسک سخت را قبل از اختصاص به یک ماشین مجازی جدید با پارتیشن بندی قبلی آن صفر کنیم.
  •        حملات ماشین مجازی: باید مطمئن شویم که نرم افزار مجازی سازی زیربنایی می تواند میان ترافیک ورودی و خروجی از ماشین مجازی تمایل قائل شود. این ترافیک همچنین نیازمند تحلیل حملات ممکن شناخته شده است. یک راه برای انجام این امر، استفاده از port mirroring برای کپی هر ترافیک بر روی یک پورت خاص در یک سوئیچ به پورت دیگر برای تحلیل داده توسط IDS/IPS است.
  •        حملات مهاجرت: حملات مهاجرت می تواند با استفاده از مکانیزم مناسبی برای یافتن و جلوگیری کردن از حملات MITM کنترل شود. برای بهبود امنیت، مهاجرت باید از یک کانال ارتباطی امن مانند TLS انجام شود.

جمع بندی

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

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

منبع : http://resources.infosecinstitute.com

ادامه مطلب

فایروال Firewall

فایروال Firewall
فایروال Firewall

انواع دیواره آتش ها

دیواره آتش ها به دو شکل سخت افزاری (خارجی) و نرم افزاری (داخلی) ارائه می شوند :

1- دیواره آتشهای سخت افزاری :

این نوع از دیواره آتش ها که به آنان دیواره آتش هاي شبکه نیز گفته می شـود ، بـین کـامپیوتر هـا و کابل و یا خط DSL قرار خواهد گرفت.تعداد زیادي از تولید کنندگان و برخی از مراکز ISP ، دسـتگاههـایی با نام Router را ارائه می دهند که دارای یک دیواره آتش نیز می باشند.

دیواره آتش های سخت افزاری در مواردی نظیر حفاظت چندین کامپیوتر مفید بـوده و یـک سـطح مناسـب حفاظتی را ارائه می نمایند.

دیواره آتش های سخت افزاری ، دستگاههای سخت افزاری مجزائی مـی باشـند کـه دارای سیـستم عامـل اختصاصی خود می باشد. بنابراین بکارگیری آنان باعث ایجاد یک لایـه دفـاعی اضـافه در مقابـل تهاجمـات می گردد.

1- دیواره آتشهای نرم افزاری :

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

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

 

نحوه عملکرد دیواره آتش

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

پس از پردازش و تحلیل بسته سه حالت ممکن است اتفاق بیفتد :

1) اجازه عبور بسته صادر می شود.(Accept mode)

2) بسته حذف می شود.(Blocking Mode)

3) بسته حذف شده و پاسخ مناسب به مبدأ آن بسته داده می شود. (Response Mode)

همچنین علاوه بر حذف بسته می توان عملیاتی نظیر ثبـت ، اخطـار ، ردگیـری و جلـوگیری از ادامـه اسـتفاده از شبکه هم در نظر گرفت.

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

از آنجایی که معماری شبکه به صورت لایه لایه است. و مدل های مختلفی در طراحی شبکه می باشد، در مـدل TCP/IP براي انتقال یک واحد اطلاعات از لایه چهارم بر روی شبکه باید تمام لایـه هـا را بگذارنـد، هـر لایـه براي انجام وظیفه خود تعدادی فیلد مشخص به ابتدای بسته اضافه کرده و آن را تحویل لایه پایین تر می دهد. قسمت اعظم کار یک دیواره آتش تحلیل فیلد هاي اضافه شـده در هـر لایـه و header هـر بـسته مـی باشـد. سیاست امنیتی یک شبکه مجموعه ای متناهی از قواعد امنیتی است که بنا بر ماهیتشان در یکـی از لایـه هـای دیوار آتش تعریف می شوند :

1- قواعد تعیین بسته های ممنوع در اولیه لایه از دیواره آتش

2- قواعد بستن برخی از پورت ها متعلق به سرویسهای مانند FTP یا Telnet در لایه دوم

3- قواعد تحلیل header متن یک نامه الکترونیکی یا صفحه وب در لایه سوم

 

بنابراین دیواره آتش دارای سه لایه می باشد ،که جزئیات هر کدام به شرح زیر می باشد:
الف) لایه اول دیواره آتش :

لایه اول دیواره آتش براساس تحلیل بسته IP و فیلد هـاي header ایـن بـسته کـار مـی کنـد و در ایـن بـسته فیلدهای زیر قابل نظارت و بررسی هستند:

1- آدرس مبدا : برخی از ماشین های داخل و خارج شبکه با آدرس IP خاص حق ارسال بسته نداشـته باشـند و بسته های آنها به محض ورود به دیواره آتش حذف نشود.

2- آدرس مقصد : برخی از ماشین های داخل و خارج شبکه با آدرس IP خاص دریافـت بـسته نداشـته باشـند و بسته های آنها به محض ورود به دیواره آتش حذف شود. ( آدرس هاي IP غیر مجاز توسط مسئول دیواره آتش تعریف می شود.)

3-شماره شناسایی یک دیتاگرام قطعه قطعه شده (Fragment & Identifier offset) : بسته هایی کـه قطعـه قطعه نشده اند یا متعلق به یک دیتاگرام خاص هستند باید حذف نشوند.

4-شماره پروتکل: بسته هایی که متعلق به پروتکل خاصی در لایه بالاتر هستند می توانند حذف نشوند. یعنی بررسی اینکه بسته متعلق به چه پروتکلی است و آیا تحویل به آن پروتکل مجاز است یا خیر؟

5-زمان حیات بسته : بسته هایی که بیش از تعداد مشخصی مسیریاب را طی کرده اند مـشکوك هـستند و بایـد حذف نشوند. 6-بقیه فیلدها بنابر صلاحدید و قواعد امنیتی مسئول دیواره آتش قابل بررسی هستند.

مهمترین خصوصیت لایه ازن از دیواره آتش آنست که در این لایه بسته ها بطور مجزا و مستقل از هـم بررسـی می شوند و هیچ نیازی به نگه داشتن بسته هاي قبلی یا بعدی یـک بـسته نیـست. بهمـین دلیـل سـاده تـرین و سریعترین تصمیم گیری در این لایه انجام می شود. امروزه برخی مسیر یابها با امکـان لایـه اول دیـوارآتش بـه بازار عرضه می شوند. یعنی به غیر از مسیریابی وظیفه لایه اول یک دیوار آتش را هم انجام می دهند که به آنهـا مسیریابهای فیلترکننده بسته (Pocket Filtering Routre) گفته می شود. بنابراین مسیریاب قبل از اقـدام بـه مسیریابی براساس جدولی، بسته های IP را غربال می کند و تنظیم این جـدول براسـاس نظـر مـسئول شـبکه و برخی قواعد امنیتی انجام می گیرد.

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

ب) لایه دوم دیوار آتش:

در این لایه از فیلدهای header لایه انتقال برای تحلیل بسته استفاده می شود. عمـومی تـرین فیلـدهای بـسته لایه انتقال جهت بازرسی در دیوارآتش عبارتند از:

1-شماره پورت پروسه مبدا و مقصد : با توجه به آنکه پورت های استاندارد شـناخته شـده هـستند، ممکـن اسـت مسئول یک دیوار آتش بخواهد سرویس FTP فقط در محـیط شـبکه محلـی امکـان پـذیر باشـد و بـرای تمـام ماشینهای خارجی این امکان وجود نداشته باشد. بنابراین دیـواره آتـش مـی توانـد بـسته هـاي TCP بـا شـماره پورتهای 20 و 21 ( مربوط به FTP ) که مقصد ورود و خـروج از شـبکه را دادنـد، حـذف کنـد. یکـی دیگـر از سرویسهای خطرناك که ممکن است مورد سوء استفاده قرار گیرند Telnet می باشد کـه مـی تـوان بـه راحتـی پورت 23 را مسدود کرد یعنی بسته هایی که مقصدشان شماره پورت 23 است، حذف شوند.

2-فیلد شماره ترتیب و فیلد Acknowledgment : این دو فیلد نیز بنابر قواعد تعریف شده توسط مسئول شبکه قابل استفاده هستند.

3- کدهاي کنترلی (TCP code Bits) : دیواره آتش با بررسی ایـن کـدها، بـه ماهیـت آن بـسته پـی بـرده و سیاست هاي لازم را بر روی آن اعمال می کند. بعنوان مثال یک دیواره آتش ممکن است بگونه ای تنظیم شـود که تمام بسته هایی که از بیرون به شبکه وارد می شـوند و دارای بیـت SYN=1 هـستند را حـذف کنـد. بـدین ترتیب هیچ ارتباط TCP از بیرون به درون شبکه برقرار نخواهد شد.

از مهمترین خصوصیات این لایه آن است که تمام تقاضاهای برقراری ارتباط TCP بایستی از این لایه بگـذرد و چون در ارتباط TCP ، تا مراحل سه گانه اش به پایان نرسد، انتقال داده امکان پذیر نیست.

لذا قبل از هر گونه مبادله دیواره آتش می تواند مانع برقراری هر ارتباط غیر مجـاز شـود. بـدین معنـا کـه دیـواره آتش می تواند تقاضاهای برقراری ارتباط TCP را قبل از ارائه به ماشین مقصد بررسی نمـوده و در صـورت قابـل اطمینان نبودن مانع از برقراری ارتباط گردد. دیواره آتش این لایه نیاز به جدولی از شماره پورت های غیـر مجـاز دارد.

ج) لایه سوم دیواره آتش :

در این لایه حفاظت براساس نوع سرویس و برنامه کاربردی انجام می شـود. بـدین معنـا کـه بـا در نظـر گـرفتن پروتکل در لایه چهارم به تحلیل داده ها می پردازد. تعداد header در این لایـه بـسته بـه نـوع سـرویس بـسیار متنوع و فراوان است.

بنابراین در لایه سوم دیواره آتش برای هر سرویس مجزا (ماننـد وب، پـست الکترونیـک و …) بایـد یـک سلـسله پردازش و قواعد امنیتی مجزا تعریف شود و به همین دلیل حجم و پیچیدگی پردازش ها در لایه سوم زیاد است. بنابراین توصیه می شود که تمام سرویس های غیر ضروري و شماره پورت هـایی کـه مـورد اسـتفاده نیـستند در لایه دوم مسدود شوند تا کار در لایه سوم کمتر باشد.

انواع فایروال ها از لحاظ عملکرد

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

1- دیواره های آتش سطح مدار (Circuit – Level Firewall)

این دیواره های آتش به عنوان یک رله براي ارتباطات TCP عمل می کنند. آنها ارتباط TCP با رایانـه پـشتیبان قطع می کنند و خود به جاي آن رایانه به پاسخگویی اولیه می پردازند. تنهـا پـس از برقـراری ارتبـاط اسـت کـه اجازه می دهند تا داده به سمت رایانه مقصد جریان پیدا کند و تنها بـه بـسته هـاي داده ای مـرتبط اجـازه عبـور میدهند. این نوع از دیواره هاي آتش هیچ داده درون بسته هاي اطلاعات را مورد بررسی قرار نمـی دهنـد و لـذا سرعت خوبی دارند ضمناً امکان ایجاد محدودیت بر روی سایر پروتکل ها (غیر از TCP) را نیز نمی دهند.

2-دیواره های آتش پروکسی سرور (Proxy Based Firewall)

فایروال های پروکسی سرور به بررسی بسته های اطلاعات در لایـه کـاربرد مـی پـردازد. یـک پروکـسی سـرور درخواست ارائه شده توسط برنامه هاي کاربردی را قطع می کند و خود به جاي آنها درخواست را ارسال می کنـد. نتیجه درخواست را نیز ابتدا خود دریافت و سپس بـراي برنامـه هـای کـاربردی ارسـال مـی کنـد. ایـن روش بـا جلوگیری از ارتباط مستقیم برنامه با سرورها و برنامه هاي کاربردی خارجی امنیـت بـالایی را تـامین مـی کنـد. از آنجایی که این دیوارههای آتش پروتکل های سطح کاربرد را می شناسند، لذا می توانند بر مبناي این پروتکلهـا محدودیت هایی را ایجاد کنند. همچنـین آنهـا مـی تواننـد بـا بررسـی محتـوای بـسته هـاي داده ای بـه ایجـاد محدودیتهاي لازم بپردازند. البته این سطح بررسی می تواند به کندي این دیوارههای آتش بیانجامـد. همچنـین از آنجایی که این دیواره های آتـش بایـد ترافیـک ورودي و اطلاعـات برنامـه هـاي کـاربردی کـاربر انتهـایی را پردازش کند، کارایی آنها بیشتر کاهش می یابد. اغلب اوقات پروکسی سرورها از دید کاربر انتهایی شفاف نیـستند و کاربر مجبور است تغییراتی را در برنامه خود ایجاد کند تا بتواند این دیواره هاي آتش را به کار گیرد. هـر برنامـه جدیدی که بخواهد از این نوع دیوارهآتش عبور کند، باید تغییراتی در پشته پروتکل دیوارهآتش ایجاد کرد.

عملکرد دیواره آتش پروکسی سرور بدین صورت می باشد که بطور مثال زمانی که یک کـامپیوتر مبـدا تقاضـای یک نشست (_Session) مانند FTP یا برقراري ارتباط TCP با سرویس دهنده وب را بـرای، کـامپیوتر ارسـال می کند، فرایند زیر اتفاق می افتد: پروکسی به نیابت از کامپیوتر مبدأاین نشست را برقرار می کند. یعنی طرف نشست دیـواره آتـش خواهـد بـود نـه کامپیوتر اصلی. سپس یک نشست مستقل بین دیواره آتش و کامپیوتر مقصد برقرار مـی شـود. پروکـسی داده هـا مبدا را می گیرد، سپس از طریق نشست دوم براي مقصد ارسال می نمایـد. بنـابراین در دیـواره آتـش مبتنـی بـر پروکسی هیچ نشست مستقیم رودرویی بین مبدا و مقصد شکل نمی گیرد، بلکه ارتباط آنها بوسیله یـک کـامپیوتر واسط برقرار می شود. بدین نحو دیواره آتش قادر خواهد بود بر روی داده های مبادله شده درخلال نشست اعمـال نفوذ کند. حال اگر نفوذ گر بخواهد با ارسال بسته هاي کنترلی خاص ماننـد SYN-ACK کـه ظـاهراً مجـاز بـه نظر می آیند واکنش ماشین هدف را در شـبکه داخلی ارزیابی کند، در حقیقـت واکـنش دیـواره آتـش را مـشاهده می کند و لذا نخواهد توانست از درون شبکه داخلی اطلاعات مهم و با ارزشی بدست بیاورد.

همچنین دیواره آتش پروکسی سرور به حافظه نسبتاً زیاد و CPU بسیار سریع نیازمندند و لـذا نـسبتاً گـران تمـام می شوند، بدین علت که این نوع دیواره آتش باید تمام نشست هاي بین ماشـین هـای درون و بیـرون شـبکه را مدیریت و اجرا کند، لذا گلوگاه شبکه محسوب می شود و هرگونه تاخیر یا اشکال در پیکربندی آن ، کـل شـبکه را با بحران جدی مواجه خواهد نمود.

3- دیواره آتش غیر هوشمند یا فیلترهاي Nosstatful pocket

این نوع دیواره آتش روش کار ساده اي دارند . آنها بر مسیر یک شبکه می نشینند و با استفاده از مجموعـه اي از قواعد ، به بعضی بسته ها اجازه عبور می دهند و بعضی دیگر را بلوکه می کنند. این تصمیم ها با توجه اطلاعـات آدرس دهی موجود در پروتکل هاي لایه شبکه ماننـد IP و در بعـضی مـوارد بـا توجـه بـه اطلاعـات موجـود در پروتکل هاي لایه انتقال مانند سرایندهاي TCP و UDP اتخاذ می شود.این فیلترها زمانی می توانند بـه خـوبی عمل کنند که فهم خوبی از کاربرد سرویس هاي مورد نیاز شبکه جهت محافظت داشته باشند. همچنین این نـوع دیواره آتش می توانند سریع باشند ، چون همانند پروکسی ها عمل نمی کنند و اطلاعاتی دربـاره پروتکـل هـاي لایه کاربرد ندارند.

4- دیواره آتش هوشمند یا فیلترهای Stateful packet

دیواره آتشی که قادر باشد مشخصات ترافیک خروجی از شبکه را براي مدتی حفظ کنند و بر اساس پردازش آنها مجوز عبور صادر نمایند ، دیواره آتش هوشـمند نامیـده می شوند. این فیلتر ها یا به نوعی دیواره آتش باهوش تر از فیلتر های ساده هستند. آنهـا تقریبـاً تمـامی ترافیـک ورودی را بلوکه می کنند ، اما می توانند به ماشین هاي پشتشان اجازه بدهند تا به پاسخگویی بپردازند. آنهـا ایـن کار را با نگهداری رکورد اتصالاتی که ماشین هاي پشتشان در لایه انتقـال مـی کننـد ، انجـام مـی دهنـد. ایـن فیلترها ، مکانیزم اصلی مورد استفاده جهت پیاده سازي دیواره آتش در شبکه مدرن هستند. این فیلترها میتواننـد ردپای اطلاعات مختلف را از طریق بسته هایی که در حال عبورند ، ثبت کنند. براي مثال شماره پورت هاي TCP و UDP مبدأ و مقصد ، شماره ترتیب TCP و پرچم هـای TCP . بـسیاری از فیلتر های جدید Stateful می توانند پروتکل های لایه کاربرد مانند FTP و HTTP را تشخیص دهند و لـذا می توانند اعمال کنترل دسترسی را با توجه به نیازها و سرعت این پروتکل ها انجام دهند.همچنین فیلتر های هوشمند باعث می شود بسته هایی که با ظاهر مجاز می خواهند درون شبکه راه پیـدا کننـد را از بسته های واقعی تمیز داده شوند. بزرگترین مشکل این فیلتر ها غبله بر تاخیر پردازش و حجم حافظـه مـورد نیاز می باشد، ولی در مجموع قابلیت اعتماد بسیار بالاتری دارند و ضریب امنیت شبکه را افـزایش خواهنـد داد؛ و بطور کل یک دیواره آتش یا فیلتر هوشمند پیشینه ترافیک خروجی را براي چند ثانیه آخر به خـاطر مـی سـپارد و بر اساس آن تصمیم می گیرد که آیا ورود یک بسته مجاز است یا خیر.؟

5- دیواره هاي آتش شخصی (Personal Firewall)

دیواره های آتش شخصی ، دیواره های آتشی هستند که بر روي رایانه های شخصی نصب می شوند. آنها بـراي مقابله با حملات شبکه ای طراحی شده اند. معمولاً از برنامه هاي در حال اجرا در ماشین آگاهی دارنـد و تنهـا PC ارتباطات ایجاد شده توسط این برنامه ها اجازه می دهند که به کار بپردازند.نصب یک دیـواره آتـش شخـصی بـر روي یک کامپیوتر بسیار مفید است ، زیرا سطح امنیت پیشنهادی توسط دیواره آتش شبکه را افـزایش مـی دهـد. از طرف دیگر از آنجایی که امروزه بسیاري از حملات از درون شبکه حفاظت شـده ، انجـام مـی شـوند ، دیـواره آتش شبکه نمی تواند کاری براي آنها انجام دهد و لذا یک دیواره آتش شخصی بسیار مفید خواهـد بـود. معمـولاً نیازی به تغییر برنامه جهت عبور از دیواره شخصی نصب شده (همانند پروکسی) نیست.

موقعیت یابی براي دیواره آتش

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

1- موقعیت و محل نصب از لحاظ توپولوژیکی :

معمولاً مناسب به نظر می رسد که دیواره آتش را در درگاه ورودي/خروجی شبکه خصوصی نصب کرد. ایـن امـر به ایجاد بهترین پوشش امنیتی برای شبکه خصوصی با کمـک دیـواره آتـش از یـک طـرف و جداسـازی شـبکه خصوصی از شبکه عمومی از طرف دیگر کمک می کند.

2- قابلیت دسترسی و نواحی امنیتی :

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

3- مسیریابی نامتقارن :

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

4- دیواره های آتش لایه ای :

در شبکه های با درجه امنیتی بالا بهتر است از دو یا چند دیواره آتش در مسیر اسـتفاده شـود.در ایـن حالـت اگـر اولین دیواره آتش با مشکلی روبرو گردد ، دومین دیواره آتش به کار خود ادامه می دهد. در این روش بهتـر اسـت از دیواره هاي آتش شرکت های مختلف استفاده گردد تا در صورت وجود یک اشکال نرم افزاری یا حفره امنیتـی در یکی از آنها ، سایرین بتوانند امنیت شبکه را تأمین کنند.

توپولوژی های دیواره آتش

برای پیاده سازی و پیکربندی دیواره آتش هـا در یـک شـبکه از توپولـوژی هـای متفـاوتی اسـتفاده مـی گـردد . توپولوژی انتخابی به ویژگی های شبکه و خواسته های موجود بستگی خواهد داشت.

توپولوژی نوع اول : دیواره آتش Dual-Homed

در این توپولوژی که یکی از ساده ترین و در عین حال متداولترین روش استفاده از یک دیواره آتش اسـت ، یـک دیواره آتش مستقیماً و از طریق یک خط Dial-up ، خطوط ISDN و یا مودم های کـابلی بـه اینترنـت متـصل می گردد. در توپولوژي فوق امکان استفاده از DMZ وجود نخواهد داشت.
دیواره آتش Dual-Homed

برخی از ویژگی های این توپولوژی عبارت از :
  • دیواره آتش مسئولیت بررسی بسته هاي اطلاعاتی ارسالی با توجه به قوانین فیلترینگ تعریـف شـده بـین شـبکه داخلی و اینترنت و برعکس را برعهده دارد.
  • دیواره آتش از آدرس IP خود براي ارسال بسته های اطلاعاتی بر روي اینترنت استفاده می نماید .
  • دارای یک پیکربندی ساده بوده و در مواردی کـه صـرفا” داراي یـک آدرس IP معتبـر ( Valid ) مـی باشـیم ، کارساز خواهند بود.

 

 

ادامه مطلب