RDP安全概述及防护建议
2019-07-11 11:38:00 Author: www.4hou.com(查看原文) 阅读量:109 收藏

RDP安全事件概述

近期,RDP蠕虫漏洞CVE-2019-0708(Bluekeep)成为安全界的热门话题。Bluekeep漏洞的利用方式是通过远程桌面端口3389,RDP协议进行攻击的 。CVE-2019-0708漏洞是通过检查用户的身份认证,导致可以绕过认证,不用任何的交互,直接通过rdp协议进行连接发送恶意代码执行命令到服务器中去。这个漏洞是今年来说危害严重性最大的漏洞,换句话说,该漏洞是“可传播的”,这意味着任何利用该漏洞的恶意软件都可能从受影响的计算机传播到受影响的计算机,就像2017年WannaCry恶意软件在全球蔓延一样,跟之前的勒索,永恒之蓝病毒差不多。
去年7月,攻击者滥用RDP漏洞来实现针对性的勒索软件攻击活动。SamSam组织利用弱保护的RDP访问来在受害者网络中立足。
2019年初,研究人员发布了多篇博文来分析使用RDP作为初始入口向量的Ryuk勒索软件家族。
近期统计数据表明,RDP是最主流的攻击向量,在2019年1季度的针对性勒索软件攻击活动中占63.5%。

Securing RDP

根据上面提到的安全态势,需要明确的一点是从外部访问RDP是否是必要的。如果是,那么如何更好地保护RDP呢?

不允许通过开放互联网的RDP连接

首先,RDP不应该对互联网开放的。在互联网中经常会扫描3389端口。即使使用了复杂的密码策略和多因子认证,仍然可能会造成DOS攻击和用户账户锁定。因此,使用VPN是一种相对安全的备选方案。因为VPN连接是多方加密的,客户端和服务器都要进行认证,加上使用多因子认证,那么就可以为企业网络创建一个安全的通道。

使用复杂密码

使用复杂密码是一种常用的安全措施,可以应对针对RDP的暴力破解攻击者。下面是有漏洞的RDP系统中最常使用的15个密码:

[no password][email protected]test123Welcome1scan

使用多因子认证

除了使用复杂口令外,还可以使用多因子认证。因为用户名和口令有被窃的风险。如果合法凭证被窃,那么多因子认证就可以提供多一层的安全防护。

使用RDP网关

最新版本的Windows服务器都提供RDP网关服务器。可以为许多内部RDP终端提供外部接口,以简化管理。包括登陆、TLS证书、认证、对内部主机进行授权和用户限制等等。

多次失败登陆后锁定用户并拦截IP

多次失败登陆是暴力破解攻击的一种线索。
通过限制每个用户尝试登陆的次数可以预防此类攻击。失败的登陆尝试会记录在Windows Event ID 4625中。账户锁定阈值应该在本地组策略安全设置Account Policies中指定。
从登陆的角度来说,最好是记录成功和失败登陆的情况都要记录日志。另外,需要注明的是specific security layer for RDP connections需要启用。

Event log network logon (type 3) note no source network address

Event log RDP logon (type 10) note the source network address present

使用防火墙来限制访问

防火墙规则可以用来限制远程桌面访问,这样就只有特定的IP地址或IP地址范围可以访问特定的设备。可以通过打开Windows Firewall with Advanced Security,点击Inbound Rules,找到RDP rule来进行设置,如下图所示:

到达的RDP连接的防火墙设置

启用受限管理模式(Restricted Admin Mode)

在通过RDP连接到远程机器时,凭证会保存在机器中,也可能会被系统中的其他用户提取出来。因为微软加入了restricted admin mode来指导RDP服务器不要保存登陆用户的凭证。在该场景下,服务器使用‘network’ login而不是‘interactive’方式登陆,因此用于认证时使用的是哈希值或Kerberos tickets而不是密码。

加密

标准RDP中支持四种级别的加密:Low, Client Compatible, High, FIPS Compliant。加密可以在RDP服务器中进行配置,也可以使用Enhanced RDP Security来改善安全性。如果使用Enhanced RDP security,加密和服务器认证就使用外部安全协议来实现,比如可以使用TLS或CredSSP。

证书管理非常复杂,但微软通过Active Directory Certificate Services (ADCS)来简化证书管理过程。证书会使用Group Policy Objects (GPO)来推送。不支持的操作系统环境必须通过web接口https://<server>/Certsrv来导入证书。

启用网络级认证Network Level Authentication (NLA)

为了减少需要的完服务器资源数量,应对DOS攻击,可以采用NLA。在该模式下,在建立远程桌面连接前需要进行强认证,即通过TLS 或Kerberos实现Credential Security Support Provider (CredSSP)。NLA还可以应对中间人攻击,但NTLM上的NLA不提供强认证,应当禁用TLS上的NLA。
另外,BlueKeep漏洞也可以通过启用NLA来进行缓解。微软发布的公告中称:启用NLA后,攻击者在利用该漏洞前,首先需要使用系统中有效的账户来认证远程桌面服务。

限制使用RDP登陆的用户

所有的管理员用户默认都是使用RDP的。但远程访问应该限制到需要的管理员账号。如果所有的管理员都不需要远程访问,那么就应当考虑将管理员从RDP访问组中移除。然后添加需要访问权限的特定用户到Remote Desktop Users组中。

最小化本地管理员账户的数量

本地管理员账户为攻击者提供了一个攻击向量。凭证可以被线下破解,更多的账户和凭证意味着成功破解的可能性更大。因此,需要尽可能地保护本地管理员账户。

保证本地管理员账户是唯一的

如果本地管理员账户与服务器内部网络中其他系统的账户匹配,那么攻击者可能就会重用这些凭证。该问题是经常发生的,因此微软提供了Local Administrator

限制域管理员账户访问

域管理组的账户默认有域的完全控制权。如果域管理账户凭证可以从RDP服务器中提取,攻击者就可以完全控制整个域。因此应减少企业内域管理员账户的数量,并避免通过这些账户访问RDP服务器。

网络内所处的位置

RDP服务器应该防止在网络中的DMZ或其他受限区域。这样,如果攻击成功的话,影响的范围也局限于RDP服务器自身。同时,也要考虑内部网络中的QoS。


文章来源: https://www.4hou.com/info/news/18957.html
如有侵权请联系:admin#unsafe.sh