SOME/IP协议安全攻击

谈思汽车 2023-08-06 10:06

 智能汽车安全新媒体 

作者 | 张昊晖 上海控安可信软件创新研究院工控网络安全组





01

引 言


随着汽车行业对于数据通信的需求不断增加,SOME/IP作为支持汽车以太网进程和设备间通信的一种通信协议应运而生。根据研究[1]表明,第一代使用SOME/IP的汽车以太网包含了几个交换机和少量以太网ECU,每个ECU提供了十余种服务。SOME/IP具有轻量化、高效、以接收方的需求为主导的特点,并且能够提供过程调用和事件通知,逐渐被多种汽车设备所使用。然而,正是由于其被广泛使用和其重要性,SOME/IP协议也成为了潜在的攻击目标。本文将介绍SOME/IP协议的基本原理,并探讨可能的攻击方式和防范措施。


02

SOME/IP协议


可扩展的面向服务的IP中间件(Scalable service-Oriented MiddlewarE over IP,简称SOME/IP)[2]是一种中间件规范,专门用于传输和序列化控制信号,特别是在汽车应用场景中。SOME/IP建立在(汽车)TCP/IP或UDP/IP协议栈之上,为应用程序提供了一个抽象的面向服务的接口(参见图1)。因此,应用程序无需处理IP地址和端口,而是使用服务进行通信。SOME/IP的主要目标是实现灵活且带宽高效的通信。

图 1 SOME/IP架构

SOME/IP可以大致分为三个部分:服务发现(Service Discovery,SD)、远程过程调用(Remote Procedure Call,RPC)和对进程数据的访问。SD使服务器ECU能够发布服务,并使客户端ECU能够订阅车辆网络中的服务,这些服务由服务ID标识,并可根据需要附加选项,例如终端选项(即IP地址、传输协议(UDP/TCP)和端口号)。网络中可以存在多个具有相同服务ID的服务实例,并通过不同的实例ID进行唯一标识。可以使用RPC访问提供的服务,并可以接收有关事件的通知。应用程序可以使用set和get来访问进程数据。

SOME/IP-SD用于定位服务实例、检测服务实例是否正在运行,并实现发布/订阅处理[3]。为了提供服务实例,服务器会发送一个多播服务提供消息OfferService(Service ID,Instance ID),可选择包括上述终端选项在内的其他选项。服务器可以通过发送StopOffer(Service ID,Instance ID)消息来停止提供服务实例。如果客户端未收到具有所需服务ID的合适服务提供消息,则可以主动发送FindService(Service ID,Instance ID)消息,服务器可以回答并提供所请求的服务。实例ID可以设置为特定值,也可以设置为0xFFFF,以找到所有服务实例。发布/订阅机制可用于客户端需要从服务器获取一组信号,但又不想每次手动请求该信息的情况。客户端通过SubscribeEventgroup(Service ID,Instance ID)向事件组订阅,并由服务器确认SubscribeEventgroupACK(Service ID,Instance ID)。客户端通过StopSubscribeEventgroup(Service ID,Instance ID)消息取消订阅。在订阅活动期间,服务器会定期向客户端发送事件消息。此外,SOME/IP为服务实例提供了负载平衡选项。服务器可以在其服务提供中设置优先级和权重。客户端应选择具有最高优先级的服务。如果具有相同优先级的多个服务实例,则应基于服务实例的权重随机选择服务实例。SOME/IP协议定义了以下几种主要的通信模式:

(1)请求-响应方法(Request&Response Method):在请求-响应方法下,一个模块作为Client端在寻找所需服务时发现其正在有效生存时间内,发送一个请求消息,另一个提供该服务的Server端必须回复该请求消息。若请求消息存在差错,会回复错误信息给到Client端。Client端期望在发送请求后,接收到相应的响应消息。这种模式适用于需要请求和获取特定数据或执行特定操作的场景,如传感器数据获取、控制指令下发等。

图 2 请求-响应方法(Request&Response Method)

(2)请求-无响应方法(Fire&Forget Method):在请求无响应方法下,一个模块作为Client端在寻找所需服务时发现其正在有效生存时间内,发送一个请求消息,另一个提供该服务的Server端无需回复该请求消息。即使请求消息存在差错,也不会回复错误信息。

图 3 请求-无响应方法(Fire&Forget Method)

(3)事件通知(Event):在事件通知模式下,作为Server端的模块会对已经订阅其服务的Client端发送状态值或者触发事件的通知。这种模式适用于实时共享状态信息和事件通知的场景,如交通事件发布、环境变化通知等。

图 4 事件通知(Event)

(4)域值通知(Field):域值通知模式是对于Method和Event数据包的组合,它提供了3种通信流程:

① Notify:Notify报文一般会在Client订阅服务之后,由Server端发送,用于通知域值。

图 5 Notify

② Getter:Getter报文使用请求响应方法的模式,当Client端向Server端发送获取域值的请求时,Server端返回当前域值。

图 6 Getter

③ Setter:Setter报文使用请求响应方法的模式,当Client端向Server端发送设置域值的请求时,Server端返回更新后的域值。

图 7 Setter

这些通信模式为SOME/IP协议提供了灵活的通信方式,使得车辆内部模块和车辆与外部实体之间可以以适当的方式进行通信和数据交换。通过选择合适的通信模式,车辆系统可以实现高效的数据交换、实时的事件通知和灵活的方法调用,以满足各种复杂的应用需求。


03

SOME/IP攻击


SOME/IP协议最经常出现的攻击类型是中间人攻击。中间人攻击是攻击者在受害两方都未发现攻击者身份的情况下实施数据窃听和篡改的攻击类型。在以太网环境下,可以通过与受害方同时连接同一个交换机达到中间人攻击的效果。对于SOME/IP的通信,有以下3种不同的中间人攻击方式[4]

(1)服务提供上的复制攻击

此类攻击的操作与重放攻击类似,但实现的环境是在中间人的环境下。图8简单地展示了这种攻击的实现方式:

首先客户端、攻击者和服务端均处在同一个交换机网络下,互相都能接收到彼此的数据。接着服务端在启动服务并进入到正式阶段(Main Phase)后,会周期性地在这个交换机网络中广播自己提供的服务,例如图中所示服务端提供了0x1234和0x5678这2个服务ID的服务,并让客户端和攻击者都收到了这条广播数据。此时,采用复制攻击的攻击者会立刻复制这条广播报文,修改IP地址和端点信息,伪造自己在这个交换机网络中也提供同样的服务。当然因为攻击者只能在SOME/IP协议层面进行复制攻击,无法对下层通信进行干预,因而客户端就会在短时间内收到2条宣称自己具有0x1234和0x5678服务的广播报文,然后可能会选择攻击者发送的这条广播报文进行回复,即图中的请求服务。一旦攻击者收到客户端的请求服务,就会把这条报文带有客户端的身份信息修改为自己的身份信息,但请求服务内容不变地发送到服务端。攻击者再接着把服务端回复的服务内容转发给客户端,这样就完成了一次中间人转发操作。并且对于服务端,攻击者会被认为是真正的客户端,而对于客户端会把攻击者当成提供服务的节点。在成功进入这个中间人环境后,攻击者可以进行下一步深层次的攻击。

图 8 服务提供上的复制攻击

(2)服务提供上的断连攻击

第一种复制攻击看似很容易能进入到中间人的环境中,但具有一定的局限性:

客户端可能已经与服务端建立了连接,不会再对攻击者的广播作出反应。

即使客户端未与服务端建立连接,也不能保证客户端选择攻击者的广播报文发送请求,因为服务端永远比攻击者先发出去原始报文。

根据SOME/IP官方文档,不可复用服务端提供的Instance ID,但还要根据客户端能够接受的Instance ID伪造Offer报文。

由于以上的问题,一种基于复制攻击的断连攻击被提出了,如图9所示:

可以看到图的下半部分与复制攻击的后半部分一致,就是攻击通过伪造提供服务的报文,让客户端与自己连接,完成客户端与服务端之间的消息传递。但区别就在于服务端广播提供服务报文时,攻击者会立刻向客户端发送一条伪造成服务端身份的单播停止提供服务报文,同时再把自己伪造的服务广播在这个网络中。

与复制攻击相比,断连攻击会让客户端断绝与服务端建立连接的机会,无论它是已经与客户端相连还是刚选择了服务端提供的服务。伪造StopOffer可以帮助攻击者稳定地与客户端建立连接。

断连攻击看似更加好用,实际也存在一些限制。停止提供服务的报文必须要通过单播的方式发送到客户端手中,这是因为一旦服务端收到了这条消息,它会认为存在其他服务端提供相同的服务,不会再提供重复服务。这样就会导致中间人环境无法建立,因为服务端不会再对攻击者转发的请求进行任何回复。由于单播这一限制条件,攻击者必须知道对该服务感兴趣的客户端。换言之就是知道可能与服务端建立连接的客户端的信息,这样才能成功将单播的断连报文发送到客户端手中,达成后续目的。

图 9 服务提供上的断连攻击

(3)发布订阅上的攻击

前2种攻击在成功后,表现形式均为能够正常转发请求/回复数据。除了转发请求或回复的数据,也可以通过退订的操作最终导致可以转发事件信息。图10清晰地展示了整个流程:

服务端还是按照惯例广播自身提供的服务,接着客户端和攻击者都订阅了服务端的事件组,并收到了服务端的确认帧,此时说明服务端也记录下了客户端和攻击者分别的断端点信息。

然后攻击者会通过上面2种服务提供上的攻击的其中一种,让客户端信任自己具有它需要的服务事件组,客户端就会订阅攻击者的事件组。攻击者一收到订阅报文,就会回复确认帧,并立刻伪造一条包含客户端端点信息的退订事件组报文,让服务端不再将事件信息发送给客户端。而此时,攻击者与服务端之间的连接还存在,因此可以把服务端的事件更新信息转发给客户端,达到中间人攻击的环境。

图 10 发布订阅上的攻击


参考文献:

[1] Seyler, N. Navet, and L. Fejoz. 2015. Insights on the Configuration and Performances of SOME/IP Service Discovery. SAE Int. J. Passeng. Cars – Electron. Electr. Syst. 8 (04 2015), 124–129.

[2] AUTOSAR. 2018. Specification on SOME/IP Transport Protocol - CP Release 4.4.0.

[3] AUTOSAR. 2018. Specification of Service Discovery - CP Release 4.2.2.

[4] Daniel Zelle, Timm Lauser, Dustin Kern, Christoph Krauß, Analyzing and Securing SOME/IP Automotive Services with Formal and Practical Methods, ARES 21: Proceedings of the 16th International Conference on Availability, Reliability and SecurityAugust 2021, Article No.: 8 Pages 1–20

-  THE END  -

因文章部分文字及图片涉及到引用,如有侵权,请及时联系17316577586,我们将删除内容以保证您的权益。

谈思汽车 智能汽车安全新媒体
评论
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 55浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 170浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 125浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 80浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 68浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 104浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 143浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 44浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 170浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 75浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 116浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 180浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 85浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 100浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