Guacamole

یک تحقیق جدید، از چندین آسیب‌پذیری حیاتی RDP معکوس در Apache Guacamole رونمایی کرد[۱]. Apache Guacamole یک برنامه محبوب Remote Desktop است که توسط مدیران سیستم برای دسترسی و مدیریت ماشین‌های ویندوز و لینوکس به‌صورت از راه دور استفاده می‌شود.

نقص‌های گزارش‌شده به‌طور بالقوه می‌توانند به مهاجمان اجازه دهند کنترل کاملی روی سرور Guacamole داشته باشند، ره‌گیری کنند و سایر جلسات متصل را کنترل کنند.

بر اساس گزارشی[۲] که توسط Check Point Research منتشرشده و با The Hacker News به اشتراک گذاشته شده است، این نقص‌ها به “مهاجمی که قبلاً با موفقیت یک رایانه در داخل سازمان را به خطر انداخته است، اجازه می‌دهند تا هنگامی‌که یک کاربر غیر مشکوک سعی در اتصال به یک دستگاه آلوده دارد، حمله‌ای به gateway Guacamole انجام دهد.”

پس‌ازآنکه در تاریخ ۳۱ مارس ۲۰۲۰ این شرکت امنیت سایبری مسئولانه یافته‌های خود را به Apache، سازندگان Guacamole اعلام کرد، این شرکت در ژوئن سال ۲۰۲۰ وصله‌های موردنظر را منتشر کرد[۳].

Apache Guacamole یک برنامه محبوب منبع باز از راه دور بدون مشتری است و با نصب روی سرور یک شرکت، به کاربران این امکان را می‌دهد که از راه دور به‌سادگی با استفاده از یک مرورگر وب، فرآیند تأیید اعتبار را از راه دور انجام دهند[۴].

قابل‌ذکر است، برنامه دسکتاپ از راه دور Apache Guacamole تاکنون بیش از ۱۰ میلیون بار بارگیری در Docker Hub داشته است[۵].

نقص فساد حافظه در RCE

این حملات ریشه در یکی از دو راه ممکن برای در اختیار گرفتن gateway دارند: یا توسط یک دستگاه در معرض خطر در داخل شبکه شرکت که وسیله نفوذ اتصال خوش‌بینانه ورودی را برای حمله به Apache gateway فراهم می‌کند یا یک کارمند سرکش که از یک رایانه درون شبکه برای ربودن gateway استفاده می‌کند.

تیم Check Point اعلام کردند که این نقص‌ها را به‌عنوان بخشی از رسیدگی امنیتی اخیر Guacamole، که همچنین پشتیبانی از FreeRDP 2.0.0 را در اواخر ژانویه سال ۲۰۲۰ اضافه کرده است، شناسایی کردند.

شایان‌ذکر است که FreeRDP، یک مشتری RDP با منبع باز[۶]، سهم منصفانه خود را از نقص اجرای کد از راه دور داشت[۷]، که اوایل سال گذشته پس از انتشار ۲٫۰٫۰-rc4 فاش شد.

Eyal Itkin، محقق Check Point دراین‌باره گفت: “دانستن اینکه آسیب‌پذیری‌های موجود در FreeRDP فقط روی نسخه ۲٫۰٫۰-rc4 وصله شده است، بدان معنی است که تمام نسخه‌هایی که قبل از ژانویه سال ۲۰۲۰ منتشر شدند از نسخه‌های آسیب‌پذیر FreeRDP استفاده می‌کنند.”

در اینجا خلاصه‌ای از همه نقص‌های کشف شده آورده شده است:

  • آسیب‌پذیری‌های افشای اطلاعات (CVE-2020-9497): دو نقص جداگانه در پیاده‌سازی سفارشی توسعه‌دهندگان کانال RDP که برای کنترل بسته‌های صوتی از سرور استفاده می‌شود (“rdpsnd”) شناسایی شد. اولین مورد از این دو نقص به یک مهاجم اجازه می‌دهد تا یک پیام rdpsnd مخرب را ایجاد کند که می‌تواند منجر به خواندن خارج از محدوده مشابه Heartbleed شود[۸]. اشکال دوم در همان کانال، نشت داده است که داده خارج از محدوده را به یک مشتری متصل منتقل می‌کند.

