RDP چیست؟ آشنایی با پروتکل ریموت دسکتاپ، نحوه کارکرد و نکات امنیتی

در این مقاله میخوانید

RDP چیست؟

RDP (Remote Desktop Protocol) ریموت دسکتاپ، یک فناوری است که تجربه کامل دسکتاپ، از جمله صدا، کلیپ‌بورد، چاپگرها، و انتقال فایل‌ها را با گرافیک‌های با وضوح بالا (که می‌تواند بر اساس پهنای باند کاهش یابد) برای یک کاربر راه دور امکان‌پذیر می‌سازد.

در سال ۱۹۹۸، مایکروسافت Windows Terminal Server را به عنوان یک افزونه برای سیستم‌عامل Windows NT Server 4.0 معرفی کرد. این قابلیت امکان دسترسی به دسکتاپ از راه دور را از طریق یک شبکه با استفاده از TCP/IP فراهم کرد. هر نسخه‌ای از سیستم‌عامل ویندوز که پس از آن منتشر شد، این قابلیت را نیز شامل می‌شد، که با انتشار Windows XP (تقریباً در اکتبر ۲۰۰۱) همگیر شد. از زمان انتشار XP، RDP به استاندارد مورد استفاده برای دسترسی به جلسات راه دور برای سیستم‌های عامل ویندوز دسکتاپ و سرور تبدیل شده است.

در طول ۲۰ سال گذشته، RDP نسخه‌های متعددی را تجربه کرده و با افزودن قابلیت‌های جدید، به یک پروتکل دسترسی از راه دور قابل اطمینان تبدیل شده است. البته در این مدت RDP  با مشکلات امنیتی هم نیز مواجه بوده است.

ریموت دسکتاپ

نحوه کار پروتکل ریموت دسکتاپ

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

RDP از یک کانال شبکه اختصاصی برای ارسال و دریافت داده بین دو دستگاه متصل استفاده می‌کند. این کانال از طریق پورت پیش فرض  TCP/IP ۳۳۸۹ برقرار می‌شود.

نحوه کار RDP

نمودار بالا به توضیح سناریوهای معمول برای اتصال کمک می‌کند. یک کاربر می‌تواند از طریق اینترنت با استفاده از یک RDP Client به یک ماشین راه دور در محل دیگری متصل شود. در حالی که این اتصال‌ها بر اساس ارتباط پروتکل ریموت دسکتاپبر روی HTTPS (خطوط آبی و سیاه) است در مقایسه با اجرای مستقیم پروتکل RDP (خط نارنجی) خطر به میزان قابل توجهی کاهش می‌یابد. این کاهش خطر شامل کنترل‌های احراز هویت اضافی در RD Gateway یا RD Web Access Server است که به عنوان قوانین سیاست امنیتی تعریف می‌شوند.

با این حال، بالاترین خطر، در معرض قرار گرفتن RDP در اینترنت، پورت 3389، و اجازه عبور مستقیم آن از طریق فایروال‌ها به یک هدف در شبکه داخلی است. این کار معمول است و باید به طور کامل از آن اجتناب شود. به این ترتیب، اگر با استفاده از یک سرور Citrix یا Microsoft Windows Terminal Services آشنا هستید، احتمالاً همیشه از RDP استفاده می‌کنید – و ممکن است حتی از آن آگاه نباشید. استفاده از یک دروازه دسکتاپ از راه دور (RD Gateway) یا روش دسترسی وب RD، خطرات مشابهی را نیز به همراه دارد.

اجزای کلیدی RDP

  1. کلاینت RDP

کلاینت RDP نرم‌افزاری است که بر روی دستگاه کاربر نصب می‌شود و به او اجازه می‌دهد به یک سرور یا دسکتاپ از راه دور متصل شود. این نرم‌افزار معمولاً به عنوان “Remote Desktop Connection” یا “RDP Client” شناخته می‌شود و در اکثر نسخه‌های ویندوز به صورت پیش‌فرض موجود است. کلاینت RDP می‌تواند بر روی سیستم‌عامل‌های مختلفی از جمله ویندوز، مک، لینوکس و حتی دستگاه‌های موبایل نصب شود.

  1. سرور RDP

