Linux,Windows解决方案中发现了数十个VNC漏洞

11月 26,2019by admin

研究人员发现,总共存在37个安全漏洞,影响了四个开源虚拟网络计算(VNC)实施,并且自1999年以来的20年中一直存在。
 

 
卡巴斯基工业系统紧急响应小组(ICS CERT)安全研究员Pavel Cheremushkin对LibVNC,TightVNC 1.X,TurboVNC和UltraVNC VNC解决方案中发现了这些缺陷。该研究人员对RealVNC进行了广泛分析,因为它不允许进行逆向工程,因此未经分析。
 
这些VNC系统可用于多种操作系统,包括但不限于Windows,Linux,macOS,iOS和Android。
 
VNC(virtual network computing)是一种基于RFB(Remote FrameBuffer)的开源图形桌面共享协议,它可以使用户远程控制另一台计算机,是一种类似于Microsoft的RDP服务。
 
VNC的实现由客户端和服务器两部分组成,允许用户在使用RFB协议的VNC客户端的帮助下,远程访问运行VNC服务器的计算机,以传输屏幕图像、鼠标移动和按键事件等。
 
可能暴露超过60万台VNC服务器
 
根据这些信息,卡巴斯基的ICS CERT研究人员发现了 600,000多个VNC服务器,这些数据可以根据使用Shodan搜索引擎为连接Internet的设备收集的信息通过Internet进行远程访问。此估计不包括本地运行的VNC服务器、区域网络。
 
Kaspersky说:“所有错误都与不正确的内存使用情况有关。导致故障和拒绝服务还是相对有利的结果。在更严重的情况下,攻击者可以未经授权访问设备上的信息,或者将恶意软件释放到受害者的系统中。”
 
卡巴斯基的报告补充说: “尽管我们的同事的重点是在工业企业中使用VNC,但这些威胁与部署该技术的任何企业都息息相关。”
 
虽然研究人员向开发团队披露的大多数VNC内存损坏漏洞是固定的,但在某些情况下,至今仍未解决。
 
VNC解决方案中发现的错
 
考虑到目前有超过600000台VNC服务器可通过互联网远程访问,其中近32%连接到工业自动化系统,Kaspersky的网络安全研究人员审计了四种广泛使用的VNC开源实现。
 
Cheremushkin在LibVNC库中发现了基于堆的缓冲区溢出,这可能使攻击者“绕过ASLR并使用溢出来实现客户端上的远程代码执行”。
 
TightVNC附带了一个空指针取消引用,导致拒绝系统(DoS)状态,以及两个堆缓冲区溢出和一个全局缓冲区溢出,这可能导致远程代码执行。如上所述,这些安全问题将无法解决。
 
在TurboVNC服务器中发现了堆栈缓冲区溢出漏洞,尽管该漏洞需要服务器上的授权或在连接前对VNC客户端进行控制,但这可能导致远程执行代码。
 
关于UltraVNC,研究人员说,他能够发现UltraVNC中的“整个’动物园’漏洞。从strcpy和sprintf中的琐碎缓冲区溢出到或多或少的好奇漏洞,这些漏洞在现实世界项目中很少遇到”。
 
在他发现的所有UltraVNC缺陷中,缓冲区下溢跟踪为CVE-2018-15361,可在100%的攻击中触发DoS,但也可用于远程执行代码。CVE-2019-8262已分配给多个堆缓冲区溢出漏洞,这些漏洞可能导致远程执行代码。
 
卡巴斯基的Pavel Cheremushkin发现的已发现VNC漏洞的完整列表在下表中列出:
 


 

在分析了这些VNC软件之后,研究人员在客户端和服务器软件中总共发现了37个新的内存损坏漏洞:其中UltraVNC 22个,LibVNC 10个,TightVNC 4个,TurboVNC 1个。
 
“积极的一面是,利用服务器端漏洞经常需要密码认证,并且服务器出于安全原因可能不允许用户配置无密码认证方法。例如,UltraVNC就是这种情况。” Cheremushkin总结。
 
“作为防范攻击的措施,客户端不应连接到未知的VNC服务器,管理员应使用唯一的强密码在服务器上配置身份验证。”
 
卡巴斯基提供以下建议,以阻止攻击者利用这些VNC安全漏洞:
 
•检查哪些设备可以远程连接,并在不需要时阻止远程连接。
 
•盘点所有远程访问应用程序-不仅是VNC-并检查其版本是否为最新。如果您对它们的可靠性有疑问,请停止使用它们。如果打算继续部署它们,请确保升级到最新版本。
 
•使用强密码保护您的VNC服务器,这将使攻击他们变得更加困难。
 
•请勿连接到不受信任或未经测试的VNC服务器。
 
Kaspersky已向受影响的开发人员报告了该漏洞,所有漏洞均已发布了其受支持产品的补丁程序,但其创建者不再支持的TightVNC 1.x。因此,建议用户切换到2.x版本。