百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

百度SDK漏洞分析及防护 手机百度出sdk

suiw9 2024-12-18 17:02 79 浏览 0 评论

近日,百度SDK被报存在WormHole虫洞漏洞,该漏洞从理论上说可以远程执行任意代码,攻击者可以窃取大量用户安卓手机数据。本文对该漏洞进行了分析及验证方法,并给出防护方案。

本文作者 黄灿、曲文集、曾海涛

  1. 10月14日,有人提交了百度SDK漏洞的报告,报告中将该漏洞称为WormHole虫洞漏洞;

  2. 11月1日,某国外安全厂商在其官方博客上,对该漏洞进行了深入分析;

  3. 11月3日,百度声称,”关于x厂商最新报告的可能存在问题的其余代码,在我们的修复之后已成为无用代码,不会产生影响。”

  4. 11月4日,绿盟科技安全服务部门对相关漏洞进行分析及验证。

绿盟科技威胁响应中心持续关注百度SDK虫洞漏洞事件的进展,如果您需要了解更多信息,请联系:

  • 绿盟科技博客

  • http://blog.nsfocus.net/

  • 绿盟科技威胁响应中心微博

  • http://weibo.com/threatresponse

  • 绿盟科技微信号

  • 搜索公众号绿盟科技

百度SDK漏洞

在产品开发过程中,软件厂商常常对外提供整合的开发环境,便于用户在此基础上快速开发自己的应用程序,在此平台上开发完成的程序,都会自动集成一些模块。所以,一旦开发平台出现问题,它所带来的危害是极为广泛的,这一点绿盟科技博客在之前的《XcodeGhost分析及在线检测》已经分析过。这方面有更为底层和经典的案例,是Ken Thompson在Unix的C编译器中植入的代码漏洞。

此次百度SDK虫洞漏洞相关的核心代码存在于SDK的com.baidu.hello.moplus中,所有使用该SDK开发的APP,均会开放40310端口响应数据请求。虽然请求限制在本地进行,但攻击者仍然很容易绕过,这可能导致用户数据的大量泄漏。

在2015年7月28日,曾经有人提交过类似的漏洞,当时漏洞存在于com.baidu.frontia.module.depplink中,可以通过向7777端口请求数据获取手机的IMEI值等信息。

漏洞从何而来

目前不知道百度SDK虫洞漏洞从何而来,是业务设计中存在逻辑错误,还是其他问题。但从下面的分析可以看出一些信息

  • XcodeGhost,SDK中存在存在远程服务器地址,根据ip地址就可以追踪;

  • 7月SDK漏洞,手机安装相关APP后将开放7777端口,所有人均可以连接;

  • 11月SDK虫洞漏洞,增加了40310端口,通过构造特殊的数据包仍旧很容易绕过限制,进而连接获取数据;

  • 在此次测试的百度地图APP中,7777端口仍旧在监听,不过其核心逻辑已经做出了修改

可能的影响

? 80多个生活娱乐相关的APP受到影响,而且在一些机型出厂时,这些APP可能被预装;

? 7月SDK漏洞中存在的7777端口,目前许多APP中仍旧存在,仍旧存在被利用的可能;

?此次漏洞的POC已经开始在网络流传,大量用户信息可能遭到泄露;

?受此影响的安卓至少版本包括 4.x -5.x

漏洞分析

漏洞具体分析的条目及内容比较多,下面绿盟科技安全工程师简化了一些分析步骤,以便于安全行业从业人员也可以模拟重现这个分析过程。

测试用例

由于在受影响的APP中,有相当多的APP会使用百度地图,故将其作为测试样例,并进行安装。

分析目标:使用百度存在WormHole漏洞版本的SDK开发的APK应用。实际测试中被测样本超过10个。

分析环境:Andorid 4.x/5.x

动态分析

启动百度地图后,通过netstat指令查看监听接口,发现应用会启动7777和40310两个端口进行监听。

查看应用的AndroidManifest.xml文件,发现应用会开启一个名为com.baidu.hello.MoPlusService的服务。

