Noticeboard
back

携手白帽子,让小米手机更安全

Post by Geng Yang 杨更 at 2015-03-14 18:19:02

你们或许已经看过Bluebox发布的这篇[关于小米手机4的博客][1]了,这篇博客被其他媒体纷纷转载,已经在世界范围内引起了广泛的传播。 首先,我们想强调的是,经过充分调研,我们已经确定了BLUEBOX测试的设备是在中国从非官方渠道购买的假冒产品。BLUEBOX在后来更新的博客中承认这一事实。

“我们在得到正确版本的小米手机鉴定APP后安装在我们的设备上,得到的报告为该设备不是合法正版的小米手机,这与小米公司的调查结果一致。”—Andrew Blaich,,BlueBox安全分析师

尽管如此,对于此事件用户们心中可能仍然有些疑问。作为小米安全团队的负责人,我将从我的角度来为大家回答以下几个问题:

1. 为什么小米安全团队没有及时回应Bluebox的漏洞报告?

首先,有以下几点事实:

a)小米安全对外邮箱security@xiaomi.com分别在2015-2-18,2015-2-19,2015-2-24,收到了三封来自andrew@bluebox.com的邮件。

b)自从security@xiaomi.com这个邮箱对外公布以来,我们每天会收到大量的垃圾邮件,因此该邮箱开启了垃圾邮件拦截功能。

c)很不幸,来自andrew@bluebox.com的邮件被垃圾邮件拦截系统过滤,直到2015-3-5我们才看到他们发来的邮件。

d)从3月5号开始,我们的团队与Bluebox展开了密切合作,着手处理这一问题。我必须承认,对Bluebox的漏洞报告没有及时回复是我们工作的重要失误。将如此重要的邮件账户被垃圾邮件系统过滤,我代表小米对此做出道歉,这是我们不应该犯的错误。然而,我想指出的一点是:

基于Bluebox对小米手机指控的严重性,Bluebox是否有尽足够的努力去联系小米公司呢?

尽管如此,这次事件也推动了我们去完善漏洞报告处理的工作。漏洞报告政策对小米来说并不是新鲜事物。我们成立的小米安全中心,就是用于接收外界提交有关小米安全的漏洞。我们有官方的[漏洞评分标准与奖励方案][2],对于漏洞的报告者我们给予现金奖励。这个项目已经开展了一年多的时间,共有144位白帽子通过这个渠道给我们提交了安全漏洞,有超过一半的漏洞报告被证实有效。截止到2015年2月18日,我们收到的所有的漏洞报告都来自中国的安全团体,因此我们之前并没有对该页面进行国际化。 为了完善漏洞处理工作,我们采取了以下措施:

a)我们已经关闭了邮箱security@xiaomi.com的垃圾邮件过滤器。

b)我们阅读了之前被垃圾邮件过滤器过滤的所有邮件,且指定了一位工程师会每天阅读所有发送给 security@xiaomi.com的邮件。

c)我们已编写计算机脚本每天自动向security@xiaomi.com 发送心跳测试邮件,以确保该邮箱的有效。

d)我们国际化了我们的[漏洞评分标准与奖励方案][3],且我们正在做向海外白帽子以美元进行奖励的工作。

2.如果Bluebox都可以被欺骗,那数以亿计的消费者怎么就有火眼金睛去辨别假冒伪劣产品呢?小米能采取措施完全杜绝伪造或篡改小米手机吗?

这些都是很复杂的问题,见下面的回答:

a)假冒产品问题就是要一个认证问题。不幸的是,我们并不能在硬件上做数字签名(目前不能)。即使我们这样做了,消费者也无法用肉眼来辨别这些签名。

