内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

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

2016-10-21 10:38 出处:清屏网 人气: 评论(0

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

相关链接如下:

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

文章目录

什么是 OpenSSH

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

影响的版本

目前已发布的所有版本

不受影响的版本

漏洞分析

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

SSH握手过程

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

代码修复

ssh_dispatch_set() 函数的定义是:

ssh_dispatch_set()函数实现

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

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

  1. 全球漏洞分布情况

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

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

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

受此漏洞影响的设备全球分布图

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

G20成员国受影响暴露面

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

中国各省份及地区分布的受此漏洞影响的设备总数量达69, 0879个。其中浙江地区所占数量最多,有 286523台设备受影响,其次是北京、广东等地区。

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

受此漏洞影响的设备中国各省份及地区分布图

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

修复建议

https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?pid=0&sid=0

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

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号