经测试,目前该漏洞已经修复,虽然仍然会开启7777端口进行监听,但是漏洞核心逻辑已进行修改。本次SDK漏洞的核心代码存在于com.baidu.hello.moplus中。

静态分析

通过分析代码可知,应用会开启一个轻量级的HTTP服务器NanoHTTPD,通过内嵌入JAVA的方式处理GET和POST等一系列请求。(com.baidu.hello.patch.moplus.nebula.b.a)

应用在绑定好地址等信息后,会启一个新线程去处理来自远端的请求,类v中的run()函数写明了此线程是如何工作的。(com.baidu.hello.patch.moplus.nebula.b.v)。在新线程中应用会实现一个socket去进行数据交互。由while (a.a(this.a).isClosed())可知,只要服务未关闭,每当接收到InputStream时,就会实例化一个l类的对象去处理接收到的数据流。因此我们只要随着代码逻辑进入到类l中就会进一步得知应用处理数据流的逻辑。

进入com.baidu.hello.patch.moplus.nebula.b.l分析代码发现对于数据包的具体解析在类g中。

再继续进入类g(com.baidu.hello.patch.moplus.nebula.b.g)中,分析得知应用是通过实现抽象类的方式处理Session的,具体代码在com.baidu.hello.patch.moplus.nebula.b.w中。

攻击者最后结合应用中可解析的命令和解析逻辑构造出PoC

漏洞验证

如果您使用安卓手机查看本页面,可以直接点击如下按钮进行验证。点击该按钮,你的浏览器将打开你手机的本地地址http://127.0.0.1:40310/getcuid?mcmdf=inapp_

如果您在点击按钮后,出现如下画面,则说明存在相应的漏洞

可能的攻击形式

攻击者如果想要远程访问,需要在构造请求包的时候添加一个名为”remote-addr“的字段,并将这个字段的值置为127.0.0.1,因为应用会在解析geolocation、getcuid等指令前判断请求是否是本地请求。

防护方案

对于个人用户来说,请关注对应APP的升级信息,当然建议尽可能从其官方站点下载升级版本,避免遭遇二次伤害。对于企业用户来说,可以使用扫描器,扫描网络中接入的移动终端设备,检查是否存在WormHole漏洞,并通过设置放火墙规则来阻断相应端口的通信。对于企业而言,这种通过扫描器进行远程检测,也是目前更为经济、影响更小、使用更便捷的方式。

以绿盟远程安全评估系统(NSFOCUS Remote Security Assessment System 简称:NSFOCUS RSAS)为例,在企业环境中,对业务系统部署RSAS,可以实时扫描及检测百度SDK漏洞。目前RSAS V6版本已经推出相应的插件升级包,请所有使用绿盟产品的用户尽快升级产品规则。

产品防护

如同木桶效应一般,业务环境的加固只是依赖于漏洞加固是不够的,整体安全等级的提升以及应对未来的攻击,安全产品是必不可少的一环。在企业环境中,部署绿盟网络入侵防护系统(Network Intrusion Prevention System,简称NIPS)为例,对业务系统部署NIPS,可以防护百度SDK漏洞可能带来的攻击。目前NIPS已经推出 567、568、569各版本的规则升级包,请所有使用绿盟产品的用户尽快升级产品规则。

升级办法

绿盟科技已在软件升级公告中提供规则升级包,规则可以通过产品界面的在线升级进行。如果您的业务系统暂时还无法升级规则包,那么可以在软件升级页面中,找到对应的产品,通过下载升级包,以离线方式进行升级。

相关升级信息请访问:

  • 安全产品介绍:http://www.nsfocus.com.cn/1_solution/1_2_1.html

  • 产品升级公告:http://update.nsfocus.com/

威胁情报

