车控APP发现安全隐患,研究人员模拟黑客入侵

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

车控APP发现安全隐患,研究人员模拟黑客入侵

 

 

 

前言

在过去的几年中,互联网接入汽车越来越受欢迎。互联网接入的形式不仅仅限于多媒体系统(音乐、地图、电影),汽车钥匙系统也越来越流行。车主通过车控APP便能获得汽车GPS坐标、行车路线、解锁车门、发动引擎和打开辅助装置。这样的功能是一把双刃剑,为车主提供方便的同时也埋下了安全的隐患。如果偷车贼入侵了安装有汽车APP的移动设备,那么偷车岂不就是小菜一碟?


为了找到问题的答案,我们接下来将模拟入侵行为,希望车主能够从中学习到能够规避这种风险的方法。


潜在的威胁

车控APP非常流行,应用商店里那些最受欢迎的车控类APP的用户数量可达百万。下面列举了几个:

我们将选取7个APP作为我们的研究对象,这些APP可以控制来自不同制造商的车辆。我们不会揭露那些APP的名字,但是我们将研究结果通知了实验过程中涉及到的制造商。


我们对每个APP的以下几个方面做了检查:

1. 潜在的危险功能是否可用,是否可以通过APP偷车,或者是使某个系统瘫痪。

2. APP的开发人员是否采用方法来实现APP的逆向工程复杂化(代码混淆或者打包)。否则,偷车贼将很轻易就能看到APP的代码,找到漏洞,并利用漏洞入侵汽车的基础设施。

3. APP是否检查设备的root权限。如果恶意软件感染了有root的设备,那么它将能够做任何事情。在这种情况下,关键是要确定开发人员是否将用户凭证以纯文本的形式保存在设备上。

4. 是否有验证,向用户展示APP的GUI(overlay 保护)。Android允许监视向用户展示的APP,恶意软件可以通过向用户展示具有相同GUI的网络钓鱼窗口并窃取用户凭证来进行拦截。

5. 是否有APP完整性验证,例如APP是否能验证自身代码的更改。这关系到入侵者是否能注入他的代码到APP,然后发布到应用商店,并保持原来APP相同的功能和特征。

不幸的是,实验证明所有的APP总会在某个方面存在容易受到攻击的安全隐患。


测试车控APP

此次实验,我们从知名品牌的汽车APP中选择了7个最受欢迎的,测试了这些APP的能够被利用来访问汽车的基础设施的漏洞。

测试结果如下。此外,我们还审查了每个应用程序的安全功能。


APP #1

汽车注册过程为输入用户名和密码,以及汽车的VIN到APP。之后APP会显示一个PIN,这个PIN必须使用传统方法在车内输入,以便完成将智能手机链接到汽车的过程。这就意味着仅知道VIN不足以解锁车门。

APP不会检查设备是否有root权限 ,并将用户名以及汽车的VIN在accounts.xml文件中作为纯文本存储。如果木马在链接了的智能手机上具有超级用户访问权限,那么窃取数据将会非常容易。

APP #1可以轻松地被反编译,并且代码能被阅读和理解。除此之外,它不会抵消自己重叠的GUI,这就意味着用户名和密码可以被可能仅仅只有50行代码的钓鱼APP获得。如果APP有目标程序包的名称,我们应该能够检测到哪个APP正在运行和启动具有相似GUI的恶意行为。

为了进行完整性验证,我们修改了loginWithCredentials(登录凭证)方法。




在这种情况下,用户名和密码就这样简单的显示在智能手机的屏幕上,没有任何措施来阻止嵌入代码并向入侵者的服务器发送凭证。

没有完整性验证就意味着任何感兴趣的人都可以随心所欲的修改APP,并将修改过的APP发给潜在的受害者。签名验证非常缺乏。这样的攻击需要入侵者付出一些努力,因为他们必须能哄骗用户下载修改过的APP。这样的攻击是悄无声息的,所以用户在他的汽车被盗之前不会察觉到任何异常。

但是,好的方面是APP用SSL证书创建连接,这防止了中间人攻击。


App #2

该APP提供保存用户凭证,同时建议加密整个设备以防盗。这是可以理解的,但是犯罪者不是要偷电话,只是要“感染”它。在App #2中发现了存在于APP #1中的同样的问题,用户名和密码以纯文本的形式存储在 prefs file.{?????????}.xml file中(问号表示由APP随机生成的字符)。



VIN存储在下一个文件中。



随着实验的深入,我们得到了更多的信息。开发人员甚至没有时间去实施应用程序代码的完整性验证,并且由于某些原因,他们也忘记了做代码混淆。结果就是我们很容易的便能修改LoginActivity代码。



