امنسازی و محدود کردن درگاههای پیشفرض بر روی فایروال
یکی از دغدغههای اصلی و مهم در زمینه امنیت شبکه های کامپیوتری، بحث بررسی وضعیت پورت (درگاه) های باز بر روی سیستمها و دستگاههای مختلفی است که در حال استفاده در سازمانها و مراکز مختلف می باشند. تقریبا تمامی افرادی که در زمینه شبکه، ارزیابی امنیتی و تست نفوذپذیری فعالیت میکند، حتماً با ابزاری مانند Nmap پورتهای فعال شبکه را اسکن کرده تا بتواند سناریوهای ممکن را در نظر گرفته و به امن سازی آن اقدام کند ( الزامات، فواید و نحوه انجام آزمون نفوذپذیری ). بحثی که در این مقاله با بهره گیری از این مرجع، سعی شده به آن پرداخته شود امن سازی این درگاهها در فایروال میباشد. رویکرد این مقاله امن سازی و فیلتر کردن درگاههای مختلف در Iptable است؛ به طوری که دور زدن فایروال با روشهای مختلف غیرممکن گردد. از مطالب این مقالات میتوان در بحث لاگگیری SIEM هم بهره برد و مفید واقع شود.
لازمه مطالعه ادامه این مقاله، برخورداری از دانش کافی در ارتباط با ساختار شبکه، پورت اسکن، نرم افزار Nmap و فایروال می باشد.
تجزیه و تحلیل TCP Scan
در این مرحله به اسکن و تجزیه و تحلیل نتایج این اسکن در سطح شبکه میپردازیم برای شروع این کار همانند عکس زیر در ترمینال و به روش TCP اقدام به اسکن آی پی مورد نظر میکنیم. در نرم افزار Nmap سوئیچ -sT به منظور TCP Connect میباشد.

از تصویر بالا میتوانیم مشاهده کنیم که پورت 22 اسکن شده و از نوع TCP Connect است. در نتیجه نشان داده شده که پورت 22 برای سرویس SSH باز است.
زمانی که شبکه در حال اسکن میباشد، و شما از نرم افزاری مانند Wireshark استفاده میکنید، باید به چند نکته حائز اهمیت اشراف کامل داشته باشید؛ از جمله ” flag، TTL در لایه 3، Data length “. در زیر برای راحتی بیشتر جدولی به همین منظور تهیه شده که تمامی موارد را درون خود جای داده است:

حال به سراغ تجزیه و تحلیل ترافیک شبکه در حال اجرای Nmap میرویم. در این عکس چند نکته قابل تأمل است؛ ابتدا ارسال بسته SYN که حاوی اطلاعات زیر میباشد:

- طول بسته: 60 ( طول داده به استثنای 14 بایت اترنت )
- طول عمر: 64 ( حداکثر TTL سیستم لینوکس در ارتباطات TCP )
روش مقابله با SYN در فایروال Iptables
همانطور که میدانیم جدالی بین مهاجم و مسئول امنیت شبکه وجود دارد. برای افزایش امنیت شبکه از فایروال و فیلترهای مختلفی استفاده میشود تا جلوی حملات تا حد امکان گرفته شود. در اینجا میخواهیم روش مقابله با بستههای SYN در اسکن TCP شبکه را بررسی کنیم.
دستور زیر برای مسدود کردن بستههای SYN کاربرد دارد :

وقتی که بسته SYN توسط فایروال در شبکه هدف reject شود، مهاجم قادر نخواهد بود پورت فعال در شبکه هدف را پیدا کند.
اکنون دوباره اقدام به اسکن TCP میکنیم، تا نتیجه را شاهد باشیم.

هنگامی که مهاجم نتواند با استفاده از اسکنTCP ، درگاه باز را پیدا کند، سعی میکند به روشهای پیشرفتهتری برای دور زدن فایروال و پیدا کردن پورتهای باز روی بیاورد که در ادامه به آن اشاره خواهیم کرد.
اسکن به روش FIN
یک بسته FIN برای خاتمه اتصال TCP بین پورت مبدا و مقصد به طور معمول پس از اتمام انتقال داده استفاده میشود. در عکس زیر از طریق سوئیچ -sF اقدام به اسکن میکنیم :

هنگامی که ترافیک شبکه را برای بستههای FIN مشاهده میکنیم، متوجه خواهیم شد “طول داده” 40 و “TTL” کمتر از 64 خواهد بود و علاوه بر این، دیگر از بستههای SYN برای برقراری ارتباط TCP با دستگاه هدف استفاده نمیشود.

اسکن به روش Null
روش دیگر برای دور زدن فایروال، اسکن NULL میباشد. Null Scan مجموعهای از بستههای TCP است که تعداد دنبالهای از صفرها (0000000) را در خود جای میدهد و از آنجا که هیچ پرچمی تنظیم نشده است، مقصد (هدف) نمیداند چگونه به درخواست پاسخ دهد. پس این بسته را رها میکند و هیچ پاسخی ارسال نمیشود، که در نتیجه نشان میدهد پورت مورد نظر باز است.

