41yf1sh 嘶吼专业版

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_02概述

长期以来,卡巴斯基实验室持续关注与物联网(IoT)技术相关的安全问题。在今年上半年,我们的专家在生物假肢装置的安全性方面取得了一些进展。而最近,我们对智能汽车的安全性进行了研究,调查结果表明其安全性也存在许多问题。

今年,我们决定继续开展小规模实验来验证设备的安全性,但将研究的重点转向了汽车相关的主题。近年来,由于车辆开始变得越来越智能,人与车、车与车之间的连接变得更多,因此汽车安全性的话题始终保持着较高的热度,研究人员也陆续发现了其中存在的一些问题。除了汽车本身之外,还有一些用于改善驾驶体验的外部设备,从车辆检测工具到各种调试设备。我们并没有在这个角度做独立研究,因此我们随机选择了几种不同的车辆连接设备,并对其配置进行安全检查。尽管这一过程无法被称为系统化的“调查”,但也能让我们直观地了解到要面对的安全问题。

我们对一些设备进行了安全研究,其中包括一些自动检测工具、仪表盘摄像头、GPS追踪器、智能报警系统、压力监控系统和温度监控系统。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_02检测工具OBD Dongle:安全性大曝光

在车辆诊断领域中,不可或缺的就是各种各样连接到OBD2诊断连接器的设备,这些设备大小不一,采取有线或无线的连接方式。从原理上来看,这些设备基本上都会插入到车辆的接口中,从而获取并提供关键的驾驶动态数据。其中一些设备可以独立运行,也有一些设备要依赖于计算机或手机。借助这些设备,可以为用户提供大量参数用于分析,其中的数据包括发动机转速、温度、涡轮增压、油压等。

还有一些应用程序,不仅仅能够读取上述数据,甚至还可以对车辆的“大脑”进行编程。举例来说,一些应用程序可以重置“检查引擎”的指示灯。用户如果使用这些应用,并通过它改变车辆运行的状态,那么可能会产生严重的风险。除了因操作人员失误导致车辆损坏的风险之外,还存在入侵者通过中间人攻击而控制设备的风险。当然,如果设备是通过有线方式连接的,那么这种风险就会变得非常小。但是,如果是通过无线方式,例如通过蓝牙或WiFi传输来自诊断端口的数据,这样一来被攻击者拦截的风险就会大幅增加。因此,我们非常关注此类设备的厂商是如何保证其安全性的。

我们此次研究的设备由德国的厂商开发,并由一个知名汽车制造商品牌进行销售。出于安全考虑,我们在这里不会透露其名称。

该设备被称为赛车记录器,可以记录在赛道上的比赛视频,并记录从车辆获得的各类遥测数据,包括速度、发动机输出、增压等。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_04

该设备与通过蓝牙连接的智能手机(iOS或Android)配合使用,全部数据都将显示在智能手机的屏幕上。由于我们希望研究这一设备的使用是否会对用户产生实际风险,因此我们首先对蓝牙连接进行分析。

我们的初步分析表明,该设备完全不支持iPhone,iPhone手机无法找到设备。我们推测,问题可能出现在设备固件上面。因此,接下来的所有实验都是在Android设备上进行的。

在开始使用设备之前,需要进行蓝牙配对。而蓝牙配对的过程不需要密码,任何人都可以随时进行配对,这是非常不安全的。

一旦设备配对之后,潜在攻击者首先需要一个序列号,才能连接到Dongle。这个序列号印在设备上面,因此潜在攻击者需要以物理的方式接触设备。这样一来,我们认为还是相对安全的。

但事实并非如此。序列号的格式类似于“000780d9b826”,我们也可以将其写为“00:07:80:d9:b8:26”这样的格式,实际上,这就是Dongle所使用的蓝牙适配器的MAC地址。基本上,如果潜在攻击者在设备的周围进行蓝牙扫描,通常就可以找到这个序列号。然而,设备竟然就使用了这个序列号(MAC地址)作为Dongle的密码。

使用过程中,Dongle会向周围空间进行广播,并且根据蓝牙的标准,它会公开其MAC地址以及访问密钥。这也就意味着,几乎任何人都可以在手机上安装简单的蓝牙探测工具,并在连接范围内找到名称为“OBD STICK”的设备来访问Dongle。

