多个供应商无客户端SSL VPN产品同源策略绕过漏洞

漏洞起因
设计错误
 
影响系统
SonicWALL SSL-VPN 4000 3.5 5
SonicWALL SSL-VPN 4000 3.5 4
SonicWALL SSL-VPN 2000 3.5 5
SonicWALL SSL-VPN 2000 3.5 4
SonicWALL SSL-VPN 200 3.0 9
SonicWALL SSL-VPN 200 3.0 8
SonicWALL SSL-RX 4.0 .18
SonicWALL SSL-R6 4.0 .18
SonicWALL SSL-R3 4.0 .18
SonicWALL SSL-R 4.0 .18
SonicWALL SSL VPN 200 2.1
SonicWALL SSL VPN 1.3 3
SonicWALL SSL VPN 2.5
Juniper Networks SA700 SSL VPN 0
Cisco Clientless SSL VPN (WebVPN) 0
Cisco Adaptive Security Appliance 8.2.1 3
Cisco Adaptive Security Appliance 8.2.1
Cisco Adaptive Security Appliance 8.1.2 25
Cisco Adaptive Security Appliance 8.1.2
Cisco Adaptive Security Appliance 8.0.4 34
Cisco Adaptive Security Appliance 8.0.2 11
Cisco Adaptive Security Appliance 8.1(2)19
Cisco Adaptive Security Appliance 8.1 (2)14
Cisco Adaptive Security Appliance 8.0(4)
Cisco Adaptive Security Appliance 8.0
Cisco Adaptive Security Appliance 7.2.2.34
Cisco Adaptive Security Appliance 7.2
Cisco Adaptive Security Appliance 7.1.2.61
Cisco Adaptive Security Appliance 7.1
 
不受影响系统
 
危害
远程攻击者可以利用漏洞绕过同源策略限制,可能访问由cookie限制的受限资源。
 
攻击所需条件
攻击者必须受影响的无客户端SSL VPN产品。
 
漏洞信息
WEB浏览器强制使用同源策略以防止某个站点的活动内容(如JavaScript)从其他站点数据中访问或修改,如在
http://<example.com>/page1.html上的活动内容可通过http://<example.com>/page2.html访问DOM对象,但是不能通过http://<example.net>/page.html来访问对象。许多无客户端SSL VPN产品从不同站点获得内容,然后把这些内容作为来自SSL VPN的内容提供,可导致绕过浏览器的同源限制。
无客户端SSL VPN提供基于浏览器的内部和外部资源的访问,而无需安装传统的VPN客户端。一般情况下,这些WEB VPN可用于访问内部站点(如内部webmail服务器),但不少web vpn提供更多如访问内部文件共享或远程桌面的功能。要连接一个VPN,web浏览器用于对web vpn的验证,然后web vpn从请求页面中获取和提供内容。
web vpn服务器一般使用如下过程与客户端进行描述:
1,用户使用WEB浏览器提供验证凭据给web vpn,验证授权可通过提交用户名和密码或其他多因子验证的方法来完成。
2,web vpn对用户进行校验并为会话指派ID,以cookie形式发送给用户浏览器。
3,之后用户可以浏览器内部资源,如webmail服务器或内部web服务器,用户可提交
https://<webvpnserver>/www.intranet.example.com请求获得内容信息。
当web vpn获取到web页面时,它会对超链接重写以通过web vpn访问,如
http://<www.intranet.example.com>/mail.html链接可变为https://<webvpnserver>/www.intranet.example.com/mail.html。请求web服务器设置的cookie在发送给用户浏览器之前会转换为全局唯一cookie,这用于防止来自不同请求域的两个相同名称的cookie相碰撞,如intranet.example.com设置的sessionid cookie在从web vpn发送给用户浏览器之前会重命名intranet.example.com_sessionid。另外wev vpn会替换特定HTML DOM对象的引用,如document.cookie,这些DOM对象会被脚本替换并把值返回给DOM对象,这样可在请求站点域的安全上下文中访问。
如果攻击者构建一个页面,以如上替换方式混淆document.cookie元素,以避免被web vpn重写,那么在返回页面中的document.cookie对象将代表web vpn中的用户的cookie,在这document.cookie中包括web VPN会话ID cookie本身和所有通过web vpn的由站点请求设置的全局唯一cookie,然后攻击者可以利用这些cookie劫持用户的VPN会话和所有依赖cookie来进行会话识别的通过web vpn访问的所有其他会话。
另外,攻击者也可以构建包含两个帧的页面,一个帧设置隐藏,另一个显示合法的内部站点,隐藏帧可记录另一个帧中的所有击键,并把击键记录作为XMLHttpRequest GET参数提交给攻击者站点。
注意,如果VPN服务器允许连接任意因特网站点,这些站点可被任何因特网中的站点利用。
 
测试方法
 
厂商解决方案
用户可参考如下方法临时解决安全漏洞:
-显示URL重写到可信域
如果VPN服务器支持,URL只允许重写到可信内部站点,所有其他站点和域不能通过VPN服务器访问。
-限制VPN服务器网络对可信域的连通
可把VPN设备配置成值允许对特定网络域的访问,这可通过防火墙规则来限制。
-禁用URL隐藏功能。
 
漏洞提供者
David Warren and Ryan Giobbi, Michal Zalewski

发表评论?

0 条评论。

发表评论