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

با سلام و عرض خسته‌نباشید خدمت تمام نتورک‌باز های عزیز ! در این مقاله میخواهیم وارد مباحث مربوط به فایروال ها بشویم، ببینیم که یک فایروال یا همان دیوارآتش چیست و چه کاربردها و وظایفی دارد؟ چه انواعی دارد؟ از چه راهکارها و تکنولوژی هایی استفاده میکند و اینکه چگونه یک فایروال مناسب را برای شبکه خود انتخاب و بدرستی از آن استفاده کنیم؟ و ده‌ها موارد دیگر.

لغت فایروال(Firewall)  عموما به سیستم‌ها ویا دیوایس‌هایی نسبت داده‌میشود که در بین 2 شبکه قابل‌اطمینان (Trusted) و غیرقابل‌اطمینان (Untrusted) قرار گرفته اند. داشتن دانش و درک مفهومی فایروال‌ها و تکنولوژی‌های مربوط به آنها برای یک متخصص امنیت شبکه، بسیار مهم میباشد! این دانش به شما کمک میکند که امنیت شبکه‌ی خودرا  به درستی و بهترین نحو ممکن، برقرار کنید.

مفاهیم و تکنولوژی‌ها

این مفاهیمی که میخواهیم درموردشان صحبت کنید، بروی IOS های روترها، جهت ارائه سرویس‌های مُکمل امنیتی و فایروالهای اختصاصی(که صرفا دیوایس هایی هستند که فقط برای ارائه ی تکنولوژی‌های امنیتی ساخته‌شده اند)، اعمال شده اند. در این بخش میخواهیم به مفاهیم مربوط به فایروال ها، توانایی‌ها و ضعف‌های آنها بپردازیم و ببینیم که چرا از فایروال ها در یکسری موقعیتهای خاص استفاده میشود. این موارد تقریبا برای تمامی شبکه هایی که امنیت برایشان یکی از نگرانیهایشان است، مورد استفاده قرار میگیرند.

تکنولوژیهای فایروال ها:

فایروال مفهومی است که توسط یک دیوایس ، یک گروه از دیوایس ها ویا یک نرم‌افزار درحال اجرا بر روی یک دیوایس مانند یک Host ویا یک Server ، قابل پیاده‌سازی میباشد. وظیفه ی اصلی یک فایروال ، Deny کردنه ترافیک ناخواسته از جریان درحال عبور میباشد و در یک شبکه این بدین معنی است که درحالته بسیار Basic ، اینکار توسط موارد ذیل قابل پیاده‌سازی میباشد:

  • یک روتر یا هر دیوایس لایه 3 ای که دارای Access list ویا دیگر متدهایی است که برای فیلتر ترافیکه درحال عبور استفاده میگردد.
  • یک سوئیچ که دارای دو VLAN میباشد و هیچ مسیریابی ای بین آنها انجام نمیگردد.(ترافیک ها کاملا از یکدیگر تفکیک میگردند - با استفاده از جدا کردنه شبکه ها !)
  • سیستم Host ویا سروری که از ورود یکسری ترافیک خاص جلوگیری میکند وهمچنین بروی ترافیک هایی که میتوانند ارسال شوند کنترل دارد.(یک مثال ساده از فایروال های نرم‌افزاری)