但对于攻击者来说,有一个坏消息,应用程序本身不允许攻击者控制汽车,只能对数据进行分析。那么,我们尝试一下,如果通过另一个应用程序来连接到Dongle会怎么样?我们尝试使用Google Play中的其他几个应用程序。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_05

根据应用程序开发人员的说法,有相当多的功能列表可能会扰乱汽车驱动动态数据。我们无法对这一点进行测试,尽管应用程序可以连接到Dongle,但它无法从CAN总线读取数据。应用程序会通过特定协议与OBD Dongle进行交互,但我们此次研究的设备具有其独特的协议。

这种类型的Dongle通常采用ELM327芯片构建,ELM327芯片是市场上最为流行的微控制器,其主要作用是处理来自CAN总线的信号,并通过RS-232接口(蓝牙适配器或USB适配器)向用户提供信息。接口将通过无线电信号将数据传递到智能手机上,手机会将其传递给应用程序。至于如何处理信号、从CAN总线接收信号还是向其传送信号、将信号传输给用户的方式这些,都是完全由固件来驱动,存储在微控制器的ROM中。我们所研究的设备,使用了独特的AT90CAN128-16MU微控制器,以及与常用型号截然不同的固件。

由此,我们引申出一个问题,是否可以修改控制器的固件,以添加新的功能。我们发现,可以选择更新应用程序中的Dongle固件。经过对应用程序代码的研究,我们发现,该应用程序可以通过不安全的HTTP连接方式从开发人员的网站上下载固件,并且固件随应用程序本身一起提供。

总而言之,我们可以获取到固件,并进行进一步分析和修改。那么,我们就可以实现攻击了吗?遗憾的是,固件是加密的,这一点其实并不意外,而且是厂商的明智之举,因为这可以保护设备操作过程中最为精细的部分——车辆与Dongle之间的数据交换协议。由此,我们获得固件的方法只有两种,从厂商处获取,或者投入大量资源来分析汽车的信号。尽管上述方案理论上可行,但绝对超出了我们的研究范围。

回顾一下,我们可以说,尽管存在着一些轻微的不安全因素,但恶意用户可以对设备做的操作并不多,这完全要归功于固件加密。但是,任何人都可以访问设备,并监控驾驶的动态数据。从理论上说,恶意用户也可能保持足够的持久性,可以对固件进行物理访问,并对其进行重新编程。

为了使设备更加安全,我们建议为其提供唯一的访问密钥,并使用该密钥进行蓝牙配对。这样一来,攻击者就无法拦截蓝牙通信。针对该设备的用户,我们的建议是,只在赛道上使用这一设备,并且不要忘记在比赛之后将设备从OBD2接口拔出。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_06轮胎压力和温度监测系统:茶杯中的风暴

我们研究的另外一个设备,是一套用于监控轮胎压力和温度的工具集。它包括四个直接安装在车轮中的传感器、一个位于汽车内部的屏幕以及一个控制单元。传感器将无线电信号发送到设备中,设备将信息传递到屏幕上,屏幕显示出目前的轮胎压力和车轮温度。

用户可以选择将温度显示为摄氏度或华氏度,也可以选择将压力显示为PSI、Bar或Pascal,并且当发生故障时,还可以连接新的传感器。如果压力下降到临界点,控制单元会发出警报声。当车轮中的压力或温度达到较高水平时,也会发生同样的情况。我们决定测试是否可以模拟车轮的低压力或过热,从而迫使驾驶员停车。

如上所述,传感器通过无线电信号的方式将信息传递给控制单元,所使用的信号频率是位于民用段区间。要拦截无线电信号,攻击者可以使用几美元就能买到的RTL-SDR接收器。然而,这种设备只能接收信号,不能发送。要实现实际攻击,我们需要一个完整的SDR设备,同时具有接收和发送功能。因此,我们决定使用一个这样的SDR设备来进行一次安全测试。

当我们打开系统时,没有显示任何活动迹象,表明其没有与传感器连接。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_07

系统在该模式下运行十分钟,然后开始发出“与压力传感器没有通信”的信号。我们将接收器指向所需的频率。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_08

这时,传感器和系统本身都没有显示出任何活动迹象。可能有三个原因:传感器未充电、系统基于陀螺仪且传感器仅在车轮转动时起作用、传感器在内部压力高于外部环境压力时启动。为了找出确切的原因,我们需要对传感器进行分析。