b)每一位安全专家都能理解,没有一个设备能完全抵御物理上的攻击。我认为Bluebox不能,Apple不能,甚至NSA也不能制造出这种神奇的设备。就在一年多以前,iphone就发生了遭[假冒充电器篡改iphone][4]的事件。因此,我们能做的就是增加对设备篡改的难度。除非我们能够保证每个设备都稍有不同,否则我们总能找到越狱的办法,并且可以将它打包成一个任何人都能使用的越狱工具。根据[这个维基百科页面][8]我们可以看到,iphone历史上都在数月甚至数天内被越狱。

一个假冒的小米手机在使用鉴定app时居然能给出测试分数,并得出自己是真的设备的结论,它是怎么做到的?

接下来几点或许能帮您真正了解这是怎么发生的:有一些越南的米粉上传了一些截图,证实假冒的小米手机4是如何欺骗CPU-Z(一款CPU检测软件)和安兔兔软件去得出自己是真小米手机的结论的:http://en.miui.com/thread-42873-1-1.html。它的工作原理是这样:

a)一些山寨手机厂商在手机中预存了一些经常被用户用来鉴定手机真假的app,当然这些app是被他们恶意篡改过后的版本,而且放在一些非常隐蔽的目录下。

b)用户买来手机,开始安装鉴定app, 如果这些新被用户下载的app的名称匹配到任何之前预装的app,新下载的app将被删除,且被悄悄替换成之前预装的经过篡改的版本。

c)这就意味着用户最后安装好的是一个经过恶意篡改的版本的app, 正是这个app得出手机是真小米手机这样一个结果。 在假冒产品制造商变得越来越聪明的今天,小米为了对付假冒产品已经采取了如下措施:

a)我们强烈建议消费者只从[Mi.com][5]和我们的零售合作伙伴如官方移动运营商店购买小米设备。用安全术语来打个比喻,如果数据是明文传输的,我们必须选择专用的数据通道,以保证数据的完整性。[Rajat Agrawal][6]在[这篇文章中][7]说得很好:“不仅仅是苹果的Iphone和三星的手机面临假冒产品的问题,一些中国本土的智能手机品牌也会遇到,它们十分受欢迎,但是产能有限。小米就是一个非常好的例子,上万台智能手机在互联网上发售,在数秒内就被抢购一空。然而,那些假冒产品只是在中国境内存在, 因为严格的进口法规和检查,确保了这些产品还没有流传到西方国家。”因此这一点也是可以理解的:大部分外国人面对假冒产品极其缺乏辨别经验,尤其是在没有正规产品做对比的情况下。

b)小米发布过 “小米鉴定”app,可以直接在 https://jd.mi.com下载, Bluebox也是在这里下载鉴定app的。在网页 https://jd.mi.com上,有一行显眼的以黄色为背景的红色中文,提示用户: “特别提示:鉴定结果仅会在当前页面上进行显示,如在手机端显示必为山寨手机。”因此,对于一个不懂中文的外国人忽略了这行告警文字,也可以理解了。我们已经着手开始了此app的国际版本的开发。

c)不便透露技术细节,但我可以告诉大家,小米的工程师正在努力进一步提高未来小米设备的防篡改性。 我自己也是一名安全工程师。如果我也来自美国,当我着手研究小米手机时,我个人会采取以下几点防护措施:

a)请两位在中国或者印度(两个来源)的可信任的朋友帮我从官方渠道购买小米手机,在保证证据链(有人监控,不会遭到替换)的条件下将这两个设备带给我。

b)如果证据链被打断(手机经过了第三人之手),那么我将考虑到因设备不可信而可能产生的所有结果。

c)当找到了藏在隐藏目录下的CPU-Z安装包后,反编译该应用程序,弄清楚到底为什么它会存在。

d)其他手段。我们后来收到了Bluebox传来的“小米鉴定”

apk文件,我们在十分钟内就得出了如下结论:

a) 这些代码是伪加密的,据推测是为了隐藏加密部分的行为,这是我们绝不会做的。

b)  该文件没法在正常的Android设备上安装运行。