APP保留了自己的功能性,但是在注册过程中输入的用户名和密码在登录尝试后会立即显示在屏幕上。


App #3

与此APP配对的汽车可选择性的配置一个控制模块,控制模块可启动发动机和解锁车门。 由经销商安装的每个模块都有一个带有访问代码的贴纸,贴纸会交到车主手中,这样即便知道VIN也不可能将汽车链接到其他凭证。

但是仍然有其他的攻击可能性:首先,APP很小,它的APK大小为180 KB; 其次,整个APP将其调试数据记录到了保存在SD卡上的文件中。



在LoginActivity开始时记录日志



转储日志文件的位置

不幸的是日志记录只有在以下标志被设置在APP中时才能被启用:android:debuggable =“true”。 公共版本的APP是没有标志的,但我们可以将它插入到APP中。为此,我们将使用Apktool utility。启动编辑过的APP并尝试登录之后,设备的SD卡将会创建一个带有TXT文件的marcsApp文件夹。在我们的示例中,账户的用户名和密码已经输出到文件中。



当然,说服受害者删除原来的APP,并安装一个相同的带有调试标志的APP并不是那么容易。但是仍然是可以实现的,方法是将受害者诱导到一个网站去下载一个重要的更新,将编辑过的APP和安装手册伪装为更新。从经验上来说,病毒制作者善于使用社工的方法。现在向APP添加将日志文件发送到指定服务器或以SMS消息的形式发送到电话号码的功能并不是难事。


App #4

该APP允许将现有的VIN绑定到任何凭证,但是会发送请求到汽车的内置电脑上。因此,不成熟的VIN盗窃将不会有助于黑客入侵车辆。

但是,被测试的APP对于其窗口上的overlays是没有防御力的。如果入侵者获得了系统的用户名和密码,那么他便能够解锁车门。

令人遗憾的是,该APP将系统的用户名以及大量的其他有趣的数据以明文储存,例如汽车的制造、VIN和汽车的号码。所有的这些数据都位于MyCachingStrategy.xml文件中。


App #5

为了将汽车连接到安装了该APP的智能手机上,需要知道汽车内置电脑上显示的PIN。这就意味着和App #4的情况一样,知道VIN是不够的,必须从汽车内部攻破。


App #6

该APP由俄罗斯的开发人员制作,区别于其同行,该APP使用车主的电话号码作为授权。 这种方法对任何车主都会造成相当程度的风险,只需执行一个Android API函数即可获得系统的用户名,发起攻击。


App #7

我们注意到,参与实验的最后一个APP将用户名和密码以纯文本的形式存储在credentials.xml文件中。



如果智能手机被具有超级用户权限的木马病毒感染了,那么该文件的窃取将轻而易举。


汽车被盗是如何发生的

理论上,拿到凭证后,入侵者便能够获得汽车的控制权,但这并不意味着就能够简单的把车开走,必须有钥匙才能启动汽车。因此,偷车贼进入车里之后,会使用编程单元写一个新的密钥放入到汽车的车载系统中。几乎所有的APP都允许解锁车门,这样就绕过了汽车的报警系统。因此,偷车贼便可以在不破坏任何东西的情况下悄悄的将车迅速偷走。


值得注意的是,车控APP带来的风险不仅仅是汽车盗窃,入侵汽车并故意篡改某些元素可能导致交通事故,带来伤害或死亡。


我们检测的这几款APP都没有防御机制。但是值得庆幸的是这些APP中没有一个是通过声音或SMS消息来控制汽车的。这种方法被售后报警系统制造商使用,包括俄罗斯的那款APP,因为移动互联网的质量并不能保证汽车总是在线,而语音呼叫和SMS消息却随时可用。下面我们简单分析一下由此产生的汽车安全威胁。


声控是通过所谓的DTMF命令处理的。车主必须给汽车打电话,汽车的报警系统会响应呼入,并报告汽车状态,然后切换到待机模式,等待车主的命令。然后,车主拨打预设的号码来命令汽车解锁车门并启动发动机,报警系统通过识别这些代码来执行正确的命令。

声控系统的开发者通过白名单来保障安全,只有在白名单上的电话号码才具有控制汽车的权利。但是,如果车主的手机被入侵了呢?入侵者就可以调用报警系统、禁用扬声器和屏幕,这样就可以无声无息的完全控制汽车。当然,入侵也不会这么容易,许多汽车爱好者将报警系统号码保存在一个虚构的名字下。在这种情况下,只有车主频繁地呼叫车辆,入侵者才能在偷来的呼出历史记录中找到报警系统号码。


汽车报警系统SMS消息控制方法的开发者肯定没有阅读过我们关于Android设备安全的文章。卡巴斯基实验室面临的第一个也是最常见的移动木马就是SMS木马,或者是含有用于秘密发送短信的代码的恶意软件,通过常见的木马操作以及由木马发出的远程命令实现。


