Check Point 的研究员发现了 LG(也称为 LGEIME)智能手机的两个漏洞,这些漏洞都存在于默认的键盘上,而且是 LG 设备独有的。第一个漏洞是在敏感过程中存在一个不安全连接;第二个漏洞是由于 LG 文件系统存在验证缺陷。利用这两个漏洞都可远程获取 LG 设备的高级权限,控制设备的键盘更新过程,实施键盘记录行为,从而对用户的隐私和身份验证信息造成威胁。
Check Point 的研究员在几个月前发现了 LG(也称为 LGEIME)智能手机的两个漏洞,这些漏洞都存在于默认的键盘上,而且是 LG 设备独有的。根据 2017 年对美国 AndroidOEM 市场的调查,LG 设备占比超过 20%。研究员针对 LG 的一些旗舰产品进行测试,发现这些漏洞可以被利用,产品包含 LG G4、LG G5 和 LG G6。
第一个漏洞是在敏感的过程中存在一个不安全连接;第二个漏洞是由于 LG 文件系统存在验证缺陷。利用这两个漏洞都可远程获取 LG 设备的高级权限,控制设备的键盘更新过程,实施键盘记录行为,从而对用户的隐私和身份验证信息造成威胁。
LG 设备的键盘默认安装语言为英语,但也支持多种语言的手写模式以及用户自定义的其它语言。当安装新的语言或者更新现有语言时,设备会访问一个硬编码的服务器,从中检索被请求的语言文件,但是这个下载过程是通过一个不安全的 HTTP 连接完成的,这使得攻击者可以进行中间人攻击或者其它的危害操作。这样的攻击导致设备下载到恶意文件而非需要的语言文件。
由于每一个手写语言包在 LG 键盘应用中都有独立的文件目录:
/data/data/com.lge.ime/VODB/<databaseversion>/<language ID>
一个语言包包含机器学习模型的源文件和一个 files.txt 的元数据文件。files.txt 包含和当前语言包相关的所有文件的列表,列出每个文件的文件名、文件内容的 md5 哈希值和文件的大小。
手写语言更新过程和新语言下载一样,包含两个逻辑过程:
下载 files.txt 元数据文件; 解析元数据文件并写在其中列出的所有源文件。
但是每个下载都是通过不安全的 HTTP 连接进行的,下图中下载英语语言包的 URL 为:http://lgresources.visionobjects.com/5.1.0.73/en_US.
由于存在不安全的连接,files.txt 元数据文件可被修改为中间人代理,也可以注入其它的文件,LG 键盘程序将会从中间人代理 URL 下载恶意文件。
下载文件的磁盘也可以被 MITM 代理控制,前面提到一个源文件的位置和其文件名有关,都记录在 files.txt 元数据文件中。通过路径遍历机制,文件名称可以作为其位置(目录),也可修改为 LG 键盘包沙盒中的其它位置。
LG 的键盘应用假定本地 lib 文件是语言包中的一部分,并授权下载的所有文件为.so 的可执行文件。当元数据文件被修改为.so 文件,那么这个流氓 lib 文件也就被标记为可执行文件。
这个流氓.so 文件被放置到文件系统,然后需要强制 LG 键盘应用程序加载它。一种方法是在键盘配置文件(/data/data/com.lge.ime/files/Engine.properties)中标示该 lib 为「输入方法扩展库」。
通过修改 files.txt 元数据文件、Engine.properties 配置文件,利用 lib 注入的方式,这些文件也可被一个虚假文件代替。LG 的键盘程序加载配置文件中指定的 lib 文件到程序重启项中,一旦键盘程序启动,这个流氓 lib 文件就会被加载。完成以上操作后,就只需要等待应用程序重启加载库。
Check Point 的研究员已将这两个漏洞反映给 LG 公司,该公司在其 5 月份的安全更新中发布了相关补丁(LG 将两个漏洞合并为一个:LVE-SMP-170025)。建议用户及时进行更新。
*参考来源:CheckPoint,由 JingleCats 编译,转载请注明来自 FreeBuf.COM