最终发现,第三个推测原因是正确的,我们使用注射器使传感器具有更高的压力,随后显示出传感器活动的迹象。

根据截获的信号,我们得知了系统运行的特定频率。借助该频率,我们可以使用接收器记录信号。传感器对轮胎的压力和温度进行分析,并将该信息编码为字节,再通过调制器以无线电信号的形式传输。我们通过一个能够记录信号的特殊程序进行分析,基本上获取了全部调制信号,并将其解码回字节。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_09

在放大之后,我们看到该信号非常类似于频移键控(FSK)调制方式,这是一种数字调制技术,其中载波信号的频率根据数字信号的变化而变化。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_10

在这一阶段中,我们可以识别出发送的比特,因为底部和顶部基本可以表示“1”或“0”,代表信号存在或不存在。因此,我们记录到的视觉信号,可以转换为如下的比特形式:

0101010101010101010101010101011010011001011001100101010101011010100110100110010110101010011010100110100101011001011001011010100101010101011001010110101010010110

现在,我们需要找出信号传输的参数。该程序显示符号率(Symbol Rate)为19400 Bd。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_11

我们假设该系统使用的是曼彻斯特代码(Manchester Code),因为这是最为普遍的代码。简单来说,这是一种对无线电信号进行数字编码的协议,无线电信号是一种线路代码,其中每个数据位的编码为低-高,或高-低。

有两种不同的编码约定:0表示为从低到高的转换,1表示为从高到低的转换(Thomas约定),或者反之(IEEE 802.3约定)。我们使用注射器在传感器中产生更高的压力以开展进一步分析。为了方便起见,我们将记录的数据转换为十六进制的表示,信号如下:

00 01 A5 03 B4 F7 62 4E 04 79

FF FE 5A FC 4B 08 9D B1 FB 86

其中,标红的第7、第8和第10字节,展示出按下传感器时的变化。为了进行健全性检查,我们将一些字节转换为十进制表示,但最终发现这些数字太大,无法代表压力水平。

根据系统手册,最大允许的压力为6 Bar,而注射器平均产生的压力为2.2 Bar左右。经过我们的进一步分析,第7个字节(62)在Thomas约定中表示2.254左右,这与我们想要的数值非常接近,因此我们得出结论,第7个字节负责表示压力数据。这样一来,我们也就确定了系统编码中使用的表示方式。

在收集到越来越多的信号之后,我们在记录中发现了许多规律性,这样一来,我们就可以对每个字节所代表的的内容进行猜测。

00 序号

01 序号

A5 同步字节

03 传感器序列号

B4 传感器序列号

F7 传感器序列号

62 压力

4E ?

04 ?

79 校验和

我们注意到,其中的第8个字节很少会改变,并且这个值非常小。由于我们在温度稳定的房间中测试传感器,因此可以合理猜测这个值代表什么。我们现在已经知道了编码逻辑,所以就可以尝试这个假设。根据系统手册,工作温度在-40到+125摄氏度之间。

我们假设系统使用了开尔文量表,并决定将度量标准转换为Kelvins,因为它不使用“0”。根据我们的计算,第8个字节(4E)表示37摄氏度,这看起来非常可信。因此,我们现在确定了三个具有含义的字节列:轮胎压力、温度和序列号。

考虑到上述这些,我们准备了四个字节的数据包,并设置了发送器:

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_12

例如,红色部分代表2 Bar压力,蓝色部分代表24摄氏度。这是有效的,我们接下来就可以继续攻击系统。在第二次尝试中,我们更改了其中某一部分的值,模拟右后轮的温度。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_13

这次尝试也是有效的。控制单元显示后轮过热,已经超过了100摄氏度。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_14

那么,攻击者可以利用上述方式来做什么呢?

首先,为了成功攻击,攻击者需要知道每个车轮的唯一序列号。攻击者可以通过传输的信号来获取这些信息。因此,在实际中,攻击者可以手持接收器接近目标车辆,反复按压轮胎并对信号进行解码。在此之后,攻击者应该可以发送虚假的数据包。但这会是一项艰巨的任务:攻击者需要在驾驶时,通过定向天线将信号发送到受害者的汽车,因为一旦信号丢失,车辆中的接收器将立即接收来自原始传感器的信号。