c) 它的代码是这样运作的:它首先会检查它是否是运行在山寨的ROM下,如果不是,它就崩溃。在我们移除了那行检查代码后,我们重新打包成app安装在三星手机上运行,得到的报告显示,这个三星设备是小米手机4!

3.假设Bluebox的测试是在正版小米手机4上做的,那么在最初的Bluebox的报告中有多少内容是不准确的?

我需要确保100%澄清的是:

a)正版小米手机没有预装任何一个在Bluebox博客中列出的恶意软件。小米绝对不会做这样的事情。我在小米任职期间,如果发生了这样的事情,我将立刻辞职。

b)米4的发布版本没有root,USB的调试模式默认为禁用。且消费者手中米4的ROMs是经过我们的release key签名的。

c)目前中国发布的所有MIUI版本都提交并通过了CTS和GTS测试,包括在2015年3月5日发布的最新版本。

d)谷歌服务在中国是不可用的,因此我们需要小米应用商店app给我们的用户以替代Google 应用商店提供服务。国外的小米手机不会预装小米应用商店app,会默认安装所有Google的服务包括Google Play。我们用Bluebox app对正品小米手机进行了测试, 测试手机:小米手机4移动版,Android版本:4.4.4KTU84P; MIUI Version:MIUI--‐V6.2.1.0.KXDCNBK。我们的用户也可以对自己的米4进行同样的测试。 app本身是有用的,但就像任何软件一样,它并不会告诉你完整的事实和原理。下面我对Bluebox app发现的漏洞做如下解释:

a) *“-1.50设备具有已知漏洞。”*:这是由于GraphicsBuffer产生的漏洞,谷歌已于2015年2月发布补丁,它已经集成在4月即将发布的最新版本的MIUI之中。

b) *“-0.5用户安装了系统级的应用”*:这是由于系统预装的一款语音助理程序,名叫科大讯飞。这个应用被安装在数据分区是因为它实在太大了,系统分区放不下。

c) *“-0.50大量根证书的启用”*:我们只是重复使用了Android开源项目的证书存储。

d) *“-0.30大量的具有系统权限的应用程序”*:我想这取决于安装了多少应用程序。 还有一点是这个app 没有考虑到的:MIUI已经创新增加了一些安全功能,这在其他Android手机上是没有的,我想要指出这些创新点:

a) *“+1.50 授权管理”*:MIUI允许用户自己去管理每个app的权限,这是在2010年发布的第一个版本的MIUI中就具备的功能。

b) *“+1.00 自动扫描所有的apk文件”*:MIUI内置病毒扫描引擎,会在所有apk的安装过程中自动进行病毒扫描。

c) *“+0.50 开机启动服务管理”*:MIUI允许用户自己去设定一个app是否开机自动启动,我没有在其他Android手机上见过这个功能。 感谢您耐心阅读至此。我希望我们从这次事件中都能有所收获。放眼未来,我们期望能和所有的白帽子(包括Bluebox)一起合作,让小米手机变得更加安全。

[1]: https://bluebox.com/blog/technical/popular-xiaomi-phone-could-put-data-at-risk/

[2]: https://sec.xiaomi.com/#/notice/100020

[3]: https://sec.xiaomi.com/#/notice/100023

[4]: http://arstechnica.com/security/2013/07/trusting-iphones-plugged-into-bogus-chargers-get-a-dose-of-malware/

[5]: http://mi.com/

[6]: http://www.bgr.in/author/rajat-agrawal/

[7]: http://www.bgr.in/news/how-bluebox-fell-for-a-counterfeit-xiaomi-mi-4-to-claim-it-came-with-pre-installed-malware/?nsukey=HrV2e3Q0UiLSj5f7fgUzsFDbbB8DGTK47hSBP3P20SlhTckCot37HNbXkdvGhmDKCu774Y4ZmTyvba9wwndlvQ%3D%3D

[8]: http://en.wikipedia.org/wiki/IOS_jailbreaking#First_jailbreaks_by_device_and_iOS_version

—   联系我们   —

新浪微博

公众号