سرور RDP نرم‌افزاری است که بر روی دستگاه راه دور نصب می‌شود و ارتباطات ورودی از کلاینت‌های RDP را مدیریت می‌کند. این نرم‌افزار معمولاً در سیستم‌عامل‌های ویندوز به صورت پیش‌فرض فعال است و به کاربران اجازه می‌دهد تا به دسکتاپ‌ها و منابع شبکه‌ای دسترسی پیدا کنند.

  1. پروتکل RDP

پروتکل RDP بر روی TCP/IP کار می‌کند و از پورت 3389 به عنوان پورت پیش‌فرض استفاده می‌کند. این پروتکل برای انتقال داده‌ها بین کلاینت و سرور از رمزگذاری استفاده می‌کند تا امنیت ارتباطات را تضمین کند. RDP شامل مکانیزم‌های فشرده‌سازی داده‌ها و بهینه‌سازی پهنای باند است که به کاهش زمان تأخیر و بهبود کارایی کمک می‌کند.

مراحل عملکرد پروتکل ریموت دسکتاپ

  1. برقراری ارتباط

    • اتصال TCP/IP: کلاینت RDP ابتدا یک اتصال TCP/IP به سرور RDP برقرار می‌کند، که معمولاً از پورت 3389 استفاده می‌شود. این اتصال از طریق اینترنت یا یک شبکه محلی (LAN) می‌تواند برقرار شود.
    • احراز هویت: پس از برقراری اتصال، فرآیند احراز هویت آغاز می‌شود. کاربر باید با وارد کردن نام کاربری و رمز عبور معتبر خود احراز هویت شود. این اطلاعات به سرور RDP ارسال می‌شود و سرور بررسی می‌کند که آیا کاربر مجاز به دسترسی به منابع است یا خیر.
  2. برقراری جلسه RDP

    • راه‌اندازی جلسه: پس از احراز هویت موفق، یک جلسه RDP بین کلاینت و سرور ایجاد می‌شود. در این مرحله، سرور اطلاعات مربوط به دسکتاپ و برنامه‌های در حال اجرا را به کلاینت ارسال می‌کند.
    • انتقال داده‌ها: کلاینت و سرور از طریق پروتکل RDP داده‌ها را بین یکدیگر تبادل می‌کنند. این داده‌ها شامل اطلاعات مربوط به صفحه‌نمایش، ورودی‌های کیبورد و ماوس، و سایر رویدادها می‌شود. سرور صفحه‌نمایش را به‌روزرسانی کرده و آن را به کلاینت ارسال می‌کند، و کلاینت نیز ورودی‌های کاربر را به سرور ارسال می‌کند.
  3. پایان جلسه RDP

    • قطع ارتباط: زمانی که کاربر تصمیم به قطع اتصال می‌گیرد، جلسه RDP به پایان می‌رسد. در این مرحله، سرور تمامی منابع اختصاص داده شده به جلسه را آزاد کرده و اتصال TCP/IP را قطع می‌کند.

موارد استفاده از پروتکل دسکتاپ از راه دور

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

