鉴源实验室丨SOME/IP协议安全攻击

这篇具有很好参考价值的文章主要介绍了鉴源实验室丨SOME/IP协议安全攻击。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

来源 | 鉴源实验室

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

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的主要目标是实现灵活且带宽高效的通信。

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/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端期望在发送请求后,接收到相应的响应消息。这种模式适用于需要请求和获取特定数据或执行特定操作的场景,如传感器数据获取、控制指令下发等。

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

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

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

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

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

图 4 事件通知(Event)

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

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

图 5 Notify

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

图 6 Getter

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

图 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服务的广播报文,然后可能会选择攻击者发送的这条广播报文进行回复,即图中的请求服务。一旦攻击者收到客户端的请求服务,就会把这条报文带有客户端的身份信息修改为自己的身份信息,但请求服务内容不变地发送到服务端。攻击者再接着把服务端回复的服务内容转发给客户端,这样就完成了一次中间人转发操作。并且对于服务端,攻击者会被认为是真正的客户端,而对于客户端会把攻击者当成提供服务的节点。在成功进入这个中间人环境后,攻击者可以进行下一步深层次的攻击。

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

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

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

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

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

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

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

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

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

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

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

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

(3)发布订阅上的攻击

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

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

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

鉴源实验室丨SOME/IP协议安全攻击,鉴源论坛,tcp/ip,安全,网络协议

图 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文章来源地址https://www.toymoban.com/news/detail-634742.html

到了这里,关于鉴源实验室丨SOME/IP协议安全攻击的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鉴源实验室 | AUTOSAR SecOC:保障汽车通信的安全

    作者 |  沈平 上海控安可信软件创新研究院汽车网络安全组 来源 |  鉴源实验室 社群 |  添加微信号“ TICPShanghai ”加入“上海控安51fusa安全社区” 在现代汽车行业中,随着电子控制单元(ECUs)的普及以及车与车之间通信的不断增加,确保通信安全变得尤为关键。AUTOSAR (Au

    2024年02月08日
    浏览(62)
  • 鉴源实验室|自动驾驶仿真测试技术分析

    01 引言 随着科技的不断发展,自动驾驶技术逐渐成为汽车行业的热门话题。然而,要将自动驾驶车辆投放到真实道路上之前,必须进行广泛的测试,以确保其在各种情况下都能安全可靠地运行。自动驾驶车辆的测试是一个复杂而昂贵的过程。在真实道路上进行测试存在许多挑

    2024年01月20日
    浏览(45)
  • 知道创宇区块链安全实验室|Deus Finance预言机攻击事件分析

    1.前言 北京时间 2022 年 3 月 15 日,知道创宇区块链安全实验室监测到 Deus Finance 遭到黑客攻击,损失约 300 万美元。知道创宇区块链安全实验室 第一时间跟踪本次事件并分析。 2.基础信息 攻击者地址:0x1ed5112b32486840071b7cdd2584ded2c66198dd 攻击合约:0xb8f5c9e18abbb21dfa4329586ee74f1e2b6

    2023年04月08日
    浏览(47)
  • 智慧校园实验室安全综合管理平台如何保障实验室安全?

    一、建设思路 实验室安全综合管理平台是基于以实验室安全,用现代化管理思想与人工智能、大数据、互联网技术、物联网技术、云计算技术、人体感应技术、语音技术、生物识别技术、手机APP、自动化仪器分析技术有机结合,通过建立以实验室为中心的管理体系,从人员、

    2024年01月20日
    浏览(81)
  • 实验室安全考试

    1、[判断题] 火灾对实验室构成的威胁最为严重,最为直接。应加强对火灾三要素(易燃物、助燃物、点火源)的控制。 (分值1.0) 你的答案: 正确 2、[判断题] 50毫安的工频电流就可以使人遭到致命电击。 (分值1.0) 你的答案: 正确 3、[判断题] 用电安全的基本要素有:电

    2024年02月06日
    浏览(73)
  • 实验室安全

    [判断题] 基于安全考虑,每个实验房间每天最后一个离开的同学必须确保进行断电处理【4分】 正确答案:B 解析:暂无解析 [判断题] 实验用电烙铁应有专门搁架,用毕立即切断电源【4分】 正确答案:A 解析:暂无解析 [判断题] 集中供气是解决实验室存放过多气瓶的有效途径

    2024年02月08日
    浏览(65)
  • 网络安全实验室2.基础关

    url:http://lab1.xseclab.com/base1_4a4d993ed7bd7d467b27af52d2aaa800/index.php 查看网页源代码的方式有4种,分别是:1、鼠标右击会看到”查看源代码“,这个网页的源代码就出现在你眼前了;2、可以使用快捷Ctrl+U来查看源码;3、在地址栏前面加上view-source,如view-source:https://www.baidu.com ;

    2023年04月17日
    浏览(52)
  • 网络安全实验室|网络信息安全攻防学习平台(脚本关1-6)

    传送门: http://hackinglab.cn/ 点击此处开启抓包,send ti repeater 模块 脚本来源: https://blog.csdn.net/hzxtjx/article/details/125692349 使用requests库向网站发送HTTP请求,并使用re模块使用正则表达式从网站的HTML内容中提取信息。所选的代码块定义了一个正则表达式模式r’/n(.*?)=i’。此模式

    2024年02月08日
    浏览(77)
  • 实验室安全教育考试管理系统v3.0功能介绍

    瑞熙贝通实验室安全练习和在线考试系统,采取线上培训学习与安全考试相结合的教学形式,在学生进入开放实验室之前通过系统对实验的安全与规范有一个系统的认识与学习。通过线上考试系统,为评价学生的实验室安全学习效果提供了快速有效的实验平台。 一、实验室安

    2024年02月04日
    浏览(48)
  • django实验室安全教育管理系统(源码+mysql+论文)

    本系统(程序 + 源码)带文档 lw 万字以上   文末可获取本课题的源码和程序 选题背景: 随着科学技术的不断发展,实验室在高校、研究所等科研教育机构中扮演着越来越重要的角色。实验室安全事关科研人员的生命安全和科研成果的保护,因此,加强实验室安全管理,提高

    2024年04月27日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包