根据我们的研究,尽管确实有办法可以攻击我们购买的系统,但模拟攻击的过程会耗费大量资源。因此,使用另一种方式让车主离开车辆会更加简单:

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_15

总体来说,由于可能拦截并解码其无线电信号,所以可以导致设备会轻易受到攻击。但是,该设备的功能非常有限,因此其用户无需太过担心。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_16分析另一个Dongle:有线连接安全吗?

如上文所述,有许多设备可以通过OBD2连接器与车辆的智能组件进行通信。既然无线连接已经被证明不太安全,那么我们开始检查有线连接的Dongle。我们所选择的设备,实际上是一个错误代码读取器。

该设备通过OBD连接到汽车上,OBD包含多个物理通道,用于与车辆内部进行通信。但是,实际上,错误代码读取器只需要支持一个通道,即CAN总线。在我们的研究中,这个接口只用于对错误代码进行读取,其实际功能取决于车辆的设计,并且可能更为广泛,甚至包括车辆的电子控制单元(ECU)固件更新。

我们决定仔细研究,并分析它如何与车辆进行通信。聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_17

我们与设备进行通信的方式相当简单。除了OBD之外,它只有一个USB接口,用于固件升级与PC通信。

厂商花费了大量精力来保护固件免受攻击者的分析。首先,无法在互联网上下载包含最新固件的文件。固件升级的过程要通过特殊的软件实用程序来进行。

我们没有在软件的发行版本中找到任何类似于固件的内容,因此我们假设固件必须以某种方式从网络下载。我们分析了固件更新过程软件发送的网络流量,发现固件是通过常规的HTTP请求传输的。这意味着,我们可以通过重发实用程序使用的请求,从Web浏览器下载最新的固件。下载之后,固件通过USB连接实现的专有协议发送到设备上。我们研究了协议,并确定用于将代码或数据写入特定地址的所有命令的格式。我们还编写了一个能够通过协议与设备通信的脚本。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_18

厂商采取的第二个保护措施是加密。固件由两部分组成,存储在两个单独的文件中,并且二者都是加密的。这种结构要归功于设备硬件上的设计。

该设备的主要组成部分是微控制器,配备相对少量的内部闪存用于存储固件,以及单独的外部闪存芯片用于存储大量必要数据。这两个固件文件分别位于外部闪存和内部闪存存储的数据之中。

由于我们无法分析从互联网下载的固件,因此我们尝试在更新后直接从设备中进行下载,并希望它能够以未加密的形式存储。我们在尝试分析存储在内部闪存中的固件部分时遭遇了失败,因为微控制器的调试接口被阻止,并且无法访问内部三村。

但是,由于我们能够转出外部闪存的映像,因此我们取得了部分成功。映像中仅包含设备的配置,而不包含代码,但闪存芯片上的所有数据都以未加密的形式来存储。我们假设,当设备在固件更新期间解密外部闪存数据时,它还可以解密内部闪存数据。两个固件部分的解密算法和密钥都可以相同。我们试图将固件的内部部分写入外部闪存,最终发现这一假设是正确的,因为随后在外部闪存中找到了解密的代码。

我们发现,内部闪存仅在固件更新期间被部分写入。有些代码会保持不变,至少在我们分析的固件版本更新期间是如此。但是,我们仍然有机会分析固件更新包中包含的所有代码。

实际上,我们能够获得固件的解密部分,并借助于实现厂商软件协议的预先编写脚本将其写入外部芯片。从理论上讲,这一过程可以通过USB协议,通过物理访问的方式向芯片中添加任意代码,从而为我们提供一种篡改设备的方法。

后者可以允许我们对设备进行重新编程,迫使其将固件的所有部分写入外部芯片。有了完整的映像之后,我们就能够分析各种漏洞。但问题在于,设备的内存比较少,除了读取错误和记录日志之外,它无法执行任何操作。

因此,现在的情况非常明显,就像移动电话和智能手机一样,如果设备的功能越少、连接越简单,用户对其产生的不安全感就越少。但是,我们建议厂商可以进一步加密其数据的所有关键部分(例如:固件),即使这一产品是通过有线连接的。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_19车辆智能报警系统:不安全的移动APP

