一、 事件背景
思科公司是全球领先的网络解决方案供应商,其提供的解决方案是世界各地成千上万的公司、大学、企业和政府部门建立互联网的基础,用户遍及电信、金融、服务、零售等行业以及政府部门和教育机构等。思科制造的路由器、交换机和防火墙等其他设备承载了全球80%的互联网通信。
近日,思科公开了旗下ASA防火墙设备的拒绝服务&远程代码执行漏洞(CVE-2018-0101)。该漏洞如果被成功利用,将导致远程设备内存破坏,造成设备重启或拒绝服务,甚至允许攻击者在无需用户验证的情况下实现远程代码执行,进而远程控制设备并产生进一步的攻击行为。
相关链接:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-0101
二、 漏洞复现
利用脚本发送数据包,当第一次发送时正常回显,特征码为200。当第二次发送相同数据包时,链接超时无回显,即ASA已崩溃。
三、 漏洞分析及危害
1) 漏洞分析
此漏洞发生在ASA解析XML数据包并回复的过程中,上图代码中第28行表示通过回调函数来解析XML数据。
上图中为aggregatexmldatahandler函数代码,其中15行中的v4代表要解析的XML tag,16行的13代表host_scan_reply,当函数开始解析时首先判断tag是否为host_scan_reply,如果是,会读取全局变量A38E4F8(存放host_scan_reply中内容的内存块的指针)的值
如上图60行,当指针指向的内存块中是有内容的时候,将在61行进行Strncat操作,当指针指向的内存块中没有字符时,将会指向一个新的内存块来存放解析出的XML内容。
如上图,当解析结束时,系统将释放内存。
通过整个流程发现当ASA第一次解析我们发送的数据时,虽然在代码最后有释放内存的部分,但是代码中还是存在一个全局变量保存着申请的内存的指针,当第二次解析我们发送的数据时,指针仍然被保存在全局变量中,通过刚才的分析得知当指针指向的内存块中是有数据的时候,将会进行Strncat操作,新解析的数据将会直接被写入内存块中,在最后的释放内存操作中,两次释放统一内存块,则会造成同一个指针被释放两次,拒绝服务则在此刻发生。
2) 漏洞危害
通过此次漏洞不仅可以进行拒绝服务攻击,还可以通过控制会话报文进行远程代码执行。拒绝服务漏洞将会造成服务崩溃甚至服务器宕机,然而一但该漏洞被成功利用造成远程代码执行漏洞,则可实现对整个服务器甚至多个服务器的管理控制,并进行更加深层的攻击。
四、 数据分析
1) 世界分布
世界范围内使用Cisco ASA系列的防火墙数量约为210万台左右。其中,排名前五的国家分别为:美国、中国、加拿大、英国、德国。
下图为世界范围内使用Cisco ASA系列的防火墙分布情况:
图1、世界分布图
下图为世界范围内使用Cisco ASA系列的防火墙数量排名前十的国家:
图2、世界排名前十
2) 国内分布
中国境内使用Cisco ASA系列的防火墙数量约为16.4万台左右。其中,排名前五的省份或地区分别为:上海市、香港特别行政区、北京市、广东省、江苏省。
下图为中国范围内使用Cisco ASA系列的防火墙分布情况:
图3、国内分布图
下图为中国范围内使用Cisco ASA系列的防火墙数量排名前十省份或地区:
图4、国内排名前十
下图为国内使用Cisco ASA系列的防火墙的国内运营商排名:
图5、国内运营商排名前十
五、 防范建议
1) 漏洞影响范围
3000 Series Industrial SecurityAppliance (ISA)
ASA 5500 Series AdaptiveSecurity Appliances
ASA 5500-X SeriesNext-Generation Firewalls
ASA Services Module for CiscoCatalyst 6500 Series Switches and Cisco 7600 Series Routers
ASA 1000V Cloud Firewall
Adaptive Security VirtualAppliance (ASAv)
Firepower 2100 Series SecurityAppliance
Firepower 4110 SecurityAppliance
Firepower 9300 ASA SecurityModule
Firepower Threat DefenseSoftware (FTD)
2) 漏洞检查流程
检查系统是否启用了webvpn的功能
show running-config webvpn
检查系统版本
show version | include Version
3) 修复建议
目前Cisco给出了该漏洞补丁,请查阅如下页面:
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20180129-asa1