آشنایی با مفاهیم و کاربردهای Port Scanning و Network Scanning

Port Scanning & Network Scanning

03 اسفند 1399
Port Scanning و Network Scanning چیست و چه کاربردی دارند؟

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

Network Scanning چیست؟

در دنیای امروزی تقریبا تمام شرکت ها و کسب و کارهای مدرن به یک شبکه نیاز دارند تا کارکنان بتوانند با یکدیگر ارتباط داشته و فایل های مورد نیاز را با هم به اشتراک بگذارند. یک تصور اشتباه این است که مجرمین سایبری تنها شبکه های بزرگ را هدف قرار می دهند اما بر اساس آمار اعلام شده توسط Verizon حدود ۴۳ درصد از تمام حملاتی سایبری روی کسب و کارهای کوچک متمرکز بوده اند.

برای مشاهده اینکه چه دستگاه هایی در شبکه شما حضور دارند و اینکه چه کارهایی را انجام می دهند و چه اطلاعاتی بین آن ها رد و بدل می شود باید شبکه خود را اسکن کنید. Network Scanning به سادگی به پروسه ای گفته می شود که در آن می توانید تمام دستگاه های فعال در شبکه خود را شناسایی کنید. این پروسه می تواند به صورت دستی یا با ابزارهای network scanner انجام شود اما پیشنهاد می شود از ابزارهای آماده استفاده کنید تا بهترین نتیجه را بگیرید. در این فرآیند برنامه یک ping یا یک packet را به هر دستگاه ارسال می کند و منتظر پاسخ می ماند. زمانی که پاسخ از دستگاه ها گرفته شد، پاسخ ها بررسی می شوند تا متوجه نفوذپذیری شبکه یا رفتار غیر عادی آن شود.

اگر شبکه شما یک شبکه IP باشد، فرآیند اسکن معمولا بدین صورت انجام می شود که یک ping به تمام IP های ممکن ارسال می شود و منتظر پاسخ می مانیم. البته شما می تواند انواع دیگری از اسکن به نام ARP را نیز انجام بدهید اما همانطور که گفتم برای پیدا کردن تمام دستگاه ها در یک شبکه باید از ابزارهایی استفاده کنید که این کار را به صورت خودکار برایتان انجام می دهند.

کاربرد Network Scanning

هدف Network Scanning مدیریت و نگهداری و همچنین تامین امنیت سیستم با استفاده از داده های به دست آمده از اسکن می باشد. کاربرد های network scan بسیار زیاد است؛ به طور مثال با استفاده از آن می توانیم خدمات موجود در شبکه را پیدا کنیم، سیستم های فیلتر را ببینیم، سیستم عامل های موجود را تشخیص بدهیم و نهایتا از شبکه در مقابل حملات احتمالی محافظت کنیم. همچنین با استفاده از Network Scanning می توانیم سلامت کلی شبکه را نیز بسنجیم.

همچنین استفاده از Network Scanning یک تصویر کامل از تمام شبکه را به مدیران شبکه ارائه می دهد تا همیشه آن را زیر نظر داشته باشند بنابراین پیشنهاد می کنم اگر یک شبکه خصوصی دارید حتما با استفاده از ابزارهای مدیریت شبکه و اسکن آن، به امنیت شبکه توجه داشته باشید.

ابزارهای رایگان مدیریت شبکه

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

  • SolarWinds Port Scanner: این ابزار قوی روی Windows Server نصب می شود و بازه ای از IP های مختلف را اسکن می کند. با استفاده از این ابزار می توانید بازه خاصی از پورت های شبکه را نیز اسکن کنید. نکته مثبت این برنامه، استفاده از multi-threading است که سرعت آن را بالا می برد.
  • ManageEngine OpUtils: این نرم افزار پکیجی از ابزارهای نظارت بر شبکه است و دارای اسکنر شبکه بر اساس ping و یک MAC address resolver نیز می باشد. این نرم افزار برای windows server و linux طراحی شده است.
  • Nmap: یک برنامه رایگان دیگر که مجموعه ای از برنامه های مدیریت شبکه را در خود دارد. این برنامه ها شامل برنامه های مدیریت IP و اسکن پورت نیز می باشند و برای سیستم عامل های Windows و macOS و Linux طراحی شده اند.
  • Advanced IP Scanner: این برنامه بیش از 53 میلیون کاربر دارد و ابزارهای مختلفی را برای اسکن IP و پورت های شبکه در اختیار شما قرار می دهد. این ابزار فقط در ویندوز نصب می شود.