我们分析的这一台设备,是一个汽车安全系统,来自于一家俄罗斯知名汽车安全系统厂商。该设备的功能是控制车门的开启/关闭和发动机的启动。显然,攻击者一旦能够控制这一系统,就可以对车辆的安全性产生重大影响。但值得关注的是,厂商承诺该系统不可能被劫持。我们所要分析的,就是这一描述是否属实。

该系统基本上是一个安装在车辆内部的控制单元,位于一个特殊的、难以触及的位置。安装过程通常在汽车维修店完成。在安装完成后。系统将与车辆所有者的智能手机配对。初步分析表明,有三种方式可以控制系统:

1、使用钥匙链,其中包括一个可以打开门和后备箱的简单钥匙链,以及一个带有能够显示状态信息的屏幕的钥匙链;

2、通过进行配对后的智能手机;

3、通过使用Android智能手机上的蓝牙。

钥匙链使用868兆赫的频率与警报系统进行通信。由于信息是加密的,因此我们无法截获任何内容,我们只能看到一些无法识别的数据集,可能需要数年时间才能解密。我们认为,恶意用户不太可能会这样做。此外,我们也在暗网中进行了搜寻,最终没有找到针对这一方面开展攻击的黑客。因此,我们初步认为,厂商在攻击者通常首先考虑的维度上,部署了良好的安全性。

攻击系统的另一种方式,是感染原本与汽车配对的手机。我们决定测试一下这个场景。

在启动时,应用程序既不会请求登录,也不会请求密码。手机与安全系统之间的交互是直接进行的,没有任何解锁的过程。这是一个非常不好的状况,如果攻击者偷了一部未设置密码的手机,就可以使用手机打开车门和发动机,从而偷盗车辆。

有很多种方法可以对Android手机进行攻击,并干扰其正常功能。我们尝试了Android Accessibility服务,这是一项为残障人士提供的服务,可以管理所有其他已经安装的应用程序。

借助这一服务,我们可以在安全应用程序中找到所需的组件:带有ACTION_CLICK的“Open Door”按钮。但是,我们无法点击这一按钮,因为这一应用程序对短暂按下按钮没有反应。为了解锁车门,我们必须按住按钮几秒钟。按钮上的压力由特殊算法进行处理,当然,并没有API可以让我们调整Android中虚拟按键的按压时间。因此,我们只能寻找按下按钮的其他方式。

终于,我们发现,应用程序可以响应在按钮上的左右滑动。我们编写了一个小程序,将虚拟手指在按钮上移动两秒钟,最终成功解锁安全系统。经过多次尝试,终于获得了成功。

之后,我们尝试对蓝牙连接进行研究,看上去也非常有希望。该系统通过蓝牙低功耗(BLE)进行交互,我们对这种方式非常了解。

具体来说,我们使用带有BLE接口的笔记本电脑,并且使用了另外一个USB BLE适配器,需要两个接口才能成功实现中间人攻击。在攻击中,我们尝试扫描目标设备(警报系统)以获取所需数据,并在笔记本电脑的其中一个BLE接口中创建该数据的副本。这个BLE系统不会频繁地传输信息,这样做的目的是为了优化电池的耗电量,为驾驶员提供方便。因此,我们可以更频繁地生成信号,从而让手机更有可能连接到它,而不是原始信号。如果成功,我们就获得了中间人攻击的一个BLE接口,并能以手机的身份与安全系统进行通信,而笔记本电脑上的第二个接口将与原始的手机进行通信。因此,我们可以拦截流量,甚至可以做到更多,比如让系统打开车门。

因此,我们现在得到了一个可以使用的报警系统,可以通过BLE广播,并与原始的智能手机和中间人设备进行配对。接下来,我们需要创建系统的虚假副本,并强制手机对其进行连接。在进行扫描的过程中,我们的中间人设备应该在设置原始蓝牙接口的正确MAC地址时检测到安全系统。然而,在这里却遭遇了失败,系统完全拒绝向我们提供创建虚假副本所需的信息。尽管我们更改了MAC地址和接口,但没有任何反应,系统仍然与最初配对的手机进行连接。