سومین اشکال افشای اطلاعات نوعی از نقص فوق‌الذکر است که در کانال دیگری به نام “guacai” قرار دارد که مسئول ورودی صدا است و به‌طور پیش‌فرض غیرفعال است.

  • خواندن‌های خارج از محدوده در FreeRDP: به دنبال یافتن آسیب‌پذیری فساد حافظه که می‌تواند برای بهره‌برداری از داده‌های فوق از آن استفاده شود، Check Point گفت که آن‌ها دو نمونه دیگر از خواندن‌های خارج از محدوده را کشف کردند که از نقص طراحی در FreeRDP استفاده می‌کنند.
  • نقص فساد حافظه در Guacamole (CVE-2020-9498): این نقص، که در یک لایهabstraction (“c”) وجود دارد و روی کانال‌های rdpsnd و rdpdr (تغییر مسیر دستگاه) قرار دارد، ناشی از نقص ایمنی حافظه است و درنتیجه dangling pointer به یک مهاجم اجازه می‌دهد[۹] با ترکیب دو عیب، به اجرای کد دست یابد.

آسیب‌پذیری‌های Use-after-free، اشکالات فساد حافظه هستند که معمولاً وقتی یک برنامه سعی می‌کند از فضای حافظه‌ای که دیگر به آن اختصاص ندارد استفاده کند، رخ می‌دهند. این معمولاً باعث خرابی برنامه می‌شود اما گاهی اوقات می‌تواند منجر به عواقب ناخواسته دیگری نیز شود، مانند اجرای کد که می‌تواند توسط مهاجمان مورد بهره‌برداری قرار بگیرد.

Itkin دراین‌باره می‌گوید[۱۰]: “با استفاده از آسیب‌پذیری‌های CVE-2020-9497 و CVE-2020-9498 یک کامپیوتر شرکتی مخرب (سرور RDP ما) می‌تواند وقتی کاربر از راه دور درخواست اتصال به رایانه (آلوده) خود را داشته باشد، کنترل فرآیند guacd را در اختیار گیرد.”

یک مورد افزایش سطح دسترسی

با توجه به نگرانی بیشتر، Check Point متوجه شد که می‌توان کنترل همه اتصالات موجود در gateway را تنها از یک فرایند guacd تنها انجام داد، که روی سرور Guacamole اجرا می‌شود تا بتوانید اتصالات از راه دور به شبکه شرکت‌ها را کنترل کنید.

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

Itkin در پایان گفت: “درحالی‌که تغییر نوع کار به روش کار از راه دور یک ضرورت در این اوقات سخت از بیماری همه‌گیر COVID-19 است، ما نمی‌توانیم از پیامدهای امنیتی چنین ارتباطات از راه دوری غافل شویم. وقتی بیشتر سازمان‌ها از راه دور کار می‌کنند، این جایگاه معادل دستیابی به کنترل کامل بر کل شبکه سازمانی است.”

“ما اکیداً توصیه می‌کنیم که همه اطمینان حاصل کنند که همه سرورها به‌روز هستند و هر فناوری که برای کار از خانه استفاده می‌شود، به‌طور کامل برای جلوگیری از انجام چنین حملاتی وصله شده است.”

منابع

[۱] https://thehackernews.com/2020/05/reverse-rdp-attack-patch.html

[۲] https://blog.checkpoint.com/2020/07/02/hole-y-guacamole-fixing-critical-vulnerabilities-in-apaches-popular-remote-desktop-gatewa

[۳] https://guacamole.apache.org/releases/1.2.0

[۴] https://guacamole.apache.org

[۵] https://hub.docker.com/r/guacamole/guacamole

[۶] https://www.freerdp.com

[۷] https://research.checkpoint.com/2019/reverse-rdp-attack-code-execution-on-rdp-clients

[۸] https://thehackernews.com/2014/04/heartbleed-bug-explained-10-most.html

[۹] https://en.wikipedia.org/wiki/Dangling_pointer

[۱۰] https://guacamole.apache.org/doc/gug/guacamole-architecture.html#guacd

[۱۱] https://thehackernews.com/2020/07/apache-guacamole-hacking.html