در محیط‌های کاری

  • مدیریت سرورها: ادمین‌های سیستم از RDP برای مدیریت سرورهای از راه دور استفاده می‌کنند. این کار شامل نصب نرم‌افزار، پیکربندی سیستم، رفع مشکلات و انجام سایر وظایف مدیریتی است.
  • پشتیبانی فنی: تیم‌های پشتیبانی فنی از RDP برای ارائه خدمات پشتیبانی به کاربران از راه دور استفاده می‌کنند. آن‌ها می‌توانند به صورت مستقیم به کامپیوتر کاربر متصل شده و مشکل را عیب‌یابی و رفع کنند.
  • کار از راه دور: با استفاده از RDP، کارمندان می‌توانند از هر مکان با اتصال به کامپیوتر اداری خود، به کار خود ادامه دهند. این امر در دوران همه‌گیری و دورکاری بسیار پرکاربرد شد.
  • آموزش از راه دور: مدرسان می‌توانند از RDP برای ارائه آموزش‌های عملی به دانشجویان از راه دور استفاده کنند. آن‌ها می‌توانند به صورت مستقیم به کامپیوتر دانشجو متصل شده و مراحل انجام کار را نشان دهند.

در سایر زمینه‌ها

  • دسترسی به فایل‌ها و برنامه‌ها: اگر فایلی را روی کامپیوتر دیگری فراموش کرده‌اید، می‌توانید با استفاده از RDP به آن دسترسی پیدا کرده و فایل مورد نظر را کپی کنید.
  • بازی از راه دور: برخی از بازی‌ها از RDP پشتیبانی می‌کنند و شما می‌توانید از راه دور به کامپیوتر بازی خود متصل شده و بازی کنید.
  • کنترل دستگاه‌های خانگی: برخی از دستگاه‌های خانگی هوشمند مانند کامپیوترهای خانگی، تلویزیون‌ها و دستگاه‌های پخش رسانه، از RDP پشتیبانی می‌کنند. شما می‌توانید از طریق RDP به این دستگاه‌ها متصل شده و آن‌ها را کنترل کنید.

خطرات امنیتی RDP و راهکارهای مقابله با آن

RDP (پروتکل دسکتاپ از راه دور) ابزاری بسیار مفید برای دسترسی از راه دور به سیستم‌ها است، اما در عین حال، یک هدف جذاب برای مهاجمان سایبری نیز می‌باشد. در صورت عدم رعایت اصول امنیتی، این پروتکل می‌تواند به یک نقطه ضعف بزرگ در سیستم‌های شما تبدیل شود.

خطرات اصلی RDP

  • حملات بروت فورس (Brute Force): مهاجمان می‌توانند با استفاده از ابزارهای خودکار، رمزهای عبور را حدس بزنند و به سیستم نفوذ کنند.
  • حمله‌های DDoS: حملات انکار سرویس توزیع‌شده می‌توانند دسترسی به سیستم را برای کاربران مجاز مسدود کنند.
  • اکسپلویت‌های نرم‌افزاری: مهاجمان می‌توانند از آسیب‌پذیری‌های موجود در RDP و سیستم عامل بهره‌برداری کنند.
  • جاسوسی: مهاجمان می‌توانند با دسترسی به سیستم، اطلاعات حساس را سرقت کنند.
  • کنترل از راه دور: مهاجمان می‌توانند سیستم را به طور کامل کنترل کرده و به آن آسیب برسانند.

بهترین روش حفظ امنیت پروتکل ریموت دسکتاپ

در شرایط ایده‌آل و کنترل‌شده محیطی، پروتکل دسکتاپ از راه دور عالی عمل می‌کند. با این حال، ایمن‌سازی RDP برای جلوگیری از جلسات غیرمجاز، ربودن، دسترسی نامناسب، سوء استفاده‌ها، ارتقای امتیازات دسترسی و غیره به سطحی از بلوغ امنیت فناوری اطلاعات نیاز دارد که فراتر از تنظیمات پیش‌فرض RDP است.

تنظیمات پیش‌فرض RDP فقط یک پایه برای رمزگذاری و امنیت اولیه فراهم می‌کنند. اگر این تنظیمات صرفاً برای امنیت مورد استفاده قرار گیرند و بدون تغییر باقی بمانند، شرایطی را ایجاد می‌کنند که خطر غیرقابل قبولی را برای اکثر سازمان‌ها ایجاد می‌کند. با این حال، چگونه می‌توانید RDP را برای عملیات داخلی و خارجی ایمن کنید؟