事实证明,该系统只会与一个特定的手机进行配对,并且警报系统和手机之间的通信过程是加密的。并且,似乎需要在手机和系统之间建立通信,用户需要将系统切换到编程模式。之后,系统将等待来自手机的连接请求。配对过程是通过服务站来完成的。控制单元隐藏在车内,并且附带一个独特的PIN用于激活。配对过程也经过了进一步的加密,系统和手机会交换加密密钥,建立安全通信会话,之后系统会拒绝与除最初授权的手机之外的任何手机进行通信。

因此,攻击者无法简单地通过随机设备连接到系统,这个厂商在第二个攻击维度上,也实现了安全的防护,正所谓是“以安全为目的”。

考虑到上述所有情况,攻击者可以成功攻击的方法如下。首先,攻击者需要拥有用户的号码,有多种方式可以解决这一问题,例如驾驶员可能会将号码留在车辆的挡风玻璃后面。接下来,要对用户的手机进行有针对性的攻击。如果成功,受害者的手机会感染具有使用辅助功能服务权限的木马。这将允许攻击者对受害者进行跟踪,并命令应用程序打开车门。即使蓝牙的通信范围不大,但理论上攻击者可以在受害者靠近汽车的时候谨慎地打开车门并启动发动机。

因此,此次研究的主要结论非常简单,这里存在的最大的安全问题就是智能手机,它可以通过多种方式进行攻击。攻击者可以窃取智能手机,并直接使用不需要密码的原始应用程序打开车门。或者,也可以创建一个应用程序,来命令系统打开大门,或对原始应用程序进行攻击,包括通过Android中Accessibility服务进行的攻击。攻击者还可以通过短信或恶意垃圾邮件的方式发送恶意链接,或者直接在Google Play上发布木马程序来感染收集。在此之后,木马可以隐藏在手机中,并等待合适时机解锁手机、启动应用程序并打开车门。攻击者只需要在汽车附近,并获取对受害者手机的访问权限。尽管蓝牙具有一定的范围,但“打开车门”的这个操作本身就十分危险。但是,这一系列安全问题实际上并非系统厂商的责任。

为了实现防护,建议厂商对这类应用程序增加解锁模块,就像银行应用程序一样。总体来说,很难阻止攻击者对Android智能手机的攻击,但攻击者的任务可能会越来越复杂。例如,针对Accessibility服务,可以通过混淆应用程序组件标题来完成,也可以通过模板来添加用户授权。这些措施都无法完全阻止攻击者,但会使攻击过程变得更加困难。针对用户,我们建议选用移动安全解决方案。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_20车辆GPS追踪器:老大哥在看着你吗?

我们研究的另一个设备是车辆GPS追踪器,该设备具有防水和磁性安装的特点。车辆GPS追踪器具有广泛的使用场景,包括对员工进行监管、跟踪包裹和货物的交付、保护租赁的车辆等等。

默认套装中,包含一张使用特殊资费计划的SIM卡。但是,也可以使用自己的SIM卡。在这里最重要的是支持GPRS和SMS。SMS可以在没有GPRS信号的情况下复制GPRS信号,或者降低漫游费用。

GPS坐标、加速度计和其他传感器数据会通过GSM/GPRS信道传输到厂商的服务器上。尽管我们可以对跟踪器本身做很多事情,但在系统的服务器端,存在大量恶意活动的空间。我们决定评估潜在攻击追踪器网络服务的可能性。这里,攻击者的动机非常简单,如果访问到公司的数据,攻击者就可以跟踪员工的动态、查看他们账户余额或查看个人数据。

初步分析表明,该系统使用了著名的GPS监控和远程信息处理平台进行操作。但是,我们无法识别出任何漏洞。

接下来,我们决定研究该服务的官方网站,我们发现它基于WordPress v4.9.9版本。在网络上,没有找到该版本公开的漏洞报告。

在分析过程中,有两个网站目录引起了我们的注意:管理员和客户的登录界面。二者都可能会受到暴力破解攻击,特别是客户登录页面不支持双因素身份验证。

一旦攻击者成功攻击,理论上可以访问客户群,这相当于掌握了大量的隐私数据,包括但不限于旅行方式、财务数据、联系人。如果使用另外一种攻击方式,攻击者还可以获取到财务数据、交易历史和会计凭证。

理论上,在非常有限的条件下,攻击者可能会成功利用GPS追踪器。但是,这种可能性比较低,用户没有必要过于担心。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_21智能APP控制的仪表盘摄像头:是否关注车辆安全性?

