SSL-DoS和SSL-DDos攻击与防御

2021-01-25 10:33:27 浏览数 (2)

攻击原理

SSL握手的过程中,在协商加密算法时服务器CPU的开销是客户端开销的15倍左右。攻击者利用这一特点,在一个TCP连接中不停地快速重新协商(这种行为是被SSL所允许的),从而耗尽服务器CPU资源,这种攻击叫做SSL-DoS。

如果多个僵尸主机向服务器发起SSL-DoS,则叫做SSL-DDoS攻击。,利用该SSL漏洞的攻击的详细过程如下图所示:

攻击过程分析

上述报文可以看到SSL服务器的资源如何被耗尽。

SSL客户端发送一条ClientHello消息来初始化一次新的握手,该消息大约100字节左右,不需要加密。

服务器端响应ClientHello消息,需要连续发出3个消息,ServerHello、Certificate、ServerHelloDone,这3个消息一般在3000字节左右,需要用高级加密标准AES或流加密算法簇RC-4进行加密后再发送。

每次握手,SSL服务端发送的数据比客户端多了30倍,还要进行加密,从而导致服务端CPU计算资源大量占用。

抓包分析:

攻击一段时间,服务器不能响应

防御方法

针对Pushdo僵尸的垃圾报文攻击,可以在建立TCP连接后进行报文规格检查。

严格的规格检查:

对SSL连接中的所有报文进行检查,如果其不符合ssl报文规格,则丢弃该报文并对源ip进行封禁。

优点,可以发现任何类型的ssl垃圾报文,准确度高;

缺点,如果出现ssl分段报文,无法检测或者检测代价高;

宽松的规格检查:

对建立tcp连接后的一个或者几个ssl报文,如对client hello、change cipher spec进行规格检查;

优点,检测效率高;

缺点,不能对检测范围外的ssl垃圾报文进行防护;

针对thc-ssl-dos及类似的以ssl握手协商过程进行dos的攻击,可以对源ip或者一条ssl连接内的协商报文(change cipher spec报文)速率进行统计。

如果协商报文速率异常,则丢弃该连接的所有报文。

还有一些网络安全公司提出了关闭重握手(Renegotiation)以防止该漏洞被利用的解决方案,但这只能延缓SSL服务被攻击所导致的宕机到来时间, 还会导致SSL扩展服务无法使用。相关用户应尽快进行SSL服务器安全检查,并且及时调整相关安全产品的安全规则,以应对此漏洞带来的安全风险。

0 人点赞