当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-010432

漏洞标题:工行U盾可以对可执行文件签名,使恶意软件绕过杀毒

相关厂商:工商银行

漏洞作者: 路人甲

提交时间:2012-08-01 11:16

修复时间:2012-09-15 11:17

公开时间:2012-09-15 11:17

漏洞类型:系统/服务运维配置不当

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-08-01: 细节已通知厂商并且等待厂商处理中
2012-08-06: 厂商已经确认,细节仅向厂商公开
2012-08-16: 细节向核心白帽子及相关领域专家公开
2012-08-26: 细节向普通白帽子公开
2012-09-05: 细节向实习白帽子公开
2012-09-15: 细节向公众公开

简要描述:

工行U盾内置的数字证书没有限定用途,可以用来进行代码签名,签名后的可执行文件在安装有工行证书链的电脑上(即工行网银用户的电脑上)能够得到信任,一些杀毒软件无条件信任签名后的可执行文件。

详细说明:

工商银行的U盾内置了工商银行颁发给用户的一个包含私钥的数字证书,本来只是用于确认身份,但是该证书的使用策略却没有限定使用用途,这就导致证书可以用于所有用途, 包括代码签名。代码签名是用来证明软件来源可靠的,也是现在许多杀毒软件防止误杀的判断条件之一。
工商银行个人用户的证书链是固定的。
根证书 ICBC Root CA(5a 96 02 03 c1 0c fa 8d 42 dd 11 5b 61 15 4f 98 e2 f6 17 f7)
中级颁发机构 ICBC Personal Sub CA(2b 3e dc 77 57 4d 73 a2 af cf 5a 1b 03 19 44 c1 21 86 35 bb)
凡是装有这两个证书的电脑(也就是所有工行网上银行用户的电脑)都会把通过上述方法进行签名的程序视为来源可靠的程序,包括恶意软件。这种情况下,相当一部分杀毒软件会对这些签名过的程序无条件信任。

漏洞证明:

下载一个signtool 代码签名工具(VS 套件中也有这个程序)
拿出你的工行U盾(我是用的是明华2代,不知道其他U盾是否也能)
准备一个exe病毒,比如vir.exe,
插入U盾,在U盾管理程序中在本机注册U盾,这样就可以在证书管理工具中找到该证书,复制下证书使用者字符串,比如"12345.p54321"。
在cmd中使用signtool执行如下操作

signtool.exe sign /n "12345.p54321" /ph vir.exe


输入你的U盾密码,这样vir.exe就被签名并信任了。
你可以掏出国内常用的杀毒软件逐一测试了。

修复方案:

很难修复,除非重新给所有用户颁发有策略限制的数字证书。
这个漏洞暂时只在工行的U盾产品上出现,建设银行的数字证书有严格的策略限制,其他的没有测试。
是的,你肯定说,这么签名身份肯定会暴露,谁那么傻拿这个来做病毒。可是如果有人用假身份拿到了U盾呢?如果有人盗用别人的U盾呢?
给个人用户颁发一个不限使用策略的数字证书本身就是非常危险的行为,况且这个证书还受到一个广泛使用的证书链的信任。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:4

确认时间:2012-08-06 08:13

厂商回复:

CNVD未直接复现所述情况(针对应用程序签名,并通过杀软测试),将直接转由CNCERT联系工商银行对口部门处置。
参考以往讨论结果,暂不认定为漏洞。rank 4

最新状态:

暂无