در ادامه، تعدادی از خواصی که عموما یک فایروال خوبِ درحالِ کار در شبکه دارا است، ذکر شده است :

  • میبایستی بتواند در برابر حملات ، مقاوم باشد: اگر یک فایروال در شبکه شما ، به هر طریقی قابل خنثی کردن باشد و یک حمله بتواند آنرا از دور خارج کند ، در نتیجه نتواسته است که پالیسی موردنظر شمارا بدرستی اجرا کند و شکست خورده است. اگر فایروال مورد حمله ی DOS قرار بگیرد، تا حدی که به نقطه ای برسد که نتواند دسترسی عادی راهم برای کاربران عادی شبکه فراهم کند، بازهم این مورد یک مشکل است و فایروال بازهم شکست خورده است. همچنین نبایستی دارای آسیب‌پذیری ای باشد که به یک Attacker به هر نحوی اجازه ی Modify کردن پیکربندی‌هارا بدهد ، چراکه این مورد هم یک شکست محسوب میشود!
  • ترافیکه بین شبکه ها ، باید از طریق فایروال عبور پیدا کنند: اگر بین 2 شبکه‌ی A و شبکه‌ی B ، چندین مسیر وجود داشته باشد و تعدادی از آن مسیر ها، تمامی ترافیک و کانکشنهایشان توسط فایروال کنترل میشوند و تعدادی مسیر دیگر وجود دارد که از فایروال عبور پیدا نمیکنند ، این مورد به ترافیک مخرب اجازه میدهد که بتواند از مسیری گذر کند که درآن فایروالی وجود نداشته باشد.پس ، اگر چندین مسیر وجود دارد ، بروی هریک ازآن مسیرها باید از یک Firewall Policy یکسان استفاده گردد و همچنین تمام پالیسی ها توسط یک methodology(روش تشخیص) یکسان ، اجرا شوند. (یعنی اینکه اگر از یک فایروال برای تمام مسیرها استفاده میشود ، که هیچ :-D ولی اگر از 2 فایروال گوناگون استفاده میشود، از یک روش تشخیصه یکسان ، برای تشخیص ترافیک مخرب استفاده کنند).
  • فایروال ، پالیسی های شرکت را اجرا خواهد کرد: متاسفانه در بسیاری از سازمان ها، بدون برنامه ریزی خاصی ، سریعا تصمیم به خریداری یک فایروال گرفته میشود و سپس آنرا در شبکه قرار میدهد ، سپس برای آن فایروال Rule ها و... مشخص میشود و روی فایروال apply میگردند. درصورتی که راهکار درست این است که شما در ابتدا بروی کاغذ ، بدانید که چه نیازهایی دارید ، چه چیزها و سرویس هایی را لازم دارم و کارهایی که فایروال شما باید انجام بدهد چیست ؟ چه ترافیکهایی باید عبور کنند و چه ترافیکهایی باید مسدود گردند و ده‌ها موارد دیگر ... سپس بر اساس این موارد ، فایروالی تهیه کنید که توانایی آنرا داشته باشد که تمام نیازهای شمارا برطرف کند.

استفاده از فایروال در شبکه ، چه توجیه هایی دارد ؟ (Firewall Justifications) - (به این صورت هم میتوان این عنوان را مطرح کرد: فواید استفاده از فایروال ها چیست ؟)

متاسفانه در ایران سازمان‌ها آنطور که باید به امنیت اهمیت زیادی نمیدهند و همیشه زمانی به فکر برقراری امنیت می‌افتند که ضربه ی قابل توجهی از آسیب‌پذیری‌هایشان به آنها وارد شود مانند ضررهای مالی،دزدی اطلاعات،از بین رفتن داده‌های مهم و... در ادامه ، تعدادی از توجیه هایی که میتوان برای استفاده از فایروال ها مطرح کرد ، ذکر شده اند:

  • در معرض خطر قرار گرفتن سیستم‌های حساس توسط افراد غیرقابل اعتماد (Exposure of sensitive systems to untrusted individuals): فایروال با مخفی کردن بسیاری از عملکردهای یک هاست ویا یک دیوایس در شبکه و اجازه ی برقراری حداقل connectivity (فقط اجازه ی برقراری ارتباط برای کانکشن های مشخص شدن و لازم) به آن سیستم، میزان درخطر قرار گرفتن آن سیستم را کاهش میدهد. به عنوان مثال ، فقط اجازه ی عبور ترافیک مربوط به Web ، به سمت یک Web-server در بخش DMZ شما داده میشود(یعنی اگر حتی سرویسهای دیگری هم بروی آن سرور قرار داشته باشند، آن سرویس ها برای کاربرانی که ترافیکشان از فایروال عبور خواهد کرد در دسترس نخواهد بود).
  • سوء استفاده از باگ‌های پروتکل‌ها (Exploitation of protocol flaws): شما میتوانید فایروال خودرا بصورتی کانفیگ کنید تا پروتکل هارا بازرسی (Inspect) کند و از تطبیق آن پروتکل‌ها با استانداردهای رسمی اطمینان حاصل شود.همچنین فایروال میتواند میزان زمان مشخصی را برای اجازه ی ارتباط در یک کانکشن فراهم کند و بروی آن کنترل داشته باشد و درصورت عبور از میزان زمان مشخص شده اجازه ی ارتباط را ندهد.(به عنوان مثال زمانی که طی میشود تا یک DNS Request ارسال شود و یک DNS Reply دریافت شود را 0.5ثانیه مشخص میکنیم).
  • کاربران غیرمجاز (Unauthorized users): با استفاده از متدهای احراز هویت ، فایروال میتواند بروی اجازه ی عبور ترافیک کاربران کنترل داشته باشد و به آنها اجازه ی دسترسی بدهد ویا جلوی آنهارا بگیرد.همچنین میتواند سیستم هایی مانند AAA را در شبکه اجرا کند تا دسترسی به تجهیزات شبکه راهم مدیریت کند.
  • داده‌های مخرب (Malicious data): یک فایروال میتواند یک داده ی مخرب درحال عبور را تشخیص دهد و جلوی آنرا از رسیدن به مقصد بگیرد.این عملکرد همچنین با استفاده از IPS های قابل پیاده‌سازی است.


با تشکر از وقتتون / موفق باشید.