小米科技高级安全专家:智能汽车Tbox安全漏洞分析

本文主要是介绍小米科技高级安全专家:智能汽车Tbox安全漏洞分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下内容整理自谈思AutoSec 8周年年会。

分享嘉宾:小米科技高级安全专家 尹小元

嘉宾简介:小米车联网安全专家,智能终端安全实验室负责车联网安全工作,10余年安全工作经验,多次参加GeekPwn和汽车安全比赛并荣获多项大奖。精通IOT、移动端和车联网安全。在车联网安全体系建设和漏洞挖掘上有着丰富的安全经验和深入的研究。

我的演讲主题是《Tbox-黑客手中的潘多拉魔盒》。对我们来说,Tbox就是一个黑盒,它的功能非常强大,如果通过黑客的手段把Tbox变成一个灰盒或者一个白盒的话,就会给我们带来很大风险,而且是一些可预测的风险,比如说远程控制等。

本次的主题演讲主要分为三部分,一是介绍Tbox的功能点和风险;二是结合实际案例分析Tbox所面临的一些威胁场景;三是从甲方和消费者的视角,来探讨问题的解决之道。

01 Tbox的功能点和风险

首先,大概介绍一下Tbox的功能。如图1所示,这是一个比较典型的Tbox硬件设备,外观上来看其实挺简单的,它主要会预留一些硬件的接纳口。概念上的话,Tbox就是一个通信盒子,它是一个远程的通信终端,可以启动远程通信及网络服务的一些功能。

从接口上看,它有UART、USB、JTAG、ETH、CAN等接口,这些接口提供了很好的调试作用,不过,这些接口从我们安全研究的角度来看,其实相当危险。

图1

从模块上看,Tbox有4G、5G模块,以及蓝牙、以太网、GPS 等模块,在这些功能模块中,我们比较关心的是具有远程控制功能的一些模块,因为如果有这些远程控制功能存在问题的话,对我们来说是很好去利用的。有了这些功能,我们才会进一步去分析这些硬件设备。

Tbox大家都知道,但是不一定都拆过,我们团队在闲时对市面上比较流行的Tbox基本都拆了一遍。

如图2所示,最左边的是基础版Tbox,像这类Tbox的功能就比较简单,大多数就是消息推送或数据上报,还有一些会有告警信息的功能。一般来说,这些功能没有太大的安全风险,但是2020年发生过一个案例:上海某些汽车的Tbox信息系统里弹出了类似于“上海发生枪战”的消息,造成了一定的恐慌,其实这就是Tbox被黑后造成的。还有一些Tbox比较老,里面用的是SIM卡,把SIM卡插到手机上,就可以通到汽车的内网中。

图2

图2中间的这个就是带有远控功能的Tbox,它做得还是比较复杂、比较大的,而且功能也比较强大,里面有不少业务功能。说实话,我们比较喜欢这种功能复杂、且带有各种远控功能的Tbox,因为功能越多,出错的可能性就越大。最右边这张图是我们研究过的30多家厂商的Tbox。

图3是Tbox的一个功能框图。从这个框架图来看,结构还是比较简单的,就是5G模组、MCU、接插件和一些外围接口组成。

图3

这里主要从硬件和接口这两方面做一下分析。硬件方面,我们比较关注一些远程控制的模块,比如WiFi、蓝牙、耳机等。其中,我们对蓝牙研究得比较深,很多场合的蓝牙多少都会有一些问题,攻击者可以轻易地通过蓝牙漏洞进到车里,或者实行一些远程控车。接口方面,在调试或者分析控车的一些应用时,需要通过接口进到车里,所以它也是非常重要的一点。

图4是基于时间轴梳理的一些云管端安全案例,从这些案例中,我们可以看到,不管是油车还是电车,都面临不少安全风险。

图4

如图5所示,这是我们在某海鲜市场上买的Tbox案例。拿到这种硬件设备,我们首先会分析它的供电,看看怎么让它跑起来;然后再去研究它的激活方式,怎么把它的屏幕点亮;再就是通过调试口进到系统内部去,去分析一些控车的利用逻辑。有些调试口需要验证,所以我们要通过暗码来打通这个链路,才能进到系统内部去分析。

图5

不管拿到什么样的Tbox,首先都是看看有没有控车的功能,没有控制功能的话,做再多的东西都是白费。其实我们之前也买过一些只有简单的数据上报或者信息推送功能的Tbox,这些对安全来说,是没什么价值的。

其次是看调试口,因为只有拿下那个调试口,才能进到系统里面,去分析哪些是控车应用,做一些工作的运行检查,从而减少我们很多时间。

最后一点就是提固件。很多时候,调试口是封闭的,或者说没有预留调试口,我们就需要去把Tbox的UFS或者eMMC固件提取出来,再做进一步分析。如果固件有读写保护的话,可以用如故障注入等一些高级的应用方法来处理。

02 Tbox漏洞分析

介绍完Tbox,接下来就结合实际案例分析一下Tbox漏洞。

如案例1是通过逻辑分析仪找到了硬件PCB上隐藏的一个UART,通过这个UART我们可以去直接开启adb,打开调试模式。如下图所示,最左边是它的网卡信息,右边就是通过UART开启调试的方法。

其他一些案例有:通过逆向app、逆向固件、复杂条件下的固件提取、提取固件逆向、逆向某证书等方式实现控车的案例,如:

03 安全建议

最后从厂商和消费者两个视角分别提一下个人安全建议。

对于厂商,我希望厂商多重视安全人才的建设,特别是在0-1和1-N阶段,要注重核心人才的投入。企业的安全能力建设主要从下面四个维度介绍

在初始阶段,最主要的是安全基线,打好基线就是做好基座,要做好方案的评审,有条件的话,还要做三方渗透;在发展阶段,要把安全介入到整个测试流程中去,包括开发人员也要把安全融入到开发过程中去;在稳定阶段,安全制度流程已经建立;到了成熟阶段,安全平台做得很好,渗透一类的操作可以通过平台去跑,安全人员只要看看日志以及平台的一些告警就可以了。

对于消费者而言,怎么来看自己购买的车是否安全。首先,建议买大厂的,这里要提一下,别看特斯拉是被报道过的破解最多的就以为它不安全,这是陷入了幸存者偏差的误区,从我个人角度来看,特斯拉的安全应该是所有车厂中做得最好的。

第二,在新势力和老牌车厂中如何选择?对新势力来说,它的优势在于安全投入相对较高,还是建议体验一下;从市场占有率的角度来说,占有率大的车厂,它有一定的存量市场,有持续的造血能力,它肯定在安全方面有一定投入,所以建议在大的厂商里去选择。

第三,你要是实在不放心,就买传统车,买那些没有TBOX和IVI等设备的老爷车;最后一点,就是国内的环境相对来说还是很好的,不像国外有很多的偷车或盗车的场景,国内的话,安全圈其实很小,特别是汽车安全圈,一般不会有大规模的漏洞泄露的情况。

尹小元的完整演讲PPT,可关注“谈思汽车”公众号,后台回复“小米尹小元”,获取PPT下载链接。

-  THE END  -

内容投稿及媒体合作,请联系17316577586(微信同号),沟通合作详情。

这篇关于小米科技高级安全专家:智能汽车Tbox安全漏洞分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008232

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Rust 智能指针的使用详解

《Rust智能指针的使用详解》Rust智能指针是内存管理核心工具,本文就来详细的介绍一下Rust智能指针(Box、Rc、RefCell、Arc、Mutex、RwLock、Weak)的原理与使用场景,... 目录一、www.chinasem.cnRust 智能指针详解1、Box<T>:堆内存分配2、Rc<T>:

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文