پروازی بر دنیای امنیت شبکه (قسمت هشتم) – فایروال (3)

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

فایروال ها عموما در قسمت‌های متفاوت شبکه توسعه داده میشوند تا بتوانند برای شبکه‌ سازمان ویا دیتاسنترها، امکان Network segmentation را فراهم آورند. فرآیندهایی که برای allow ویا block کردن ترافیک استفاده میگردد میتوانند شامل موارد زیر باشد:

  • Simple packet-filtering techniques
  • Proxy servers (also known as application layer gateway [ALG])
  • NAT
  • Stateful Inspection Firewalls
  • Transparent firewalls
  • Next-generation context and application-aware firewalls

بگذارید نگاهی نزدیکتر و دقیقتر به هریک از موارد بالا بی‌اندازیم...

Static Packet Filtering

این فیچر براساس لایه 3 و 4 مدل OSI طراحی و پیاده‌سازی میگردد. اگر بخواهیم مثال کوتاهی درمورد Packet Filtering مطرح کنیم؛ میتواند روتری را نام برد که در شبکه شما قرار دارد و تعدادی ACL برویش پیکربندی شده است و قرار است که از ورود ویا خروج یکسری ترافیک خاص جلوگیری کند ویا به آنها اجازه عبور بدهد. یکی از چالش هایی که در Packet Filtering با آن سروکار دارید، اینست که مدیر ویا مهندس شبکه باید بداند که دقیقا چه ترافیک‌هایی نیاز به عبور دارند و این در شبکه های بزرگ با تعداد کاربر بالا و سرورهای زیاد بسیار پیچیده و مشکل‌برانگیز است.

مزایا Packet Filtering:

  • بسیار ساده‌ طراحی شده است و بر اساس دو قانون Permit(اجازه) و Deny(عدم اجازه) کار میکند.
  • تاثیر بسیار ناچیزی بروی performanceـه شبکه شما دارد.
  • براحتی و بسادگی قابل پیاده‌سازی است.
  • بروی اکثر دیوایس‌ها قابل پیاده‌سازی است.
  • میتواند فیلترینگ ساده و کار راه‌اندازی را برای شما پیاده‌سازی کند، بدون آنکه نیاز به استفاده از فایروالهای سطح بالا داشته باشید.

معایب Packet Filtering:

  • ناتوان در جلوگیری از IP Spoofing ؛ اگر به عنوان مثال ACLـی برای یک IP خاص پیاده‌سازی کرده باشید و شخصی آن IP را جعل کند، ACL قادر به تشخیص این مورد نمیباشد.
  • ناتوان در جلوگیری از پکت های fragmented (قطعه قطعه) شده.(در مواردی این مورد امکان پذیر است، اما دقت تشخیص بسیار کمتر از حالت عادی میباشد)
  • حفظ و برقرار نگه‌داشتن ACL های بزرگ و طولانی، بسیار سخت و در مواردی غیرممکن است !
  • ـ Stateless میباشد (اطلاعاتی از session های ترافیک درحال عبور ذخیره نمیکند).(درمورد این موضوع در ادامه مقاله و در بخش Stateful بیشتر صحبت خواهیم کرد).
  • بسیاری از اپلیکیشن ها میتوانند براحتی آنرا بدلیل استفاده از پورت‌های گوناگون دور بزنند ویا گاهی هم نیاز است که برای یکسری اپلیکیشن خاص که بصورت dynamic تغییر پورت میدهد، یک رنج خاصی را در ACL باز نگه داریم و این میتواند برای شبکه خطرناک باشد.

در ادامه، بروی یک روتر Cisco میتوان از Extended ACL هم استفاده کرد که میتواند یکسری قوانین Matching لایه 3 و همچنین لایه 4ـی هم فراهم کند، مثل:

  • Source IP address
  • Destination IP address
  • Source port
  • Destination port
  • Protocol
  • TCP synchronization information

Application Layer Gateway

فایروال های لایه Application که همچنین به آنها Proxy firewalls ویا Application Gateways هم گفته میشود میتوانند در لایه‌های بالاتر از 3 هم عملکرد داشته باشند؛ بسیاری از این Proxy سرور ها، بروی خود دارای یک اپلیکشن و سیستم خاصی میباشند که request را دریافت میکنند و کلاینت را درحالت انتظار قرار میدهند، سپس درخواست را از طرف خودشان به سمت مقصد نهایی ارسال میکنند... بعد از دریافت پاسخ از مقصد نهایی، به کلاینت پاسخ میدهند.

یک Proxy firewall به عنوان یک واسط بین سرور و کلاینت نقش بازی میکند ؛ هیچ ارتباط مستقیمی بین کلاینت و سرور نهایی برقرار نمیشود. به دلیل اینکه یک Application Layer Gateway میتواند تا لایه 7ـه OSI عملکرد داشته باشد، این پتانسیل را دارد که توانایی بررسی و آنالیز دقیق ریزکاری ها و موارد پیچیده را در هر پکتی که دریافت میشود داشته باشد و هر Ruleـی که بخواهد را Match کند.

مزایا Application Layer Gateways:

  • قدرت کنترل و آنالیز دقیق ترافیک تا لایه 7
  • سخت‌کردن پروسه انجام حمله به یک end-device، چراکه این Proxy Serverـه واسط است که تصمیم میگیرد چه پکتی را ارسال و دریافت کند و اجازه ارتباط مستقیم نمیدهد.
  • میتواند loggingـه خیلی کامل و باجزئیاتی ارائه دهد.
  • میتواند بروی سخت‌افزارهای که بصورت اشتراکی وظایف گوناگون دیگری هم دارند پیاده‌سازی شود(مثل یک سرور).

معایب Application Layer Gateways:

  • نیاز به منابع پردازشی بالا
  • گاهی در بررسی یکسری پکت‌های خاص در لایه‌های بالا که مربوط به یکسری اپلیکیشن خاص میباشند ناتوان است
  • ممکن است برای یکسری از این نوع فایروالها، نیاز به نصب نرم‌افزار خاصی بروی کلاینت داشته باشیم

Stateful Packet Filtering

امروزه یکی از مهمترین تکنولوژیهای مورد استفاده در فایروال‌ها، Stateful Packet Filtering میباشد؛ چرا به آن Stateful میگویند؟ چون وضعیت تمام Session های درحال عبور از فایروال را به‌خاطر میسپارد. بذارید برای بهتر متوجه‌شدن موضوع، یک مثال را باهم بررسی کنیم... فرض کنید که امروز، من و شما به یک شهربازی میرویم؛ طی حضورمون در شهربازی ناگهان بخاطر میاوریم که چیزی‌را در ماشین جا گذاشته‌ایم و نیاز است که دوباره از شهربازی خارج شویم و آن‌چیز را از داخل ماشین برداریم و دوباره وارد شهربازی شویم. ممکن است متوجه این موضوع شویم که درصورت خروج از شهربازی، هنگام ورود میبایستی دوباره بلیت خریداری کنیم و هزینه مربوط به ورودی را بپردازیم... اما شخصی در قسمت نگهبانی به ما میگوید که بروی دست ما، یک مُهر که حاوی یک کد میباشد میزند و درزمان بازگشت به شهربازی، درصورت نشان دادن آن علامت و بررسی کد توسط آنها اجازه ورود رایگان به ما داده میشود چراکه نگهبانی لیستی از افرادی که بصورت موقت از شهربازی خارج‌شده اند تهیه میکند و درزمان بازگشت، بعداز بررسی‌های لازم و درصورت دُرُستی کد، به آنها اجازه ورود دوباره بدون نیاز به پرداخت دوباره را میدهد.

زمانی که کاربران شبکه داخلی سازمان شما میخواهند با یک منبع‌خاص در خارج از شبکه داخلی شما ارتباط برقرار کنند، پکت‌هایشان از Firewall عبور میکند؛ با استفاده دیوایسی که از Stateful Packet Filtering استفاده میکند، هنگام خروج پکتها، فایروال اطلاعات مربوط به آن پکت را در یک پایگاه‌داده(Stateful Database) ذخیره میکند(مثل نوشتن نام افرادی که بصورت موقت میخواستند از شهربازی خارج شوند در مثال بالا).