威胁情报的获取及响应都体现了防御能力的建设程度,威胁情报服务体系至少包含了威胁监测及响应、数据分析及整理、业务情报及交付、风险评估及咨询、安全托管及应用等各个方面,涉及研究、产品、服务、运营及营销的各个环节,绿盟科技通过研究、云端、产品、服务等立体的应急响应体系,向企业和组织及时提供威胁情报,并持续对对匿名者攻击事件进行关注,保障客户业务的顺畅运行。

如果您对我们提供的内容有任何疑问,或者需要了解更多的信息,可以随时通过在微博、微信中搜索绿盟科技联系我们,欢迎您的垂询!

请关注绿盟科技博客 http://blog.nsfocus.net/baidu-sdk-vulnerability/

相关推荐

俄罗斯的 HTTPS 也要被废了?(俄罗斯网站关闭)

发布该推文的ScottHelme是一名黑客,SecurityHeaders和ReportUri的创始人、Pluralsight作者、BBC常驻黑客。他表示,CAs现在似乎正在停止为俄罗斯域名颁发...

如何强制所有流量使用 HTTPS一网上用户

如何强制所有流量使用HTTPS一网上用户使用.htaccess强制流量到https的最常见方法可能是使用.htaccess重定向请求。.htaccess是一个简单的文本文件,简称为“.h...

https和http的区别(https和http有何区别)

“HTTPS和HTTP都是数据传输的应用层协议,区别在于HTTPS比HTTP安全”。区别在哪里,我们接着往下看:...

快码住!带你十分钟搞懂HTTP与HTTPS协议及请求的区别

什么是协议?网络协议是计算机之间为了实现网络通信从而达成的一种“约定”或“规则”,正是因为这个“规则”的存在,不同厂商的生产设备、及不同操作系统组成的计算机之间,才可以实现通信。简单来说,计算机与网络...

简述HTTPS工作原理(简述https原理,以及与http的区别)

https是在http协议的基础上加了一层SSL(由网景公司开发),加密由ssl实现,它的目的是为用户提供对网站服务器的身份认证(需要CA),以至于保护交换数据的隐私和完整性,原理如图示。1、客户端发...

21、HTTPS 有几次握手和挥手?HTTPS 的原理什么是(高薪 常问)

HTTPS是3次握手和4次挥手,和HTTP是一样的。HTTPS的原理...

一次安全可靠的通信——HTTPS原理

为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信...

为什么有的网站没有使用https(为什么有的网站点不开)

有的网站没有使用HTTPS的原因可能涉及多个方面,以下是.com、.top域名的一些见解:服务器性能限制:HTTPS使用公钥加密和私钥解密技术,这要求服务器具备足够的计算能力来处理加解密操作。如果服务...

HTTPS是什么?加密原理和证书。SSL/TLS握手过程

秘钥的产生过程非对称加密...

图解HTTPS「转」(图解http 完整版 彩色版 pdf)

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。...

HTTP 和 HTTPS 有何不同?一文带你全面了解

随着互联网时代的高速发展,Web服务器和客户端之间的安全通信需求也越来越高。HTTP和HTTPS是两种广泛使用的Web通信协议。本文将介绍HTTP和HTTPS的区别,并探讨为什么HTTPS已成为We...

HTTP与HTTPS的区别,详细介绍(http与https有什么区别)

HTTP与HTTPS介绍超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的...

一文让你轻松掌握 HTTPS(https详解)

一文让你轻松掌握HTTPS原文作者:UC国际研发泽原写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。...

如何在Spring Boot应用程序上启用HTTPS?

HTTPS是HTTP的安全版本,旨在提供传输层安全性(TLS)[安全套接字层(SSL)的后继产品],这是地址栏中的挂锁图标,用于在Web服务器和浏览器之间建立加密连接。HTTPS加密每个数据包以安全方...

一文彻底搞明白Http以及Https(http0)

早期以信息发布为主的Web1.0时代,HTTP已可以满足绝大部分需要。证书费用、服务器的计算资源都比较昂贵,作为HTTP安全扩展的HTTPS,通常只应用在登录、交易等少数环境中。但随着越来越多的重要...

取消回复欢迎 发表评论: