اسکن پورت (Port Scanning) چیست و چه کاربردی دارد؟
اسکن پورت همانند این میماند که دستگیرهی چندین در را بچرخانید تا ببینید کدام درها باز و کدام قفل هستند. یک اسکنر پورت میتواند تمام پورتهای موجود در روتر یا فایروال را بررسی کند و ببیند کدام پورتها باز هستند تا بتواند در ادامه به کمک این موارد، ضعفهای احتمالی یک سیستم را شناسایی کند.
فهرست مطالب این نوشته پنهان کردن
- پورت چیست؟
- اسکن پورت چیست؟
- اسکن پورت چه کاربردی برای ما دارد؟
- اسکن پورت تا چه حد میتواند خطرناک باشد؟
- انواع اسکن پورت
پورت چیست؟
اسکن پورت چیست و چه کاربردی دارد؟
زمانی که یک دستگاه از طریق شبکه به دستگاهی دیگر متصل میگردد، یک پورت «TCP» یا «UDP» بین 0 تا 65535 به آن اختصاص داده میشود. با این حال برخی از پورتها نسبت به سایرین کاربرد بیشتری دارند. پورتهای «TCP» که بین پورت 0 تا 1023 قرار دارند پورتهای شناخته شدهای هستند که برای ارائهی خدمات اصلی سیستم مورد استفاده قرار میگیرند. برای مثال پورت 20 برای پروتکول انتقال فایل یا «FTP» استفاده میشود، پورت 22 برای اتصالهای امن یا «SSH» در محیط ترمینال کاربرد دارد. به همین شکل پورت 80 برای استاندارد HTTP در وب استفاده میشود و از پورت «443» نیز درگاه رمزنگرای شدهی «HTTPS» استفاده میکند. با توجه به این نکات، زمانی که شما به یک وبسایت ایمن متصل میشوید، مرورگر وب شما از طریق پورت 443 به سروس متصل میشود.
سرویسهای رایانه هیچ اجباری برای اجرا شدن بر روی این پورتهای مشخص ندارند. برای مثال میتوانید یک وبسایت HTTPS را بر روی پورت 32342 اجرا کنید یا یک سرور ایمن «SSH» را در پورت 65001 بالا بیاورید. این مواردی که مثال زده شد تنها به عنوان استنادارد پیشفرض استفاده میشوند.
اسکن پورت چیست؟
اسکن پورت فرایندی است که طی آن تمام پورتهای یک آدرس IP بررسی میشود تا پورتهای باز یا بستهی آن به دست بیاید. یک نرمافزار اسکن پورت از پورت صفر شروع کرده و تا پورت 65535 را مورد بررسی قرار میدهد. برای انجام این کار تنها کافی است که این نرمافزار به هر یک از پورتها یک درخواست فرستاده و منتظر یک پاسخ بماند. در سادهترین حالت، نرمافزار این کار را تک به تک برای هر پورت انجام میدهد. سرور مقصد نیز یک پاسخ ارسال کرده و به نرمافزار میگوید که آیا پورت باز است یا خیر. حال نرمافزار میتواند به کاربر راجع به پورتهای باز اطلاع دهد.
اگر در سر راه فایروال شبکه وجود داشته باشد ممکن است که جلوی درخواست را بگیرد و ارتباط آن را قطع کند، در نتیجه اسکن پورت میتواند روشی برای پیدا کردن پورتهای قابل دسترسی یا در معرض دید شبکه نیز باشد.
اسکن پورت چه کاربردی برای ما دارد؟
اسکن پورت چیست و چه کاربردی دارد؟
اسکن پورت یک روش خیلی موثر برای پیدا کردن آسیبپذیریهای یک سیستم است. یک اسکن پورت میتواند به یک مهاجم (هکر) بگوید که کدام پورتها در سیستم باز هستند که این مساله به او کمک میکند تا راهی برای حمله به سرور شما پیدا کند. برای مثال اگر یک فرد مهاجم در هنگام گوش دادن به پورت 22 شما متوجه یک سرور «Secure Shell» شود، میتواند از آن طریق تلاش کرده و کلمات عبور ضعیف شما را به دست بیاورد. اگر نوعی سرور دیگر بر اساس پورت دیگری کار کند، فرد مهاجم میتواند وارد آن شده و به دنبال باگی برای نفوذ به آن بگردد. برای مثال ممکن است نسخهی قدیمی یک نرمافزار در حال اجرا باشد که یک حفرهی امنیتی شناخته شده در آن وجود دارد.
علاوه بر این موضوع، از این اسکنها میتوان برای پیدا کردن خدماتی که بر روی پورتهایی به غیر از پورتهای پیشفرض خود اجرا شدهاند استفاده کرد. برای مثال اگر یک سروس SSH را به جای پورت 22 بر روی پورت 65001 اجرا کرده باشید، اسکن پورت میتواند این موضوع را پیدا کرده و مهاجم با دانستن این موضوع سعی میکند که به سرور SSH شما در آن پورت متصل شود. نمیتوانید فقط پورتهای پیشفرض را تغییر داده و تصور کنید که سیستم شما کاملا ایمن است، هرچند که این موضوع پیدا کردن سرور شما را کمی سختتر میکند.
اسکن پورت فقط توسط هکرها مورد استفاده قرار نمیگیرد. اسکن پورت راهی بسیار کاربردی برای پیدا کردن مشکلات امنیتی است. برای مثال یک سازمان میتوانید سیستمهای خود را اسکن کرده و سرویسهای خود که در معرض دید قرار دارند را شناسایی نموده و راهی برای ایمنسازی آنها پیدا کند.
اسکن پورت تا چه حد میتواند خطرناک باشد؟
اسکن پورت میتواند به یک مهاجم در پیدا کردن نقاط ضعف کمک کرده و راهی برای نفوذ به سیستم را نمایش دهد. البته این مساله تنها گام اول است. تنها با پیدا کردن یک پورت نمیتوان آن را مورد حمله قرار داد، بلکه پس از پیدا کردن یک پورت در حال اجرا باید به دنبال آسیبپذیریهای آن بود. خطر اصلی آسیبپذیریهای یک سیستم هستند.
قطعا در شبکهی خانگی خود یک روتر دارید که راه ارتباطی شما با اینترنت است. در این حالت یک شخص در اینترنت تنها میتواند پورتهای روتر شما را اسکن کند و این مساله به غیر از سرویسهایی که بر روی روتر در حال اجرا هستند چیزی را به او نمایش نمیدهد. در واقع روتر شما مانند یک فایروال عمل میکند. البته اگر پورتهای روتر خود را به یک دستگاه دیگر فوروارد کرده باشید، آن پورتها در معرض خطر حملات اینترنتی قرار خواهند داشت.
در مورد سرورها و شبکههای اداری، فایروالها میتوانند به گونهای طراحی شوند که عمل اسکن پورت را شناسایی کرده و ترافیک آدرس آن نرمافزار را ببندند. اگر تمام خدمات شما در اینترنت قابل مشاهده باشند ولی مسائل امنیتی در آنها رعایت شده باشد و حفرهی امنیتی نداشته باشید، حتی اسکن پورت هم برایتان خطری نخواهد داشت.
انواع اسکن پورت
اسکن پورت چیست و چه کاربردی دارد؟
در زمان اسکن پورت در ارتباطهای کامل TCP یا «TCP Full connection»، اسکنر یک پیام «SYN» (درخواست اتصال) به پورت مورد نظر ارسال میکند. اگر پورت باز باشد، سرور مقصد یک پیغام «SYN-ACK» (تایید درخواست اتصال) برای اسکنر میفرستد. حال اسکنر نیز پیام «ACK» (تایید) خود را ارسال میکند. این سیستم «TCP Connection Handshake» به معنای «دست دادن ارتباط TCP» نام دارد و در هنگام انجام این فرایند، اسکنر متوجه خواهد شد که امکان اتصال به این پورت وجود دارد.
اگر پورت بسته باشد، سیستم مقصد پاسخ «RST» (ریست) میدهد. اگر سیستم مقصد در شبکه وجود نداشته باشد نیز پاسخی دریافت نخواهد شد.
برخی از اسکنرها، اسکن خود را به صورت TCP نیمه باز یا «TCP half-open» انجام میدهند. در چنین حالتی به جای این که چرخهی کامل SYN سپس SYN-ACK و ACK صورت بگیرد، اسکنر تنها یک درخواست SYN ارسال کرده و منتظر پاسخ SYN-ACK یا RST میماند. دیگر نیازی به ارسال پیام ACK نهایی برای برقراری ارتباط کامل نیست، چراکه پیام SYN-ACK هر چیزی که اسکنر میخواهد بداند را به آن میگوید. این نوع ارتباط سریعتر است، چرا که بستههای کمتری در آن ارسال میشود.
نوع دیگری از اسکن این است که اسکنر بستههای ناشناخته و غیر معمولی را به مقصد ارسال میکند و در انتظار پیغام RST میماند تا اتصال بسته شود. اگر پیام RST دریافت شود، اسکنر متوجه خواهد شد که یک سیستم در آن آدرس قرار دارد و یک پورت مشخصی در آن بسته است. اگر بستهای دریافت نشود اسکنر متوجه خواهد شد که آن پورت به احتمال بسیار زیاد باز است.
یک راه اسکن پورت ساده این است که نرمافزار یک درخواست برای اطلاعات هر پورت به صورت تک به تک ارسال میکند که البته این نوع اسکنها به سادگی قابل تشخیص هستند و فایروالهای شبکه آنها را شناسایی کرده و جلویشان را میگیرند.
به همین خاطر است که برخی از روشهای اسکن پورت به طور متفاوتی کار میکنند. برای مثال یک روش اسکن پورت ممکن است محدودهی کوچکی از پورتها را اسکن کند یا ممکن است محدودهی بزرگی را در طی زمانی طولانی اسکن کند تا شناسایی آن سختتر باشد.