اولین قانون امنیتی RDP این است که قرار دادن RDP در معرض اینترنت برای دسترسی کاملاً غیرقابل قبول است، صرف نظر از اینکه چقدر سخت‌افزار و سیستم‌ها تقویت شده‌اند. خطرات چنین افشایی بسیار زیاد است. RDP فقط باید در یک شبکه محلی (LAN) استفاده شود.

از آنجایی که میزبان‌های RDP از یک پورت باز پشتیبانی می‌کنند که منتظر اتصال‌های ورودی است، حتی امن‌ترین نصب‌ها را می‌توان به عنوان یک سیستم عامل ویندوز و نسخه آن مشخص کرد. هنگامی که این اطلاعات شناخته شد، مهندسی اجتماعی، وصله‌های امنیتی گم‌شده، اکسپلویت‌های روز صفر، اعتبارنامه‌های در وب تاریک، مدیریت رمز عبور ناامن و غیره همگی می‌توانند دسترسی نامناسب را از طریق RDP امکان‌پذیر کنند.

بنابراین، بیایید ایمن‌سازی RDP در میزبان‌های خارجی را کنار بگذاریم. این فقط یک ایده بد است. این حتی شامل دستگاه‌های تلفن همراه مانند لپ‌تاپ‌هایی است که توسط کارمندان در خانه استفاده می‌شود یا از نیروی کار موبایلی پشتیبانی می‌کند. هیچ دستگاهی که می‌تواند یا دارای آدرس IP عمومی TCP/IP باشد نباید RDP فعال داشته باشد. به همین دلیل است که بسیاری از سازمان‌ها برای اتصال به منابع خارجی، حتی اگر در DMZ یا ابر باشند، برای کاهش این خطرات احتمالی، به VPN یا راهکارهای دسترسی از راه دور مدرن نیاز دارند.

اما چه چیزی در ایمن‌سازی کافی RDP برای استفاده داخلی دخیل است؟ می‌توانیم با آنچه در مورد پیکربندی پیش‌فرض می‌دانیم شروع کنیم:

لیست‌های دسترسی

به‌طور پیش‌فرض، فعال‌سازی RDP روی میزبان‌های ویندوز تنها به مدیران محلی یا دامنه (بسته به پیکربندی فعلی) اجازه دسترسی می‌دهد. در حالی که این امکان از دسترسی کاربران استاندارد  جلوگیری می‌کند، اما یک خطر غیرقابل قبول را نشان می‌دهد، زیرا تنها مدیران می‌توانند از طریق RDP احراز هویت کنند. بنابراین، باید دسترسی برای مدیران حذف شود. تنها حساب‌های کاربری استاندارد مناسب باید دسترسی RDP را دریافت کنند و این باید فقط در زمان نیاز باشد، به این معنی که دسترسی برای کوتاه‌ترین مدت لازم برای تکمیل یک کار باشد. علاوه بر این، ارتبطا این اتصال باید به طور کامل برای اطمینان از مناسب بودن آن نظارت شود. کنترل‌های لازم برای حداقل امتیاز، دسترسی فقط در زمان نیاز و نظارت بر جلسه را می‌توان به‌طور کامل از طریق یک راه‌حل مدیریت دسترسی ممتاز (PAM) اعمال کرد.

حساب‌های پیش‌فرض

اگر توصیه‌های لیست دسترسی در بالا با جدیت رعایت نشود، یک عامل تهدید می‌تواند به راحتی حساب مدیر را برای دسترسی به منبع حدس بزند. و اگر نام کاربری پیش‌فرض مدیر “administrator” باشد، نقض حداقل در برخی سطوح تقریباً قطعی است. بنابراین، توصیه این است که حساب مدیر برای دستگاه محلی یا دامنه به چیزی متفاوت، منحصر به فرد و غیرقابل حدس تغییر نام داده شود. علاوه بر این، RDP کردن (بله، این معمولاً به عنوان یک فعل نیز استفاده می‌شود) به‌عنوان یک مدیر فقط باید در مواردی انجام شود که اجتناب‌ناپذیر است، اما نه برای نیازهای دسترسی از راه دور روزانه.