البته ابزارهای بسیار زیاد دیگر نیز وجود دارند. به طور مثال ابزارهای Angry IP Scanner و Free IP Scanner by Eusing  و NetCat و LanSweeper IP Scanner  و MyLanViewer Network/IP Scanner و Slitheris Network Discovery نیز از ابزارهای محبوب بین کاربران هستند.

Passive Network Scanning

چیزی که از اسکن شبکه تا به حال توضیح دادم  active Network Scanning یا اسکن فعال نام داشت اما نوع دیگری از اسکن شبکه به نام passive Network Scanning نیز وجود دارد. passive scanning یا همان packet sniffing به ضبط و ردیابی ترافیک شبکه اشاره دارد که در قالب data packet ها انجام می شود. اگر بخواهید ترافیک را در سطح packet در شبکه خود ردیابی کنید باید در دستگاه های شبکه سنسور هایی کار بگذارید و با استفاده از ابزارهای مناسب داده های packet ها را به داده های واقعی و قابل خواندن تبدیل کنید. این روش از Network Scanning دارای محدودیت های نیز می باشد. به طور مثال در این روش فقط دستگاه هایی شناسایی می شوند که با یکدیگر تعامل داشته باشند بنابراین اگر دستگاهی با هیچ دستگاه دیگری در شبکه تعامل نکند، قابل شناسایی نیست. در صورتی که در روش active Network Scanning تمام دستگاه ها شناسایی می شوند حتی اگر ساکت باشند و تعاملی نکنند. چرا؟ به دلیل اینکه در این روش packet یا ping ای را مستقیما به تمام دستگاه ها ارسال می کردیم و پاسخشان را دریافت می کردیم.

Port چیست؟

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

ISP ها (شرکت های ارائه دهنده اینترنت مانند مخابرات، صبانت، شاتل و غیره) از آدرس IP به همراه Port برای کامل کردن درخواست ها استفاده می کنند. بازه پورت های موجود در دنیای کامپیوتر ها از 0 تا 65536 است. از بین این بازه پورت های 0 تا 1023 به طور خاص برای استفاده از اینترنت طراحی شده اند اما می توانند استفاده های دیگری نیز داشته باشند. شاید بپرسید که وظیفه این پورت ها توسط چه کسی تعیین می شود؟ کار انتساب این پورت ها به بخش خاصی از دنیای کامپیوترها معمولا کار Internet Assigned Numbers Authority یا «مرجع واگذاری اعداد در اینترنت» است که به صورت خلاصه با نام های IANA یا «آیانا» نیز شناخته می شود. برخی از پورت های بسیار مشهور در دنیای وب به شرح زیر هستند:

  • پورت 20 از UDP: برای پروتکل FTP و انتقال فایل ها است.
  • پورت 22 از TCP: برای پروتکل Secure Shell یا SSH است که معمولا برای login شدن در یک سیستم، انتقال فایل و port forwarding استفاده می شود.
  • پورت 53 از UDP: برای Domain Name System یا همان DNS است که نام وب سایت ها را به IP تبدیل می کند.
  • پورت 80 از TCP: برای پروتکل HTTP است و شاید معروف ترین پورت در دنیا باشد.

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

پورت های دیگر از 1024 تا 49151 به نام پورت های ثبت شده یا registered ports شناخته می شوند یعنی توسط شرکت های خصوصی خریداری شده اند و برای برنامه های خود از آن استفاده می کنند. پورت های 49151 تا 65536 نیز پورت های پویا و خصوصی هستند و تقریبا همه افراد می توانند از آن ها استفاده کنند.

Port Scanning چیست؟

Port Scanning روشی برای اسکن کردن یک شبکه است تا بفهمیم کدام پورت ها باز هستند و می توانند اطلاعات را ارسال کرده یا اطلاعاتی را دریافت کنند. البته Port Scanning روشی برای ارسال packet ها به پورت های خاص و تحلیل پاسخ آن پورت ها برای شناسایی نقاط ضعف امنیتی نیز می باشد.

برای انجام این کار به فرآیندی به نام host discovery نیاز است که در اصل یک network scan است. در این فرآیند لیستی از میزبان ها (host) شناسایی شده و آدرس IP آن ها پیدا می شود. با استفاده از Port Scanning (دقیقا مانند Network Scanning) می توانیم پورت های آزاد شبکه را شناسایی کنیم. طبیعتا هر پورت آزادی که بلا استفاده باشد یک خطر امنیتی جدی برای آن شبکه خواهد بود. من در قسمت Network Scanning برایتان دو روش اسکن active و passive را توضیح دادم. زمانی که پورت یک شبکه توسط firewall محافظت نشده باشد چه اتفاقی می افتد؟ اگر فرد خرابکار از active scanning استفاده کند می تواند این پورت را شناسایی کند و می داند که این پورت کاملا آزاد است. از اینجا به بعد می تواند انواع روش های مختلف برای نفوذ به سیستم شما را اجرا کند.

زمانی که شبکه به طور کامل اسکن شود و لیستی از میزبان ها (hosts) آماده شده باشد، فرآیند Port Scanning آغاز می شود. در این فرآیند تمام میزبان ها را بررسی کرده و پورت های آنان را اسکن می کنیم تا شاید پورتی باز و محافظت نشده را شناسایی کنیم. اسکن شبکه و پورت مانند داشتن نقشه یک ساختمان است. افراد خبره به نگاه به نقشه ساختمان می توانند مشکلات ساختمان و خطرات موجود را شناسایی و رفع کنند اما همین نقشه در دست دزد ها می تواند راه های نفوذ و فرار از ساختمان را به آن ها نشان دهد. به همین دلیل است که اکثر مجرمان سایبری قبل از حمله به یک شبکه، آن را اسکن می کنند تا درکی کلی از شبکه و قوانین آن را داشته باشند. این مسئله وظیفه شما  مدیران شبکه را دو چندان می کند تا حتما شبکه را اسکن کرده و از نفوذپذیری های ممکن (قبل از هکر ها) آگاه شوید.

پروتکل های Port Scanning

پروتکل های رایج برای انجام اسکن پورت معمولا TCP یا transmission control protocol و همچنین UDP یا user datagram protocol هستند. هردوی این پروتکل ها برای انتقال اطلاعات در دنیای وب طراحی شده اند اما مکانیسم عمل آن ها کمی متفاوت است.

پروتکل TCP یک پروتکل دو طرفه و قابل اعتماد است که برای ارسال کامل اطلاعات به وضعیت مقصد بستگی دارد (با فعال شدن مقصد داده دریافت خواهد شد) در حالی که UDP بدون اتصال بین دو طرف و غیر قابل اعتماد است. چرا؟ به دلیل اینکه فعال بودن یا نبودن مقصد برای UDP اهمیتی ندارد بنابراین هیچ تضمینی وجود ندارد که داده به مقصد برسد. یک مثال ساده از UDP بازی های آنلاین یا سرویس های استریم داده هستند. مثال ساده ای برای TCP سرویس ایمیل شما یا HTTP است. هر چیزی که مانند SMS مخصوص مقصد خاصی باشد از نوع TCP است و هر چیزی که لزوما وابسته به مقصد نیست، مانند رادیو، از نوع UDP است. البته این ها فقط مثال هایی برای درک بهتر هستند و بحث پیچیده تر است.

تکنیک های اسکن پورت

بر اساس دو پروتکل UDP و TCP تکنیک های مختلفی برای اسکن پورت در شبکه وجود دارد. من در این قسمت به سه تکنیک مشهور اشاره می کنم:

Ping scans: ساده ترین تکنیک اسکن پورت Ping Scan است. Ping کردن یعنی ارسال یک packet به یک سیستم در شبکه تا بدانیم آیا می توانیم داده ها را بدون خطا به یک IP خاص ارسال کنیم یا خیر. زمانی که از Ping Scan صحبت می کنیم در واقع در مورد درخواست هایinternet control message protocol یا به اختصار ICMP صحبت می کنیم. ما برای مشخص کردن پورت های باز باید یک سری طولانی از ICMP ها را به سرور های یک شبکه ارسال کنیم تا ببینیم از کدام یک از این سرور ها پاسخی را دریافت خواهیم کرد. مدیران شبکه می توانند ping scan را با استفاده از یک firewall کاملا غیرفعال کنند و اگر چنین کاری را انجام بدهند شناسایی پورت ها با استفاده از ping scan غیرممکن می شود. البته بعضی از مدیران شبکه این کار را انجام نمی دهند چرا که ping scan یکی از روش های خودشان برای عیب یابی شبکه هایشان است.

Half-open Scan یا SYN Scan: کلمه SYN مخفف synchronize است و اسکن های SYN یا Half-Open (نیمه باز) روشی است که به هکرها اجازه می دهد بدون ساخت ثبت یک اتصال کامل به وضعیت پورت های شبکه دسترسی پیدا کنند. با استفاده از این متد فقط یک پیام SYN را ارسال می کنیم اما اتصال را کامل نمی کنیم بنابراین مقصد (سرور) گیج می شود. این تکنیک معمولا توسط هکر ها برای ناشناخته ماندن استفاده می شود.

