本篇文章接上篇《汽车以太网协议之 SOME/IP(上)》,介绍 Wireshark 解析 SOME/IP 协议以及利用 ANDi 模拟发送 SOME/IP & SOME/IP-SD 包
Wireshark 自带的解析
自 Wireshark 3.2 SOME/IP 发布以来,SOME/IP 支持就已公开,可以在 Wireshark 上解析 SOME/IP 数据。在 github 的 wireshark 仓库中,可以找到 SOME/IP 的解析代码 epan/dissectors/packet-someip.c 、epan/dissectors/packet-someip-sd.c。
以下操作中都将使用 Wireshark 的 3.6.3 版本。
先从网上找一些 SOME/IP 的数据来测试一下,在 https://github.com/thunder2005/SOMEIP 中找到一些数据包:
直接将 vsomeip抓包.pcapng 拖入 Wireshark 后,可以看出数据包并没有被解析:
要想在 Wireshark 中能够自动解析 SOME/IP 协议的数据包,需要启用协议,操作如下:
配置过后,数据包自动被解析:
Wireshark lua 插件解析
此外,还可以用 lua 脚本来解析。https://github.com/jamores/eth-ws-someip 中有 SOME/IP 和 SOME/IP-SD 的 Wireshark LUA 解析器。vsomeip.lua 是用于Wireshark解析SOME/IP 协议的lua插件。
在Wireshark 中启用插件配置如下:
1、确认 Wireshark找到用户创建插件的路径。
帮助 -> 关于 -> 文件夹
2、下载项目后,拷贝其中的以下文件放到指定的 plugin 目录下:
在进行以上操作之后,拖入数据包到 Wireshark 时出现了如下报错:
报错意思是名字重复了,因为 wireshark 本身就支持 someip,所以这里给插件 someip.lua 中的 p_someip = Proto(“someip”, xx) 任意修改如下:
此时再加载会报另外一个错误:
出现以上报错的原因在这一句:
Dissector.get 的参数原本是 someip ,它的参数和 p_someip = Proto(“someip”, xx) 修改后的名字保持一致就没有问题了。
ANDi 是一款汽车以太网专用仿真测试软件,由 Technica Engineering 公司于 2009 年开发推出。
2012年,Technica为宝马提供了SOME/IP测试服务。
2013年,Techncia与宝马、Valeo、博通一道在2013年成功实施了世界第一个车载以太网量产项目,即宝马X5 环视系统。
2016年,Technica为奥迪提供SOME/IP测试服务。
2019年11月1日,SOME/IP标准的制定者,Lars Völker加入Technica。
ANDi 工具有免费的版本和付费版本。
免费版下载:
https://files.technica-engineering.de/ANDi%20Free/
付费版下载:https://files.technica-engineering.de/ANDi/
免费版试用之后,功能像是 Wireshark ,可以直接解析 SOME/IP 的数据包。
根据官网介绍,付费版 ANDi Premium 中可以模拟发送 SOME/IP 和 SOME/IP SD 流量。模拟发送教程可参考:
https://files.technica-engineering.de/ANDi/Documentation/Tutorials/ANDi_frequent_use_cases.html
ANDi Premium 申请试用流程
付费版 ANDi Premium 的申请流程不复杂,本次下载的是当前最新的 SetupANDi_v1.0.0.exe。
安装之后通过提示的 “Request License” 创建一个请求文件,请求文件形如:
之后,向 “[email protected]” 发送一封邮件,表示想申请试用 ANDi Premium ,并将请求文件添加进附件。
在邮件回复中,technica-engineering 会提供一个个人专属的门户网站链接,注册登录之后,在 “产品试用问题” 中提问,提问内容可以和之前邮件中发送的一样,说明想要获得 ANDi Premium 试用机会即可。
客服人员之后会在门户网站上响应,并且发送形如下图中的许可文件:
将下载下来的许可文件,导入到 CodeMeter 控制中心中即可,该程序在 ANDi Premium 安装之后就会自动运行。
申请之后,可以试用 30 天的时间,具体的信息可以点击 “Web 管理界面” 进行查看。
ANDi Premium 使用
ANDi Premium 界面如下:
在使用任何功能之前,首先配置一下 Adapters。
Channel 列可以进行自定义修改,为每个 Channel 选择一块对应的网卡。
对于使用 ANDi 模拟发送 SOME/IP 和 SOME/IP SD 的包,可以通过脚本来实现:
脚本代码:
from project import *
someip_msg_4.ethernet_header.mac_address_source = "源mac地址"
someip_msg_4.ip_header.ip_address_source = "源ip地址"
someip_msg_4.ethernet_header.mac_address_destination = "目的mac地址"
someip_msg_4.ip_header.ip_address_destination = "目的ip地址"
someip_msg_4.someip_header.service_identifier = 0x1111
someip_msg_4.someip_header.method_identifier = 0x2222
someip_msg_4.someip_header.interface_version = 0x02
someip_msg_4.someip_header.protocol_version = 0x03
someip_msg_4.someip_header.request_id = 0x4444
someip_msg_4.payload = System.Array[Byte]([0x11,0x22,0x33])
someip_msg_4.send()
使用 ANDi Free 版抓包如下:
[1] https://www.wireshark.org/docs/dfref/s/someip.html wireshark 官网 someip
[2] https://www.wireshark.org/docs/dfref/s/someipsd.html wireshark 官网 someip-sd
[3] ANDi 官网链接:https://technica-engineering.de/en/produkt/andi-automotive-network-diagnoser/
[4] ANDi软件使用教程 https://files.technica-engineering.de/ANDi/Documentation/
关于绿盟科技格物实验室
绿盟科技格物实验室专注于工业互联网、物联网和车联网三大业务场景的安全研究。实验室以“格物致知”的问学态度,致力于以智能设备为中心的漏洞挖掘和安全分析,提供基于业务场景的安全解决方案。积极与各方共建万物互联的安全生态,为企业和社会的数字化转型安全护航。
绿盟威胁情报中心
绿盟威胁情报中心(NSFOCUS Threat Intelligence center, NTI)是绿盟科技为落实智慧安全3.0战略,促进网络空间安全生态建设和威胁情报应用,增强客户攻防对抗能力而组建的专业性安全研究组织。其依托公司专业的安全团队和强大的安全研究能力,对全球网络安全威胁和态势进行持续观察和分析,以威胁情报的生产、运营、应用等能力及关键技术作为核心研究内容,推出了绿盟威胁情报平台以及一系列集成威胁情报的新一代安全产品,为用户提供可操作的情报数据、专业的情报服务和高效的威胁防护能力,帮助用户更好地了解和应对各类网络威胁。(绿盟威胁情报中心官网:https://nti.nsfocus.com/)
推荐阅读
汽车以太网协议之 SOME/IP(上)
6-4 特稿
目标“北京健康宝”——MIRAI组织发起针对性DDoS攻击
6-2 特稿
RSA创新沙盒汇总 | 今年最全的安全行业风向标都在这了
6-1 特稿
原文始发于微信公众号(绿盟科技研究通讯):汽车以太网协议之 SOME/IP(下)