发现:服务器支持弱传输层安全协议(SSL/TLS)
以下博客文章旨在扩展BHIS报告中常见的发现。“服务器支持弱传输层安全协议(SSL/TLS)”在我们的测试中几乎普遍存在。
为什么这一发现重要?
这一发现之所以重要,是因为攻击者最终对数据感兴趣。使用强SSL/TLS配置为使用它的应用程序或协议提供身份验证、认证、保密性和完整性服务。如果支持弱协议和密码套件,攻击者可能能够破坏客户端和服务器之间的加密隧道。一旦发生这种情况,攻击者可能会冒充通信端点之一、窃取未加密信息,或在传输过程中修改该信息。
尽管攻击SSL/TLS可能困难且耗时,但如果不可能,我们也不会退役整个协议,如SSLv2、SSLv3和TLS 1.0(截至2018年6月30日以满足PCI合规要求)。多年来我们还经历了以下事件:
从左到右:Heartbleed、Drown和SSL POODLE漏洞标识
考虑到渗透测试的时间限制以及与其他测试目标和结果的冲突,我们可能除了使用额外工具确认Nessus结果之外,没有做更多工作。
那么你为什么应该关心?
你应该关心,因为SSL/TLS的使用通常是保护客户端和服务器之间通信(无论是客户还是员工)隐私的唯一保护措施之一。它还可以提供身份验证和完整性检查。即使是最琐碎的通信也可能包含敏感信息,或者作为副作用生成敏感信息(如身份验证哈希)。因此,最好通过修补和禁用弱协议和密码套件的支持来保持SSL/TLS配置的最新状态。
你应该怎么做?
在企业Active Directory环境中,进行这些更改可能很简单。Active Directory组策略可用于禁用弱密码套件和协议,并在Windows计算机(客户端和服务器)范围内设置密码偏好。显然,实施此类更改应逐步完成,以确保不会发生客户端连接和SSL/TLS协商失败。
除了在组策略中实施更改外,我们还建议更改默认客户端映像中的设置,以确保设备默认不能使用不安全的协议或密码套件。可能需要对特定的Active Directory基础设施系统进行额外配置,以完全禁用弱协议和密码套件的支持。
对于Linux、类Linux和Unix设备,可以使用自动化框架(如Puppet)找到类似的自动化功能。与Windows系统一样,这些更改也应集成到这些操作系统的基线程序中。
也不要忘记那些移动设备。
你可能进展最慢的领域是嵌入式系统(打印机、存储设备、销售点硬件等)和供应商设备。如果你有一个同质的打印环境,你可能很幸运,因为一些供应商支持大规模固件升级。然而,更好的策略可能是分段和访问控制列表(或防火墙),以防止设备(及其通信)首先被攻击者访问。
什么构成“弱”和“强”?
从协议的角度来看,如果你能,最好的选择是禁用任何低于TLS 1.2的支持。关于密码套件和一般配置选项,Qualys SSL Labs的Ivan Ristic的以下帖子包含所有你想要的细节:https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices
结论
在大多数现代主机上,纠正SSL/TLS问题并不是一项艰巨的任务。必须小心确保在特别敏感的系统上避免服务降级。你也可以对你没有时间或资源处理的系统采取替代方法。我们还没有确定一个详尽的列表,但考虑将这些系统与“群体”的其他部分隔离应该能激发你的创造力。
如果所有其他方法都失败了……你可以这样做。
参考链接
- https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.sec.doc/q009940_.htm
- https://docs.vmware.com/en/VMware-Horizon-7/7.1/com.vmware.horizon-client-agent.security.doc/GUID-FC2EB030-4D0F-4AA6-9273-0F14A67ADC73.html
- https://support.microsoft.com/en-us/help/4040243/how-to-enable-tls-1-2-for-configuration-manager
- https://support.microsoft.com/en-us/help/245030/how-to-restrict-the-use-of-certain-cryptographic-algorithms-and-protoc
- https://www.ssllabs.com/ssltest/
- https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html
- https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html