هدایت کلیپ بورد

سرورهای RDP هدایت کلیپ بورد را ارائه می‌دهند، بنابراین جلسات از راه دور می‌توانند به راحتی محتوا را از سیستم‌های از راه دور به دستگاه متصل‌ شده و بالعکس منتقل کنند. این عمل مستعد سوءاستفاده است، مانند استخراج داده یا انتقال اطلاعات یک سیستم.

هدایت چاپگر شبکه و LTP

سرورهای پروتکل ریموت دسکتاپ هدایت چاپگر را برای جلسات دسترسی از راه دور ارائه می‌دهند. این ویژگی امکان اتصال چاپگرهای شبکه و LTP (چاپگر ترمینال خطی) از دستگاه‌های محلی و کنترل‌کننده‌های دامنه به دارایی از راه دور را فراهم می‌کند. این می‌تواند به چاپ اطلاعات مهم و معرفی درایورهای چاپگر مخرب در یک محیط اجازه دهد. RDP باید بدون مجوز برای چاپگرهای شبکه و LTP پیکربندی شود.

مدیریت جلسه

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

اجرای این تنظیمات در سازمان‌ها از طریقActive Directory قابل اعمال است. منابعی که به دامنه متصل نیستند باید به صورت جداگانه تنظیم شوند.

آسیب‌پذیری‌ها

از زمان آغاز RDP، نسخه‌های مختلف، آسیب‌پذیری‌های بی‌شماری داشته‌اند، از جمله چند مورد مانند BlueKeep و DejaBlue که به اجرای کد از راه دور و ارتقاء امتیاز دسترسی اجازه داده‌اند. برای هر محیطی که از پروتکل ریموت دسکتاپ استفاده می‌کند، مدیران فناوری اطلاعات باید از به‌روزرسانی‌های امنیتی آگاه باشند و آن‌ها را به‌موقع اعمال کنند.

جایگزین‌ برای RDP

