骗子破解可以破解手机 键盘的应用程序

你有一个的三星手机?

瑞安韦尔顿,一个主持人在伦敦的黑帽子 ,又拿出了一些坏消息要告诉你 :内置到您的设备可能会让你受到攻击的键盘应用程序。

据韦尔顿, 许多车型银河在众多移动运营商可能存在风险,包括S4,S4迷你,S5和S6。

显然,三星手机包括捆绑和-贴牌版本SwiftKey ,一个流行的键盘应用程序,声称自己是比一般的键盘冷却器和更聪明,让你要什么类型旁边的更好的预测。

不幸的是,韦尔顿当他开始四处挖掘发现,作为安全研究人员喜欢做的事,SwitftKey,而只是淡淡地更名为SamsungIME,三星的变种,包括自动更新“功能”……

……那不认证或完整性。

这是一个类似的错误,以我们最近写了一篇关于孔Hospira的药泵 ,其中一名研究人员发现,他可以上传一个固件更新,无需担心验证。

那种脆弱性使得它更容易比它应该是一个骗子养活假代码或数据到您的设备,并最终重新编程几乎任意。

韦尔顿注意到三星的IME(输入法编辑器 – 用于马力式键盘软件技术人员的名字),通过普通的HTTP旧更新本身,使用这样的Web请求:

GET http://skslm.swiftkey.net/samsung/down.../az_AZ.zip

你可能会想到这样的一个更新为使用TLS(传输层安全),并由此去通过HTTPS,因为TLS加密和加密性好。

但是,严格来说,这不是那么多的保密你后在这种情况下,因为更新的内容不是秘密。

事实上,你可以下载原SwiftKey应用的APK(Android包)直接从谷歌播放,并从手机中提取它来检查你的休闲。

NB。SwiftKey的自己的应用程序不受此漏洞影响。你得到SwiftKey Android的来自谷歌播放,以及它的更新,所以它是安全的,因为谷歌播放。

真正重要的是认证完整性 ,这样你就可以说服自己的更新来自于一个可信赖的来源,并没有被篡改沿途。

如果处理得当,TLS(因此HTTPS)可以同时提供这些功能,但由于没有TLS的不韦尔顿需要满足自己的证据有EWAS问题。

毕竟,更新包本身可能已被数字由三星签署,并在更新过程中验证,以确定它已经到达了来自三星的官方资料库修改。

事实上,有一些验证在更新过程中完成的。

但很快威尔顿发现,“数字签名”是一个简单的SHA1哈希值,在什么叫做清单文件中指定:

{
  “名”:“英语(美国)”,
  “语言”:“恩”,
  “国”:“美”,
  “SHA1”:“3b98ee695b3482bd8128e3bc505b427155aba032”
  “版本”:13,
  “档案”:“HTTP://skslm.swiftkey.net/samsung/down ...
  “活”:{
    “SHA1”:“b846a2433cf5fbfb4f6f9ba6c27b6462bb1a923c”
    “版本”:1181,
    “档案”:“HTTP://skslm.swiftkey.net/samsung/do ...
   }
}

可悲的是,清单文件,包括SHA1哈希值,是自己在一个未经验证的HTTP请求下载,只是包本身之前:

GET http://skslm.swiftkey.net/samsung/down.../languagePacks.json

→ JSON代表JavaScript对象表示法 ,简单的,紧凑的,基于文本的,易于处理的,人类可读的文件通常用于交换基于网络的客户端和服务器之间的数据格式。 JSON的存在使得无论何时你发现自己在想,“我将使用XML,”你不必。

换句话说,如果你要发送一个修改(或者甚至是完全不同的)更新ZIP文件,你不必攻入第一的三星,窃取其精心守护签名密钥之一。

所有你需要做的是修改舱单修改匹配您的邮政编码。

更糟糕的是,韦尔顿注意到三星的更新与特权android.uid.system运行,这意味着被攻击的ZIP送入作为更新,在理论上,几乎无所不能,包括读取和写入文件几乎任何地方的设备上。

随着(更准确地,用多了一点聪明的思维和相当多的工作)做一些工作,他能够打包一个Trojanised ZIP,将直接运行他选择的方案,使之成为一个完整的RCE,或远程执行代码漏洞。

该怎么办?

•如果你是一个三星的用户…

假设你的手机是脆弱的(韦尔顿出版了部分清单 ),没有一大堆你可以做,除了尽量避开网络,您不信任,其中一个骗子可能会尝试拦截和破解您的流量。

一线希望,如果这不是太强的方式来描述它,就是一个骗子无法利用此漏洞只是每当他喜欢:你是他的狡猾的网络上,当一个IME更新情况,以及他要通知时间跳作为一个人在这方面的中间人。

然而不幸的是,它似乎SamsungIME无法卸载,并不断更新,即使你禁用它,并使用不同的键盘代替。

•如果你是负责编码更新程序员…

不走捷径当谈到真实性和完整性。

一个无符号的SHA1校验是罚款作为初始确认您的更新是不小心损坏。

(但使用SHA2或SHA3相反:世界是由SHA1搬走,因为它有一些弱点加密,这意味着它是有道理的,现在砸,有人发现了一种完全打破之前。)

但是,你需要使用更严格的排序数字签名,以及或替代,基于公共密钥加密,验证的更新来自哪里,你预期不变。

即使你使用HTTPS / TLS您更新加密,这是不够的。

您还需要做些什么叫TLS 证书验证 ,以确认您正在下载东西的正确性。

脚注

据韦尔顿,三星编码来修复此问题在2015年年初,但 -​​ 经常发生在Android生态系统 – 目前还不清楚哪个移动网络已修补尚未哪些设备。

所有你真的可以做的是问,我们建议你做。

但是请你很好:越来越多的人要求他们的手机供应商有针对性谁,但礼貌地做了什么时,你就越有可能得到你需要的答案!

posted @ 2017-03-23 17:01  欣欣王子  阅读(212)  评论(0)    收藏  举报