在如今,我们可以使用一个专门的仪表盘来记录驾驶过程中车辆周围发生的事情,以便在发生事故时准备好证据。与其他类型的设备一样,我们看到越来越多的智能仪表盘摄像头进入市场,因此我们决定对其中的一个设备进行分析,了解其功能和潜在的风险。

我们选择了市场上最受欢迎的“智能”仪表盘之一。根据提供的文档,Android和iOS都有两个官方应用程序,并且设备和智能手机或平板电脑之间使用WiFi接口进行通信。设备的核心功能包括:

1、在汽车点火启动时,录制广角(130°)1080全高清视频,视频存储在microSD闪存卡上,并循环覆盖。存储数据的多少取决于存储卡的容量。

2、录制紧急视频,由特殊的G-Sensor检测到潜在的紧急情况。这些视频存储在单独的文件夹中,以便于搜索和防止覆盖。该设备的更高级型号可以在汽车停放且点火开关关闭时记录紧急视频。

3、激活夜视模式,在夜间调整录制视频的质量。

4、连接到安装了特殊管理应用程序的Android或iOS设备。

5、理解用户的各种语音命令。

对该设备和应用程序的安全评估结果令我们感到惊喜。外部入侵者只能获取对设备的控制权,才能成功实现攻击。举例来说,一旦用户的智能手机被感染,攻击者如果想要窃取录制的视频,只能连接到相机自身的WiFi热点。在连接后,攻击者可以使用一个官方应用程序检索所有数据,或者连接到本地网络上的摄像头服务器,以便利用应用程序中未列出的各种隐藏功能。

开发人员已经充分考虑到WiFi连接过程的安全性。如果要将新的设备连接到摄像机,必须输入密码,并按下摄像机上面的特殊按钮。这使得攻击者无法在不进行物理访问的情况下连接到设备,因为通过物理访问的方式,可以窃取microSD卡上的所有数据。此外,可以在应用程序中更改热点密码,用户在第一次建立连接时会被建议更改默认密码。

总结一下,我们可以看到设备制造商和软件开发商在生产各种“智能”物联网设备时,开始更加关注安全问题。如果这个仪表盘摄像头被具有较高安全意识的用户使用,则用户会在第一次连接时更改默认密码,此时外部攻击者就无法实现入侵。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_22总结

在分析了这么多之后,我们要问自己的最后一个问题就是,我们学到了什么?我们在对与车辆相关的智能设备进行分析的过程中意识到,即使忽略了很小的问题,也有可能导致严重的风险。然而,我们所测试的设备的安全性普遍较好,我们分析主要是因为设备的功能有限,一旦被攻击成功不会造成太严重的后果,此外还得益于开发厂商的警惕性较高。

然而,由于这一领域还会不断发展,所以并不能放松对于安全问题的警惕。我们认为的一个黄金法则是,开发的产品具有越多功能,就越要在开发阶段考虑其安全性,并加强其补丁管理。毕竟,在产品开发或使用的某个特定阶段,一个未修补的漏洞或疏忽都会导致受害者的车辆被劫持,或导致被攻击者成功监视。

考虑到这一点,我们希望就智能汽车相关的物联网设备提出如下建议:

1、在选择汽车的组件时,请考虑安全风险,如果某个设备与汽车遥测或访问其“大脑”相关,请三思而后行。

2、在购买设备之前,请首先在互联网上搜索任何关于漏洞的新闻。我们即将购买的设备可能已经经过安全研究人员的检查,因此通过搜索可能会发现设备中存在的问题是否已经被修复。

3、购买刚刚发布到市场上的最新产品,往往不是一个好主意。除了新产品存在的常规问题之外,新产品可能还会包含安全研究人员尚未发现的安全问题。最好的选择是购买已经存在多个版本软件更新的产品。

4、始终考虑设备“移动维度”的安全性,特别是针对使用Android手机的用户,应用程序通常会使我们的生活更加轻松,但一旦智能手机受到恶意软件的攻击,可能会出现一系列问题。

针对物联网设备厂商而言,我们的建议非常简单:在开发新设备和改进已有设备的过程中,要与安全厂商和社区开展充分协作。

聚焦IoT安全:对多厂商智能汽车产品的安全性探究_Python_23