خطرات امنیتی RDP برای بسیاری از سازمان‌ها غیرقابل توجیه است. حتی کمترین عدم رعایت قوانین، چه در استفاده داخلی و چه خارجی از RDP، غیرقابل قبول است. چنین سازمان‌هایی به یک راه‌حل استراتژیک برای دسترسی از راه دور نیاز دارند که وابسته به قابلیت‌های بومی سیستم‌عامل نباشد. این امر چند گزینه را برای دستگاه‌های مدرن Microsoft Windows و سایر سیستم‌عامل‌هایی که از RDP به‌عنوان کلاینت یا سرور پشتیبانی می‌کنند، باقی می‌گذارد:

  1. VNC (Virtual Network Computing): این پروتکل یک دسترسی از راه دور جایگزین است که با RDP رقابت می‌کند. این یک راه‌حل اشتراک‌گذاری دسکتاپ گرافیکی است که از پروتکل بافر فریم راه دور برای کنترل صفحه‌نمایش، کیبورد و ماوس کامپیوتر دیگری از طریق انتقال بروزرسانی‌های صفحه استفاده می‌کند. مزیت اصلی VNC نسبت به RDP این است که مستقل از پلتفرم است و دارای پیاده‌سازی‌های متعدد سرور و کلاینت از منابع مختلف بر روی یک پلتفرم است. متأسفانه، VNC بسیاری از نقاط ضعف امنیتی و سخت‌گیری مشابه RDP را دارد، از جمله رمزگذاری ضعیف احتمالی، انتقال‌های متن ساده و محدودیت‌های سخت‌گیری احراز هویت. در حالی که برخی راه‌حل‌های اختصاصی بر پایه VNC برای حل این مسائل ساخته شده‌اند، آنها نیز راه‌حل‌های پولی مانند هر پیاده‌سازی اختصاصی دیگر هستند. و مانند RDP، منابعی که از VNC استفاده می‌کنند هرگز نباید به‌طور مستقیم به اینترنت متصل شوند و منابع داخلی باید به‌طور مناسب مدیریت شوند و یا درصورت نیاز به استفاده در اینترنت، به IP های خاص محدود شود.
  2. SSH (secure Shell):  تقریباً اجازه اجرای هر عملکردی را از طریق خط فرمان می‌دهند. در سال 2018، مایکروسافت به‌طور رسمی پوسته امن (SSH) را به سیستم‌عامل اضافه کرد تا این قابلیت را از راه دور تسهیل کند. در حالی که به صورت گرافیکی نیست، SSH اجازه می‌دهد تا به‌صورت امن به یک میزبان ویندوز از راه دور وارد شده و دستورات و اسکریپت‌ها را اجرا کنید. سخت‌گیری SSH شامل مراحل مشابه RDP است. SSH باید به‌طور صحیح برای دسترسی حساب کاربری، رمزگذاری و لیست‌های کنترل دسترسی پیکربندی شود. به این ترتیب، باید تنها به‌طور داخلی استفاده شود و در صورت امکان هرگز به‌طور مستقیم در اینترنت منتشر نشود.
  3. راهکارهای جانبی: پیاده‌سازی‌های اختصاصی فناوری دسترسی از راه دور معمولاً به‌صورت کاملاً متفاوتی نسبت به RDP، VNC و SSH طراحی شده‌اند. به جای باز کردن یک پورت TCP/IP در حال شنود در یک میزبان، این فناوری‌ها تمایل دارند از فناوری مبتنی بر سفیر (Agent) برای برقراری ارتباط استفاده کنند و منتظر درخواست اتصال ورودی باشند. چنین پیاده‌سازی‌هایی برای قرار دادن در اینترنت ایده‌آل هستند، زیرا خطرات امنیتی کاهش یافته و احراز هویت در هسته مرکز دسترسی از راه دور انجام می‌شود نه در سمت کاربر. علاوه بر این، ترافیک از طریق هسته و کاربر هدایت می‌شود تا مسیر شبکه را ایمن کند، برخلاف ارتباط نقطه‌به‌نقطه که ممکن است توسط فایروال‌ها مسدود شود.

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

پیشرفته‌ترین این راه‌حل‌های امن دسترسی از راه دور شخص ثالث ممکن است ویژگی‌هایی مانند ضبط صفحه، اشتراک‌گذاری چند صفحه، راه‌اندازی در حالت امن و حتی دسترسی به رجیستری از راه دور را ارائه دهند. با این حال، مدیریت حساب کاربری همچنان می‌تواند چالش‌برانگیز باشد، خواه کاربران و منابع در Active Directory، LDAP یا Azure AD گروه‌بندی شده باشند یا خیر. مدیران نیاز دارند تعیین کنند که چه کسی به چه چیزی و چه زمانی دسترسی دارد، به جای دسترسی گسترده که خطر بزرگی برای کسب‌وکار ایجاد می‌کند.

نتیجه‌گیری

پروتکل دسکتاپ از راه دور (RDP) ابزاری قدرتمند برای دسترسی از راه دور به دسکتاپ‌ها و سرورها است، اما با خطرات امنیتی همراه است. برای ایمن‌سازی استفاده از RDP، باید به پیکربندی صحیح و استفاده از جایگزین‌های امن توجه کرد. سازمان‌ها باید راهکارهای امنیتی مناسبی را برای حفاظت از سیستم‌های خود در برابر تهدیدهای سایبری اجرا کنند.

مقالات مرتبط: