汽车渗透测试方法之一威胁模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wohaoxiangni/article/details/70231894

 汽车渗透测试方法之一威胁模型


前言

         如果你之前是从事软件领域的渗透测试,你已经很熟悉攻击面。至于其他,攻击面关系到与攻击目标相关的所有可能途径,从独立组件到那些影响整个车辆的漏洞。

         当我们讨论攻击面的时候,我们关注的不是怎么样去利用一个目标,而是仅仅关注入口点。你可能想起攻击面像一个物体的表面,两个物体可能有相同的体积,但是面积却不相同。面积越大,暴露的风险越高。如果考虑一个对象的体积值,我们强化安全的目标是创造低风险的价值比率。

0x01发现攻击面

一辆汽车的攻击面,想想如果自己是一个邪恶的间谍,尝试对一辆车做点坏事。为了发现汽车的安全漏洞,需要评估一辆车的边界和记录车辆的工作环境。务必要考虑数据进入到车内的所有方式,重点关注汽车与外界通信的方式。

当检车汽车外部的时候,问我们自己这些问题:

  • 什么信号被接收?无线电?遥控钥匙?距离传感器?

  • 有物理控制按键吗?

  •  有接触或运动传感器吗?

  • 如果汽车是电动的,它是怎么充电的?

  • 当检查汽车内部的时候,考虑下面的问题:

  • 音频输入的方式是什么?CD?USB?蓝牙?

  • 有诊断端口吗?

  • 仪表盘的功能是什么?有GPS吗?蓝牙?移动网络?

      就像我们看到的,有很多的方式数据能进入到车辆内部。如果这些数据中有任何一个是有缺陷的或者恶意的,将会发生什么?

0x02威胁模型

       当建立汽车的威胁模型的时候,收集目标结构的信息,画一个图表来说明汽车各部分是怎么通信的。然后使用图表识别高风险的输入和拥有一份可以审计的清单,这样能帮助我们按优先级排序好入口点,这样我们会获得做大的回报。

      威胁模型一般是在产品开发和设计阶段就应该创建。公司生产一个特别的产品应该有一个好的生命周期,在产品开发之前创建一个威胁模型,随着产品穿过整个生命周期持续更新威胁模型。威胁模型是一个活的文档,随着目标的改变而改变。随着你对目标了解的越多,你应该经常更新你的威胁模型。

      威胁模型由不同的等级组成,如果模型中的某个流程超复杂,我们应该进一步分解它,在图表中增加更多的等级。刚开始的时候,等级2是我们最远能达到的。

等级0-----俯瞰

      在这个等级,我们使用之前攻击面的检查列表。考虑数据怎么样进入一辆汽车,在中心画一辆车,然后标注外部和内部。图2.1是一个可能的等级0框图。

等级1------接收端

     到了等级1的图表,选择一个探索的进程。因为在我们的图标中仅仅只有一个进程,所以我们挖掘汽车更多的进程和关注每一个输入的是什么。

    等级1的图和等级0几乎差不多,唯一的区别是,我们详细描述了车辆的连接关系。

    图2.2 汽车数据传输连接关系图

等级2-----接收端分解

      等级2,我们检查在车内发生了那些通信。我们的样本图表关注了一个基于Linux的娱乐信息平台(IVI),这是个比较复杂的接收端,并且连接到车内的网络。我们用虚线框分组了通信通道,这也代表一个可信边界。现在有一个新的可信边界出现在娱乐信息终端的内部---内核空间。系统直接和内核层会话的风险高于系统和系统应用层的会话,因为这样会绕过娱乐信息单元的访问控制机制。因此,蜂窝通信通道风险高于WIFI信道,因为它交叉可信边界到了内核层。WIFI信道,换句话说,是带着WPA用户空间的客户端。

     这是一个基于Linux的车载娱乐信息系统,使用了部分Linux的通用组件。在内核空间,你能看到内核模块设备、HIS、Kvaser/SocketCAN,它们接收输入从我们的威胁模型。Udev安装了USB设备,HIS是一个串行通信处理蜂窝通信模块。Kvaser/SocketCAN是汽车网络驱动。

      当建立或者设计汽车系统,我们应该尽可能的钻研一些复杂的进程,引入开发团队,开始讨论方法和每一个应用程序使用的库,我们应该把这些增加到我们的框图里。我们发现了应用层的可信边界是:应用程序和内核之间、应用程序和库之间、应用程序和其他应用程序之间,甚至功能之间。当我们发现这些关系后,标记那些较高权限的或者处理敏感信息的。

0x03威胁识别

     我们已经完成两级深入到我们的威胁模型图表,现在我们开始识别潜在的威胁。通常,威胁识别一组人在一起处理会更有趣。

     让我们开始实践,从等级0—初看—考虑潜在高等级输入和接收问题,还有威胁边界。现在我们列表我们威胁模型中所有潜在威胁。

等级0

     在等级0探索潜在的威胁的时候,我们最好定位在高等级的风险。一些威胁看起来不切实际,因为你知道增加了障碍或者是保护,但是是重要的,因为它包含了列表中可能的威胁,甚至有些已经被解决了的。这个时候需要集体讨论每一个进程和输入的风险。

在等级0高风险威胁可能是:

远程接管汽车

停止汽车

监视车辆所有者

解锁汽车

偷窃汽车

跟踪汽车

干扰安全系统

在车内安装恶意软件

    首先,是很困难巧遇到这些攻击场景,眼下哪些人是最适合的呢?工程师或者参与者。因为他们要么是开发者,要么是工程师。

    尝试去联想詹姆士.邦德,你能想象到的坏人攻击。或许考虑其他的攻击场景是否能应用到车里。例如,勒索软件,能加密的恶意软件,给你电脑或智能电话上锁,想想这些是否能用到车上?答案是可以的。

等级1

    在等级1的威胁识别关注每块之间的连接。我们假设这个等级的漏洞是与连接到车内设备有关的。

我们可以威胁分组涉及到蜂窝通信、WIFI、无线钥匙、胎压监测传感器、娱乐信息控制台、USB、蓝牙和CAN总线。看看下面的清单,我们就有很多潜在的方式进入到车内。

蜂窝网络

黑客可以利用车内的蜂窝网络做如下的事情:

从任何地方访问车内网络

利用娱乐信息系统的应用控制电话呼入

访问用户身份信息,通过娱乐信息系统。

使用蜂窝网络连接远程诊断系统

 窃听蜂窝通信

 阻断求救电话

跟踪车辆运动状态

建立一个GSM伪基站

 WI-FI

攻击者可以利用WIFI做到下面的事情:

 至少300能从300米以外访问车内网络。

 在娱乐信息设备中安装恶意代码。

 破解WIFI密码

 建立一个伪造的代理访问点欺骗汽车

 通过WIFI网络,拦截通信。

 追踪汽车

遥控钥匙

攻击者可以利用遥控钥匙:

 发送一个畸形的信号让汽车的防盗系统进入到一个未知的状态。

 频繁的欢心汽车防盗系统,从而耗尽汽车蓄电池的电源

 捕获防盗系统在握手期间泄露的加密信息

 暴力破解遥控钥匙的加密算法

 复制遥控钥匙

 堵塞遥控钥匙信号

 耗尽遥控钥匙的电源

 胎压监控传感器

攻击者可利用胎压检测传感器:

发送一个不可能的条件到引擎控制单元,引起一个可被利用的故障

 欺骗ECU进入过矫正状态,提供虚假的路况信息。

 让胎压监测传感器/ECU进入到一个未知的状态,导致司机把车停靠在路边去检测故障,或者甚至停止汽车。

 用汽车的胎压监控系统的唯一身份标识符欺骗汽车

 伪造胎压监控系统的信号,是汽车发出报警信号。

娱乐信息控制平台

攻击者可以利用娱乐信息控制平台:

 让控制台进入调试模式

 改变诊断设置

 发现一个输入的缺陷,引起非预期的结果

 安装恶意软件

 利用恶意的应用程序访问车内CAN总线网络

利用恶意的应用程序窃取车辆拥有者的信息

 利用恶意应用程序伪造数据显示,例如,车辆位置信息

l USB

攻击者可以用一个USB端口:

 在娱乐信息单元中安装恶意软件

 利用娱乐信息单元中USB协议栈中的缺陷

 在娱乐信息设备中插入一个恶意的USB设备,目的在于获取设备的输入信息。

 安装一个篡改的更新软件

短路USB端口,因此,破坏娱乐信息系统

l 蓝牙

攻击者可以使用蓝牙:

 在车机中执行代码

 利用蓝牙协议栈的缺陷

 上传畸形的信息,目的在于执行代码

 近距离访问汽车

 阻止蓝牙设备

l CAN

攻击这里用CAN总线:

 安装一个恶意的诊断设备在CAN总线中发送数据包

不用钥匙,直接插入CAN总线尝试启动汽车

直接插入到CAN总线上传恶意软件

安装恶意的诊断设备追踪车辆

安装恶意的诊断设备远程通信CAN总线

等级2—接收器

当我们准确的知道哪一个应用处理哪一个连接的时候,依据可能的威胁我们开始验证。

分解威胁为5组:蓝牙,WPA应用,HIS(高速同步接口),DEV(设备管理器),Kvaser驱动。

 

l 蓝牙

蓝牙程序的老的版本或者未打补丁的版本:

 有可利用的漏洞

 或许不能处理腐败的地址簿

 或许不能配置适当的加密方式

 或许不能配置处理安全握手

 或许使用默认的密钥

l WPA客户端

 老版本可能可以利用

或许没有执行特有的WPA2类型的无线加密

可能连接到恶意的访问点

 通过,BSSID泄露驱动程序的信息

l HIS

 老版本的有可利用

 中间人攻击

l Udev

老版本,未打补丁的容易攻击。

 没有维护设备白名单,允许攻击者写入另外的驱动。

 允许攻击者装载外部的设备,例如,键盘访问娱乐信息系统。

l Kvaser/SockitCAN驱动

 较老的,没有打补丁的版本有可利用的漏洞

 可能允许一个攻击者上传恶意固件到Kvaser设备

     这些潜在威胁清单是不详尽的,但它们给我们一个想法,如何去集体讨论。如果你想继续深入你的汽车到等级3的示意图,你可以选择一个进程,像HIS,开始查找它的内核源码识别敏感的方法和相关性,可能被攻击的漏洞。






没有更多推荐了,返回首页