در چهار برنامهی دسکتاپ از راه دور متنباز VNC در مجموع ۳۷ آسیبپذیری امنیتی کشف شده است که بسیاری از آنها از ۲۰ سال قبل باقی ماندهاند و شدیدترین آنها به مهاجمان راه دور اجازه میدهد تا سیستم هدف را در معرض خطر قرار دهند. VNC (پردازش شبکهی مجازی) یک پروتکل به اشتراکگذاری دسکتاپ گرافیکی متنباز مبتنیبر RFB (Remote FrameBuffer) است که به کاربران اجازه میدهد تا مانند سرویس RDP مایکروسافت، رایانههای دیگر را بهصورت از راه دور کنترل کند.
پیادهسازی سیستم VNC شامل یک مؤلفهی سرور که در رایانهای که دسکتاپ آن به اشتراک گذاشته میشود، اجرا میشود و یک مؤلفهی کلاینت است که در رایانهای که به دسکتاپ به اشتراک گذاشتهشده دسترسی خواهد داشت، اجرا میشود. بهعبارت دیگر، VNC به کاربر اجازه میدهد تا از ماوس و صفحهی کلید خود برای کار با یک رایانهی راه دور استفاده کند.
برنامههای VNCمتعددی وجود دارد که رایگان یا تجاری هستند و با سیستم عاملهای پرکاربرد مانند لینوکس، macOS، ویندوز و اندروید سازگار هستند. با توجه به اینکه درحالحاضر بیش از ۶۰۰ هزار سرور VNC وجود دارد که به صورت از راه دور از طریق اینترنت قابل دسترسی هستند و نزدیک به ۳۲ درصد از آنها به سیستمهای خودکارسازی صنعتی متصل هستند، پژوهشگران امنیت سایبری در کسپرسکی، چهار پیادهسازی متنباز پرکاربرد VNC ازجمله LibVNC، UltraVNC، TightVNC 1.x، TurboVNC را مورد بررسی قرار دادند.
پس از تجزیه و تحلیل این نرمافزارهای VNC، پژوهشگران در مجموع ۳۷ آسیبپذیری خرابی حافظهی جدید را در نرمافزار کلاینت و سرور کشف کردند که ۲۲ مورد از آنها در UltraVNC، ۱۰ مورد در LibVNC، ۴ مورد در TightVNC و تنها ۱ مورد در TurboVNC کشف شده است.
بهگفتهی کسپرسکی همهی این اشکالها به استفادهی نادرست از حافظه مربوط هستند. بهرهبرداری از آنها منجر به نقض عملکرد و منع سرویس میشود. در موارد جدیتر، مهاجمان میتوانند به دسترسی غیرمجاز به اطلاعات دستگاه دست یابند و یا بدافزار را در سیستم قربانی منتشر کنند.
برخی از آسیبپذیریهای امنیتی کشفشده ممکن است منجر به حملات اجرای کد از راه دور شوند، به این معنا که یک مهاجم میتواند از این آسیبپذیریها برای اجرای کد دلخواه در سیستم هدف استفاده کند و به کنترل کامل آن دست یابد.
از آنجا که برنامهی سمت کلاینت دادهی بیشتری دریافت میکند و حاوی مؤلفهی رمزگشایی داده است که توسعهدهندگان هنگام برنامهنویسی در این قسمت مرتکب خطا میشوند، بسیاری از این آسیبپذیریها نسخهی سمت کلاینت این نرمافزار را تحت تأثیر قرار میدهد. از طرفی دیگر، نسخهی سمت سرور حاوی یک پایگاه کد کوچک بدون عملکرد پیچیده است که احتمال به وجود آمدن آسیبپذیریهای خرابی حافظه را کاهش میدهد.
بااینحال، این گروه پژوهشی برخی اشکال های سمت سرور قابل بهرهبرداری را کشف کرده است که شامل یک آسیبپذیری سرریز بافر پشته در سرور TurboVNC است که امکان دستیابی به اجرای کد از راه دور در سرور را فراهم میکند. اما بهرهبرداری از این آسیبپذیری به گواهینامههای احراز هویت برای اتصال به سرور VNC یا کنترل کلاینت قبل از برقراری اتصال نیاز دارد.
بنابراین، بهعنوان یک راهکار محفاظتی در برابر حملاتی که از آسیبپذیریهای سمت سرور بهرهبرداری میکنند، به کلاینتها توصیه میشود که به سرورهای VNC غیرقابل اعتماد یا آزمایشنشده متصل نشوند و مدیران ملزم هستند تا از سرورهای VNC خود با یک گذرواژهی قوی و منحصربهفرد محافظت کنند.
کسپرسکی این آسیبپذیریها را به توسعهدهندگان آسیب دیده گزارش داده و همهی آنها وصلههایی برای محصولات خود منتشر کردهاند، تنها برای TightVNC 1.x که دیگر توسط سازندهی خود پشتیبانی نمیشود، هیچ وصلهای منتشرنشده است. بنابراین، به کاربران توصیه میشود که از نسخهی ۲٫x استفاده کنند.