OpenSSH远程拒绝服务漏洞技术分析与防护方案

OpenSSH在秘钥交换过程中存在一个内存耗尽问题,一个未经认证的客户端,可以通过重复KEXINIT过程,使服务器上每个连接的内存分配增加至384MB,如果攻击者利用该漏洞,发起多个连接,会使服务器的内存耗尽,造成拒绝服务攻击。该漏洞存在于函数kex_input_kexinit()中,该漏洞编号为CVE-2016-8858。

相关链接如下:

http://www.securitytracker.com/id/1037057

什么是OpenSSH

OpenSSH是SSH(Secure SHell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

影响的版本

OpenSSH 6.8-7.3

不受影响的版本

OpenSSH < 6.8

漏洞分析

SSH传输层握手过程如下图所示,在认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证。该漏洞的触发原理是:当服务器端收到发送的SSH2_MSG_KEXINIT包时,会在请求对应大小的内存,最大可达到384MB在默认情况下,服务器的并发处理能力达到100条时,就会损耗服务器上的38400MB内存,导致远程拒绝服务漏洞。

SSH握手过程

SSH握手过程

对该漏洞的修复在于向函数kex_input_kexinit()中添加对KEXINIT消息的处理。如下图所示,修复代码中增加的语句是:ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, NULL)

代码修复

代码修复

ssh_dispatch_set()函数的定义是:

ssh_dispatch_set()函数实现

ssh_dispatch_set()函数实现

由此可得ssh->dispatch[SSH2_MSG_KEXINIT]= NULL,也就是说在接收到KEXINIT消息后,直接将其设置为NULL,就不会及时将占用的内存,释放掉,从而避免该漏洞的产生。

绿盟威胁情报中心NTI对OpenSSH漏洞全球影响分析

  1. 全球漏洞分布情况

截止到今天,我们统计全球范围内存在此安全漏洞的设备数量已经达到274,371个。

这些受此漏洞影响的设备数量最多的国家是美国,占全部的52.79%,其次是德国,占6.3%,第三是中国,占4.87%,剩余国家分别是法国、英国、俄罗斯联邦、荷兰、加拿大、意大利等。

TOP20国家的受此漏洞影响的设备数量占全球总数的91.61%,其余8.39%分散在其他国家和地区内。

全球受此漏洞影响的分布国家TOP20占比情况如下

G20成员国受影响暴露面统计如下

  1. 中国地区受此漏洞影响的设备分布情况

中国各省份及地区分布的受此漏洞影响的设备总数量达14,606个。其中台湾地区所占数量最多,有4,192台设备受影响,其次是浙江、北京、香港等地区。

TOP10省份的受此漏洞影响的设备数量占中国总数的81.91%。其余18.09%的数量分散于其他省份或地区内。

受此漏洞影响的设备中国TOP10省份排名

修复建议

  • 官方尚未发布新版本,但是提供了源代码的修复。建议用户对源代码进行升级和编译。代码修复链接如下:
  • http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/kex.c#rev1.127
  • 在官方给出版本更新之前,如果OpenSSH服务不是必需的,建议临时将其关闭;如果用户确实需要OpenSSH服务,建议用户在使用时添加针对内存使用状况的监控。
  • 限制OpenSSH的并发连接数,由于攻击者发起的每个连接最大可以消耗服务器384MB的内存,用户可以根据内存使用上限设置最大并发连接数:
  • 使用绿盟云紧急漏洞在线检测服务进行免费检测,链接地址如下:

https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?service_id=1026

  • 使用绿盟科技的远程评估系统RSAS进行安全评估。
  • 使用绿盟科技防护类产品(IPS/IDS/NF)进行防护。
  • 已经购买了绿盟科技防护类产品服务的客户可以通过产品升级进行防护。
  • 短期服务:绿盟科技工程师现场处理。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。
  • 中期服务:提供 3-6个月的风险监控与巡检服务。根除风险,确保事件不复发。
  • 长期服务:基于行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)。

 

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

如果您需要了解更多内容,可以
加入QQ群:486207500、570982169
直接询问:010-68438880-8669

发表评论