به طور مشابه، وقتی ترافیک شبکه را برای بسته NULL مشاهده میکنید، میتوانید متوجه شوید “طول داده” 40 و “TTL” در هر زمان کمتر از 64 میباشد، در اینجا همچنین هیچ بستهای از SYN برای برقراری ارتباط TCP با دستگاه هدف استفاده نمیشود.

اسکن به روش XMAS
روش بعدی برای دور زدن فایروال اسکن XMAS میباشد. این نوع اسکن برای دستکاری پرچمهای PSH، URG، و FIN از هدر TCP طراحی شده است. تنظیم این 3 پرچم پکت را همانند درخت کریسمس روشن میکند. واضح است که هیچ پکتی به جز XMAS Scan از این 3 پرچم به صورت یکجا استفاده نمیکند. بنابراین از مشاهدهی آن در ترافیک شبکه میتوان به راحتی نتیجه گرفت مهاجم در حال XMAS Scan میباشد.

به طور مشابه، هنگامی که ما ترافیک شبکه را برای اسکن XMAS مشاهده میکنیم، ترکیبی از پرچمهای FIN، PSH و URG را بدست میآوریم. در اینجا همچنین میتوانیم از “طول داده” 40 و “TTL” در هر زمان کمتر از 64 استفاده کنیم.
جمع بندی اولیه
در این مرحله دریافتیم که اتصال TCP با استفاده از سه شكل دستی 3 طرفه برقرار میشود و در صورت استفاده از قوانین مناسب فايروال براي جلوگيری از ارتباط TCP، مهاجم سپس به سراغ اسكنهای FIN، NULL و XMAS برای اتصال TCP میرود و از آنها استفاده میکند. تا به هدف خود که پیدا کردن درگاههای فعال و سرویسها میباشد برسد.

روش مقابله با FIN
ریجکت پکت FIN با استفاده از Iptables
در اینجا مسئول امنیت شبکه باید قانون جدیدی در فایروال اعمال کند تا جلوی اسکن شبکه با استفاده از پکت FIN را بگیرد.
برای مسدود کردن FIN Packet می توانیم از دستور زیر استفاده کنیم :

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

در حال حاضر تنها روشهای NULL و XMAS به مهاجم میتواند کمک کند تا درگاههای باز بر روی هدف را شناسایی کند؛ مگر اینکه مسئول شبکه مانع ترافیک ناشی از این نوع اسکنها شود. در تصاویر بالا مشاهده کردیم که در اسکنهای NULL و XMAS به باز بودن درگاه اشراف پیدا کردیم.
جلوگیری از اسکن NULL و Xmas
برای جلوگیری از اسکن NULL و Xmas در شبکه، به ترتیب زیر قوانین جدیدی در iptables تعریف میکنیم.

حال با استفاده از سوئیچهای مختلف Nmap اقدام به اسکن هدف میکنیم تا نتیجه را شاهد باشیم.


ریجکت Data-length با IPTables
همانطور که قبلاً در مورد ارتباط TCP صحبت کرده بودیم، براساس 3 عامل اصلی یعنی “پرچم” که در بالا نشان داده شد ، “TTL” که بعداً آن را نشان خواهیم داد و “طول داده” که می خواهیم نشان دهیم به شناسایی این ارتباط پرداخته میشود.
بنابراین اکنون وقتی مسئول شبکه مجدداً میخواهد شبکه خود را از اسکن TCP ایمن نگه دارد، میتواند به جای استفاده از فیلتر فایروال بر روی پرچمهای TCP، از قوانین فایروال برای “طول داده” از یک اندازه خاص استفاده کند و سپس ترافیک شبکه ورودی را برای اتصال TCP متوقف کند. میتوان از دستور زیر برای قرار دادن فیلتر بر روی “طول داده” استفاده کرد. به طور پیش فرض “60” طول داده برای اسکن TCP است که میتوانیم از جدول فوق الذکر که در ابتدای مقاله تهیه و ارائه شده بود این مطلب را تأیید کنیم.
عکس زیر قانونی در ارتباط با ریجکت کردن Data-Length در Iptables میباشد که میتوانیم از آن بهره ببریم.

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

همانطور که در عکس بالا شاهد هستیم با TCP Connect هم نتیجه مورد نظرمان بدست آمد و توانستیم جلوی مهاجم از اسکن و دستیابی به اطلاعات را بگیریم.
دور زدن Data-Length با استفاده از Stealth Scan
همیشه زمانی یک مهاجم خلاق به درب بستهای برخورد میکند به دنبال دور زدن و استفاده از یک راهکار جدید خواهد بود هنگامی که مهاجم نتواند درگاه باز را با استفاده از اسکن TCP [sT] پیدا کند، از روشهای دیگری برای دور زدن فایروال و اسکن کردن استفاده میکند :

در این سوئیچ نکتهای که شایان ذکر می باشد این است که به صورت پیش فرض برای TCP Connection مقدار data length عدد 44 در نظر گرفته شده است. اسکن Stealth بسیار شبیه به اسکن TCP است و همچنین به عنوان اسکن نیمهکاره شناخته میشود.

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