漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2016-0185354
漏洞标题:第三方消息推送SDK个推(igexin)因密码学设计缺陷导致通信流量可解密篡改
相关厂商:getui.com
漏洞作者: GoSSIP_SJTU
提交时间:2016-03-18 13:39
修复时间:2016-06-20 15:40
公开时间:2016-06-20 15:40
漏洞类型:设计错误/逻辑缺陷
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2016-03-18: 细节已通知厂商并且等待厂商处理中
2016-03-22: 厂商已经确认,细节仅向厂商公开
2016-03-25: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2016-05-16: 细节向核心白帽子及相关领域专家公开
2016-05-26: 细节向普通白帽子公开
2016-06-05: 细节向实习白帽子公开
2016-06-20: 细节向公众公开
简要描述:
个推是一套第三方推送技术解决方案,大量应用程序(参见http://www.getui.com/case/)通过集成个推SDK来达到给客户端推送消息的功能。但其用于保护通信流量的密码学实现存在重大缺陷,导致推送流量可被解密甚至篡改,从而造成使用该SDK的应用程序都存在用户隐私泄露、恶意消息推送等严重问题。
详细说明:
由于保护通信流量的实现存在严重密码学问题,导致获取到推送流量的中间人可以实时恢复出通信密钥,进而可以解密消息获取推送协议的交互数据、修改交互数据内容、重新加密回合法消息。
漏洞证明:
下面是虾米音乐应用从屏幕点亮到收到一条推送消息的过程中所有通信解密后的情况,从中可以看到一个完整的推送过程。
通信过程中由于作为中间人可以解密、篡改和加密数据包,因此可以任意更改推送的内容,例如更改推送的文字、链接,甚至通过更改action_chains的动作属性,达到startapp,startweb等动作。
以下视频(密码gossip)给出两个演示,第一个使用个推给出的demo程序来验证集成了个推SDK的应用程序所进行的推送通信确实可以被在线实时解密和修改。演示中原本推送来的消息是打开**.**.**.**网页,经我们的中间人后,变为**.**.**.**。
第二个演示以虾米音乐为例,想要说明的是该应用的确使用了个推协议进行消息推送,并且我们可以解密。若在恰当的时机收到服务器推送的消息,即可像演示一中那样做内容篡改。
修复方案:
更改密码学相关设计与实现,使用密码学安全的算法与协议。
版权声明:转载请注明来源 GoSSIP_SJTU@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:6
确认时间:2016-03-22 15:37
厂商回复:
1.本次漏洞产生原因是因为个推系统设计初期,综合评估手机的处理性能问题和功耗问题,同时考虑到很多第三方应用会对他们的下发消息进行私有的数据加密处理,因此个推采用了一种安全性相对较弱的通讯加密处理机制。目前对于安全强度要求较高的客户,均在对消息中的payload进行了额外的私有数据加密处理。
2.此次所报的漏洞只可能发生在某个网络中间节点进行统一劫持篡改才会造成一定程度的影响,即用户手机连接上被植入恶意程序的Wifi路由或者手机Wifi热点时,才有可能造成影响。对于绝大多数手机,仍然可以确保数据隐私以及数据不被监听或篡改。目前业内暂未有因为中间人攻击而造成大规模影响的先例。
3.针对于此漏洞,个推平台将在近期加强安全措施,提供新版本SDK,实现采用更高强度的通讯加密方式以及防篡改和防抵赖手段,同时增加相应的服务器设备和带宽资源用于支持相应的安全机制,从而修补此漏洞。
最新状态:
暂无