车联网安全常见安全术语(基础篇)
The following article is from 橙留香Park Author 橙留香Park
0x01 车端
车联网(IoV,Internet of Vehicle)是移动互联网和物联网相融合的技术,它囊括了所有通过后装或者原厂配置无线通信模块而具有无线网络连接能力的新老车型,它涉及的技术有通信、环保、节能及安全等。
CAN(Controller Area Network)是控制器局域网的英文缩写,CAN的诞生只是为了实现更大范围的协同功能和全局控制。
高速CAN总线(High Speed CAN,CAN-C):CAN-C的标准是ISO11898-2,速率是 125bit/s 到 1Mbit/s,因此这个速率可以满足驱动系统的实时性数据传输要求。CAN-C经常被用于连接以下子系统:
· 发动机控制单元
· 变速器控制单元
· 车身稳定控制
· 仪表系统
低速CAN总线(Low Speed CAN,CAN-B):CAN-B的标准是ISO11898-3,速率是 5~125kbit/s,对汽车舒适系统和车身控制系统(如天窗、车门等)的一些应用来说这个速率是足够的,CAN-B应用的例子如下:
· 空调系统(AC)
· 座椅调节
· 电动车窗
· 天窗控制
· 后视镜调节
· 灯光系统
· 导航系统控制
网络拓扑:网络拓扑结构是指用传输媒体(例如双绞线、光纤、无线链路等)互连各种设备的物理布局,就是用什么方式把网络中的计算机等设备连接起来。拓扑图给出网络服务器、工作站的网络配置和相互间的连接,它的结构主要有星形结构、环形结构、总线结构、分布式结构、树形结构、网状结构等
总线(BUS):总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。
网络协议(Network Protocols):网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
网关(Gateway):又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式、语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
V2V:车与车通信
V2R(Vehicle to Road):车与路通信
V2H(Vehicle to Human):车与人通信
V2S(Vehicle to Sensor):车与传感器通信
V2I(Vehicle to Infrastructure):车与基础设施如道路、服务器等通信
V2P(Vehicle to Pedestrian):汽车与行人通信
V2X(Vehicle to X):表示车与X通信,X可以是车(Vehicle)、路(Road)或者其他相关基础设施
UDS(Unified Diagnostic Services):统一诊断服务
碰撞预警
汽车发生碰撞的几种类型都可以在发生碰撞之前通过V2V通信避免,例如当前车要变化车道时,后面车辆的驾驶员除了前车的转弯灯信号外可能还会收到前车通过V2V通信发出的转向警告信号。在这种情况下,如果后面车辆的驾驶员没有注意到前车的转向灯或者前车驾驶员忘记打开转向灯,后面车辆的驾驶员同样可以得到声音或者指示灯的提示。另一方面,如果要变道的车辆的盲点位置(位于车辆侧后方后视镜看不到的地方)有车而驾驶员没有看到,那么在驾驶员试图转向变道时也会收到提醒。
1.0 左传辅助
左转辅助(LTA,Left Turn Assist):LTA在车辆左转弯且可能发生碰撞时会提醒驾驶员。
1.1 紧急刹车提示
紧急刹车提示(Emergency Electronic Brake Light):当前方的某一辆配备了V2X功能的汽车急刹时,后车会收到提示,这在大雾、大雨天气或者前面有车辆阻挡视线时非常有用。如果没有急刹提示,当后车驾驶员注意到前车的急刹时可能已经来不及减速了。
闯红灯警告(Red Light Violation Warning):这个功能会在车辆驶向交通信号灯时根据车辆速度等信息判断是否可能闯红灯,进而提醒驾驶员。
1.2 过弯速度警告
过弯速度警告(Curve Speed Warning):若汽车以当前速度通过前方弯曲的道路可能发生危险,那么这个功能就会提醒驾驶员减速。
1.3 施工路段提醒
施工路段提醒(Reduced Speed Zone Warning):这个功能会提醒驾驶员减速、变道或者准备停车。
1.4 实时天气信息提醒
实时天气信息提醒:这个功能会通过 V2I 下载实时天气信息和位置,必要时向驾驶员发出告警。
在线诊断系统(OBD):指车辆提供的自诊断和故障报告功能,车主或维修人员可以通过OBD协议获取汽车的各个子系统的工作状态对汽车进行诊断。
OBD 五种协议:SAE J1850 PWM、SAE J1850 VPW、ISO 9141-2、ISO 14230 KWP2000和ISO 15765 CAN(最常用的)
1.5 汽车总线协议介绍
汽车内网采用了多种协议,例如FlexRay、MOST、CAN、LIN等,这些协议的速率和成本不同,因此有各自的应用场景,如图6-1所示。例如,MOST常用于多媒体系统中高速传输数据,FlexRay用于实时性要求较高的X-By-Wire,CAN常用于连接控制器,LIN则用于门窗开关等。
ISO-TP:虽然CAN协议标准里规定了数据最长为8个字节,但是有标准的基于CAN的上层协议用于发送大于8个字节的数据,比如ISO-TP或者ISO15765-2,根据这个标准可以通过CAN总线发送任意长度的数据。ISO15765-2协议定义车载诊断系统网络层要求,基于CAN数据链路层(由ISO11898标准定义)运行。虽说它最初的设计是用在诊断系统上的,但它同样适用于其他需要网络层协议的CAN通信系统上。
CANopen
CANopen 是一种架构在控制局域网络上的高层通信协议,CANopen将11位消息ID分为4位功能码和7位节点ID。7位元的节点ID共有128种不同的组合,其中ID0不使用,因此一个CANopen网络上最多允许127台设备。CAN消息在CAN2.0B规格中允许29位的ID,因此若配合CAN2.0B使用,CANopen网络上可以超过127台设备,不过在实际运用中,大多数CANopen网络上的设备数量均低于此数值。
COB-ID:CANopen将CAN消息的11位ID称为通信对象ID
心跳协议(Heartbeat Protocol):用来监控网络中的节点及确认其正常工作。
UDS:统一诊断服务
1.6 CAN 逆向分析工具
1.VehicleSpy
VehicleSpy是美国英特佩斯控制系统有限公司的产品,是一款集成了诊断、节点/ECU仿真、数据获取、自动测试和车内通信网络监控等功能的工具,支持标准的CAN数据库(即.dbc 文件),与配套的接口适配器硬件结合还可以支持 CAN 以外的其他协议,如FlexRay、LIN、汽车以太网等。
它支持的硬件有很多,分析CAN协议使用ValueCAN就可以。能同时查看、筛选、分类、定制和记录多种总线网络的信号和消息。它的自动消息高亮显示能准确清晰地指示车辆总线上正在变化的数据,这在对CAN进行逆向分析时非常方便。消息编辑界面能让用户方便地设定汽车网络通信的发送或接收消息和信号。VehicleSpy还有非常强大的图形化数据分析功能,包括复合Y轴、复合X轴、数据文件重叠、图表、复制到剪贴板、多种指针仪表等
VehicleSpy还支持脚本编程,功能非常强大,具体可以查看其用户手册。更多关于VehicleSpy的资料可以参考:intrepidcs.comhttp://www.hongkeqiche.com/index.php/bussoftware/vehicle-spy3compare/
2.BusMaster
BusMaster是一款开源的免费软件,支持多家厂商的硬件,例如Kavaser、Vector等厂家的硬件。图6-13所示为BusMaster支持的硬件。
BusMaster支持CAN数据的重放、记录、图形化显示、模拟,以及加载CAN数据库(但不是标准的DBC文件而是后缀名为.dbf的文件)等,功能非常强大。由于它是免费的,所以非常适合入门学习。Kavaser Leaf Light与BusMaster一起使用非常稳定
3.SocketCAN
SocketCAN是大众公司向Linux内核贡献的CAN驱动及协议栈实现,支持虚拟CAN设备、内置CAN芯片、USB或者串口CAN接口设备。
传统的Linux CAN驱动程序采用的是字符设备模型,通常情况下只支持单个进程发送或者接收CAN数据。SocketCAN采用的是网络设备模型
4.CANToolz
CANToolz又叫YACHT(Yet Another Car Hacking Tool),是一个分析CAN和设备的框架。该工具基于不同的模块组装在一起,可以被安全研究人员和汽车业/OEM的安全测试人员用来进行黑盒分析等,可以使用 CANToolz 发现电子控制单元(ECU)、中间人攻击测试、模糊测试、暴力破解、扫描或R&D测试和验证。
1.7 LIN 总线
LIN:支持单线双向通信,采用廉价的由RC振荡器驱动的单片机,但在时间和软件上却要付出代价,每条报文必须经过一个自动确定波特率的过程。
位错误:正在发送的节点应该对希望发送的数据与总线上实际出现的数据进行比较,控制器必须等待足够时间以确保总线对发出的数据做出反应,然后才可以测试这一数据。假定总线响应信号的最小边沿变化速率为1V/μs,最大总线电压为18V,那么发送器应等待18μs后才可进行测试。
1.8 MOST总线
MOST:媒体导向系统传输(MOST,Media Oriented Systems Transport)是一种用于汽车的高速多媒体网络技术,可以用于汽车及其他领域。串行MOST总线采用环形拓扑,同步数据传输机制,采用光纤传输音频、视频等
1.9 FlexRay 高速总线
FlexRay:FlexRay是高速总线,在汽车上主要用于开环或闭环控制系统,主要特点是可靠性高、容错性好、实时性好。主要用于对可靠性和实时性要求比较高的应用场景,如电控转向、电控刹车、电控驱动等系统、电控油门,以及其他主动安全系统。这些系统可能没有机械备用系统,也就是说,如果电子系统故障将无法补救,所以对可靠性要求较高,并且X-By-Wire是一种趋势
FlexRay节点由主控制器(Host)、通信控制器(Communication Controller)和总线驱动器组成,每个节点还可能包括总线保护器(BUS Guardian)用于监控总线驱动器。
0x02 云端
2.1 POC、EXP、Payload与Shellcode
POC:全称 ' Proof of Concept ',中文 ' 概念验证 ' ,常指一段漏洞证明的代码。
EXP:全称 ' Exploit ',中文 ' 利用 ',指利用系统漏洞进行攻击的动作。
Payload:中文 ' 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。
Shellcode:简单翻译 ' shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。名。
2.1.1 注意事项
POC是用来证明漏洞存在的,EXP是用来利用漏洞的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。Payload有很多种,它可以是Shellcode,也可以直接是一段系统命令。同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXP。
Shellcode也有很多种,包括正向的,反向的,甚至meterpreter。
Shellcode与Shellshcok不是一个,Shellshock特指14年发现的Shellshock漏洞。
2.1.2 Payload模块
在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。
2.2 上网行为管理
是指帮助互联网用户控制和管理对互联网使用的设备。其包括对网页访问过滤、上网隐私保护、网络应用控制、带宽流量管理、信息收发审计、用户行为分析等。
剩下的一些云端内容,可以去如下链接查看
https://www.cnblogs.com/wenyoudo/p/14284916.html
参考链接
https://www.cnblogs.com/wenyoudo/p/14284916.html
以及《智能汽车安全攻防大揭秘》里面的常见名词的解释
还有一些其它地方的来源,有遗漏链接私聊一下我,我添加上去