بصورت پیشفرض فایروال اجازه دسترسی و اتصال به شبکه داخلی را از طریق شبکه خارجی نمیدهد، مگراینکه آن ترافیک با یکی از اطلاعات داخل دیتابیس Match شود؛ یعنی فقط اجازه عبور به پکتهایی که از شبکه داخلی خارج شده‌اند داده میشود ولی دیگر Attacker ها اجازه عبور ترافیک خودرا ندارند(بدلیل اینکه اطلاعاتی از بسته‌هایشان در دیتابیس وجود ندارد).

مزایا Stateful Packet-Filtering:

  • میتواند به عنوان راهکار اصلی و Primary شما، جهت جلوگیری از ورود ترافیک ناخواسته به شبکه استفاده شود.
  • میتواند به‌راحتی بروی انواع Router ها و Firewall ها پیاده‌سازی گردد.
  • در مقایسه با Static Packet-filtering، ذاتا بصورت Dynamic عمل میکند.
  • سد دفاعی مناسیی در برابر حملات DoS و Spoofing برای شما فراهم می‌آورد.

معایب Stateful Packet-Filtering:

  • ممکن است نتواند حملات لایه Application را شناسایی و از آنها جلوگیری کند.
  • تمام پروتکل‌ها نمیتوانند به خوبی کنترل شوند چراکه بعضا دارای state information دقیقی نمیباشند؛ مانند User Datagram Protocol یا همان UDP و Internet Control Message Protocol یا همان ICMP.
  • بعضی اپلیکیشنها ممکن است بصورت داینامیک Port جدیدی را از طرف Server باز کنند و باتوجه با اینکه فایروال اطلاعاتی از آن پورت و ارتباط خاص در دیتابیس خود ندارد، اجازه اتصال و بازگشت ترافیک را فراهم نمیکند و کاربر نمیتواند ارتباط موردنظر خودرا برقرار کند.البته اگر Firewall از فیچر application layer inspection پشتیبانی کند، میتواند این مشکل را حل کند و اجازه برقراری ارتباط را صادر کند.
  • تکنولوژی Stateful به خودی‌خود از User authentication پشتیبانی نمیکند ؛ گرچه میتواند بروی فایروالی که از Stateful packet filtering استفاده میکند، User authentication راهم به عنوان یک فیچر additional در کنارش پیاده‌سازی کرد.

Application Inspection

یک Application Inspection firewall میتواند تمامی پروتکلهارا تا لایه 7 مدل OSI، بررسی و آنالیز کند؛ اما مانند یک Proxy Server در بین کلاینت و سرور عمل نخواهد کرد.

مزایا Application Inspection:

  • میتواند بصورت عمیقتر Conversation هارا بررسی کند و متوجه ایجاد Channel های داینامیک جدید که قرار است از طرف سرور ایجاد شوند، بشود.
  • از جزئیات و Detail های درحال انجام در لایه Application مطلع است.
  • به تنهایی میتواند از انواع حملات بیشتری نسبت به Stateful filtering ها جلوگیری کند.

Transparent Firewalls

در Transparent Firewalls، تمامی تکنولوژی هایی که در قبل معرفی کردیم نظیر Stateful filtering، application inspection و... وجود دارند، اما تفاوت بزرگ این‌است که تمامی آنها در لایه 2 پیاده‌میشوند. اکثر traditional firewall در لایه 3 عمل میکنند(مانند یک روتر)، به دلیل اینکه پیامهای عبوری از این دیوایس همگی لایه 3 ای میباشند. در یک فایروال لایه 3 هر اینترفیس دارای یک IP Address از یک شبکه جداگانه است و ترافیکی که از شبکه X به سمت شبکه Y میروند میبایستی از فایروال عبور کنند و قوانین و Rule های آنرا Pass کنند.

با Transparent Firewallها ما همچنان دارای 2 اینترفیس هستیم اما نمیتوانیم به آنها IP Addressـی Assign کنیم، این اینترفیس ها بیشتر به عنوان یک Bridge عمل خواهند کرد(یا یک سوئیچ که دارای 2 پورت در یک VLAN میباشد)؛ اگر ترافیک و Frame های یک Segment بخواهند به Segment دیگر برسند، میبایستی از این فایروال عبور کنند.

در قسمت بعدی، درمورد فایروالهای نسل جدید و NAT صحبت خواهیم کرد...

باما همراه باشید.