XMAS Scan: اسکن های XMAS مخفی تر از دیگر اسکن های ذکر شده در این بخش هستند و شناسایی آن ها برای Firewall ها سخت تر است. برای توضیح این تکنیک یکی از روش های انجام آن را برایتان مثال می زنم. ما در پروتکل های اتصال چیزی به نام FIN packet داریم. زمانی که یک اتصال TCP سه طرفه انجام شده و داده ها به طور کامل انتقال می یابند پیامی در قالب FIN Packet ها ارسال می شود که متن no more data is available from the sender را دارد. در اسکن های XMAS ما packet های داده را به صورت کامل (به همراه FIN Packet) ارسال می کنیم که یعنی منتظر پاسخ نخواهیم بود. یادتان باشد که FIN Packet یعنی اتصال به پایان رسیده است بنابراین نیازی به ارسال پاسخ از سمت سرور نیست. اگر هیچ اتفاقی نیفتد (هیچ پاسخی از سرور نگیریم) یعنی پورت مورد نظر ما باز است اما اگر پورت بسته باشد یک پاسخ RST را از سمت سرور دریافت می کنیم. این نوع از اسکن ها به ندرت توسط firewall و دیگر ابزارهای نظارتی شبکه شناسایی می شوند بنابراین هکرها به آن علاقه زیادی دارند.

وضعیت های پورت

سوال بعدی ما این است که پس از اسکن کردن پورت ها چه اطلاعاتی به دست می آوریم؟ احتمالا شما هم حدس می زنید که با اسکن کردن پورت می توانیم وضعیت آن پورت روی سرور را مشخص کنیم. این وضعیت می تواند یکی از سه حالت زیر باشد:

پورت باز (open port): زمانی که سرور با یک packet پاسخ ما را بدهد یعنی آن پورت باز است، یا به عبارتی یعنی سرور روی آن پورت خاص داده قبول کرده و از آن داده ارسال می کند. همچنین در این حالت از هر پروتکلی که استفاده کرده باشید، به احتمال زیاد روی آن پورت باز است. به طور مثال اگر اسکن پورت را با TCP انجام داده اید و پورت 22 باز بوده است یعنی پورت 22 روی TCP باز است گرچه ممکن است روی پروتکل های دیگری نیز باز باشد. زمانی که مجرمان سایبری یک پورت باز را پیدا می کنند یعنی به موفقیت رسیده اند. کار مدیران شبکه و IT این است که روی پورت های باز نظارت فعال داشته باشند و با استفاده از Firewall و ابزارهای دیگر دسترسی بیجا به آن ها را قطع کنند (بدون اینکه دسترسی کاربران عادی را قطع کنند).

پورت بسته (closed port): پورت بسته یعنی سرور درخواست ما را دریافت کرده است اما هیچ سرویسی روی آن پورت فعال نیست یا به اصطلاح به آن پورت گوش نمی دهد (listen نمی کند). پورت های بسته هنوز قابل دسترسی هستند و حداقل می توانند نشان دهند که میزبان یک IP خاص را دارد. از آنجایی که ممکن است پورت های بسته به پورت های باز تبدیل شوند، مدیران IT و شبکه باید بر این پورت ها نیز نظارت داشته باشند. معمولا توصیه می شود که پورت های بسته را نیز با Firewall غیرفعال کنید تا به filtered port یا پورت های فیلتر شده تبدیل شوند.

پورت فیلتر شده (filtered port): پورت های فیلتر شده نشان می دهند که packet درخواست ارسال شده است اما میزبان پاسخی نداده و به آن پورت نیز گوش نمی دهد. اگر چنین اتفاقی بیفتد یعنی پورت مورد نظر توسط یک firewall بلاک شده است. اگر packet ها به هدف مقصد خود نرسند، هکر ها نیز نمی توانند اطلاعات بیشتری را راجع به آن میزبان به دست بیاورند. اگر تلاش کنید که با پورت های فیلتر شده تعامل داشته باشید معمولا پیامی مانند destination unreachable (مقصد غیر قابل دسترس است) یا communication prohibited (ارتباط مجاز نیست) را دریافت خواهید کرد.

جنبه قانونی اسکن شبکه و پورت

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


منبع: وب‌سایت avast

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.