因此,恶意软件的开发者通过以下三个步骤就可以解锁受害者的车门:

1. 浏览智能手机上所有的SMS消息,从中找出汽车命令。

2. 找到所需的SMS消息后,从中提取电话号码和密码以获得访问权限。

3. 向找到的电话号码发送SMS消息,解锁车门。

一个木马便能够无声无息的完成这三步操作,唯一需要做的事情就是感染智能手机。


结论

汽车是昂贵的,值得我们像保护银行账户一样去保护汽车的安全。汽车制造商和APP开发者的态度是明确的,他们致力于快速的填补市场APP空白,为车主提供改变生活质量的新功能APP。但是,当考虑车控APP的安全性时,其基础设施安全(控制服务器)及其交互和基础设施通道并不是唯一值得考虑的事情。客户端安全也值得注意,特别是安装在用户设备上的APP。现在APP很容易便能被用来打击车主,客户端很可能是最薄弱的环节,最有可能成为攻击者的目标。


目前为止,我们没有检测到车控APP攻击,在我们的成千上万个检测恶意软件的实例中也没有发现用于下载车控APP的配置文件的代码。然而,现代的木马是非常灵活多变的,如果某个木马今天持续显示不能被用户自己移除的广告,那么明天它就可以将配置文件从车控APP上传到犯罪者命令和控制的服务器。木马还可以删除配置文件,并用修改过的配置文件覆盖它。一旦所有这些在经济上都变得可行,最常见的移动木马也会增加新的功能。

 

 

 

本文来自合作伙伴“阿里聚安全”,发表于2017年02月27日 14:36.

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
安全 Java 应用服务中间件
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
|
2月前
|
安全 网络安全 Android开发
深度解析:利用Universal Links与Android App Links实现无缝网页至应用跳转的安全考量
【10月更文挑战第2天】在移动互联网时代,用户经常需要从网页无缝跳转到移动应用中。这种跳转不仅需要提供流畅的用户体验,还要确保安全性。本文将深入探讨如何利用Universal Links(仅限于iOS)和Android App Links技术实现这一目标,并分析其安全性。
359 0
|
2月前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
127 0
|
4月前
|
开发框架 JavaScript 前端开发
【Azure Developer】App Service + PubSub +JS 实现多人版黑客帝国文字流效果图
【Azure Developer】App Service + PubSub +JS 实现多人版黑客帝国文字流效果图
|
6月前
|
存储 安全 网络安全
APP 安全评估报告:直面移动应用安全威胁,守护用户数据安全
移动APP安全问题日益严重,包括数据泄露、恶意软件和权限滥用等威胁。例如,Ring App安全漏洞导致用户信息曝光,13款Android应用暴露大量用户数据。此外,工信部通报50款APP违规收集个人信息。安全评估是保障APP安全的关键,涉及代码安全、数据传输安全、用户权限管理和隐私保护等方面。经过评估,这款APP在所有方面表现出色,符合最高安全标准,确保用户隐私和数据安全。
201 2
|
7月前
|
安全 定位技术 网络安全
禁止应用在模拟器上运行的方案及app安全问题
禁止应用在模拟器上运行的方案及app安全问题
756 1
|
安全 算法 开发工具
APP加固:助力移动应用安全合规
合规已经成为APP发展过程中的关键因素。对于APP开发者来说,合规意味着要加强对用户数据的保护,采取适当的安全措施和技术手段,确保用户隐私的安全性。此外,还需要遵守相关法律法规的规定,明确用户权限和信息收集的目的,并及时更新隐私条款和用户协议,向用户提供充分的透明度和选择权。
138 0
APP加固:助力移动应用安全合规
App开放接口api安全:Token签名sign的设计与实现
在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些 接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等,但是为了安全起见让用户暴露的明文密码次数越少越好,我们一般在web项目 中,大多数采用保存的session中,然后在存一份到cookie中,来保持用户的回话有效性。
|
安全 算法 大数据
社交语聊APP发展前景及遇到黑客攻击怎么解决
社交语聊APP发展前景及遇到黑客攻击怎么解决
100 0
|
安全 数据安全/隐私保护
直播app源码开发安全知识:部署鉴权功能
而在直播app源码平台中,也有一个功能被开发出来去进行身份授权验证,以此来防护平台,这个功能就是直播app源码平台的“鉴权功能”!当然,鉴权功能不仅仅有些防护平台的作用,它也有着许多其他对平台的好处,现在,我们就来分析一下鉴权功能。
直播app源码开发安全知识:部署鉴权功能

热门文章

最新文章