基于模糊测试方法实现车载通信测试

汽车电子设计 2022-09-26 14:26

作者 | J
小编 | 吃不饱

模糊测试是网络安全测试领域必然会被提及的一类测试方法。它有着极其鲜明的特点,包括极低的需求依赖性、可逆向的测试理念等,与常规测试方法显得是那么的“风格迥异”。但同时,这种测试方法又常常能发现一些核心、严重的BUG,因此其在整个测试体系中有着重要的地位,且这种测试方法也已“润物细无声”地融入到我们的测试活动中了。本次就为大家介绍如何在车载通信领域运用模糊测试。

1

什么是模糊测试


模糊测试的整体测试思路非常简单,给待测系统输入“随机值”,然后监测是否出现异常。

图1 模糊测试示意图

这个过程中有这样几个特点:

1

   / 随机值

随机值可以是正常的数据,也可以是非预期的数据,通常可以通过变异(篡改原有数据)和生成(通过规则伪造数据)来获得。且整个测试不是找几个随机值来做测试,而是不断地输入大量的随机值(可以理解为无穷尽)来做长时间的持续测试。


图2 功能性测试与模糊测试对比

2

   / 监测异常

正是由于待测系统可能接收处理非预期数据,因此其会有各种各样的表现。而异常表现可以是服务停止、程序崩溃,也可以是资源过载、数据丢失。

3

   / 自动化

每个测试轮次都是给定输入然后监测异常,而对于模糊测试来说,这样的轮次需要执行非常多的次数,甚至可以永无止境,所以自动化是基本必须要实现的内容。


2

模糊测试运用到车载通信


虽然模糊测试在车载通信测试中很少被单独拿出来,但实则我们在很多的测试中使用了这种方法。比如:



CAN通信测试中的高负载测试

对CAN通信注入特定的报文,形成期望的负载条件,然后监测是否有异常。这个测试中的随机值变量为负载率和产生负载的报文ID,异常的判断可能包括错误帧、通信恢复等,这就形成了一个高负载模糊测试。


网络管理中的休眠唤醒测试

在控制器休眠的各个时刻触发唤醒事件,然后监测是否正常唤醒。这个测试中随机值变量是时序,即唤醒事件的触发是在什么时刻,异常的判断是唤醒行为,这就形成了一个休眠唤醒时序模糊测试。


这里举的2个例子比较特别,想要说明的是我们提及的随机值并不仅仅是协议字段或者信号数值这种很容易联想到的数据,还包括各种状态值(如负载率、吞吐量、频率等)、时序(如休眠唤醒过程、TCP连接的三次握手、诊断服务的解锁交互等)等数据。尤其是时序,通常是有一连串的步骤,这一过程中不仅可以将每一步的间隔时间用作随机值,还可以在各个步骤本身“大做文章”,比如每一步再耦合随机信号值。

概括起来就是万物皆可数据化,数据皆可随机化,这或许是模糊测试的核心思想。

结合车载通信本身的特点,我们可以得到一些典型的模糊测试内容:

针对协议中数据格式的模糊测试


CAN总线中接收到不同ID、DLC时,是否出现错误帧。这种测试可能更针对CANFD节点或者OBD节点,甚至还包括扩展帧、远程帧等特殊数据。

又比如以太网中接收到不同的源MAC、目标MAC、源IP、目标IP、源端口、目标端口时,是否出现异常。这里的异常又会根据防火墙策略变得不尽相同,比如无响应、重启、发出不可达的错误报文等。

图3 针对协议中数据格式的模糊测试示例-CAN ID模糊测试

针对信号值的模糊测试


CAN总线中接收到不同的信号值(包括非法值、无效值等),是否出现重启、死机等情况。

又比如SOME/IP中接收到各种请求、响应、订阅等数据(包括非预期的数据类型、编码、字节顺序等),是否出现服务暂停、服务崩溃、死机等情况。

图4 针对信号值的模糊测试示例-CAN信号模糊测试

针对时序的模糊测试


如上文提及的网络管理休眠唤醒测试。

又比如SecOC或者时间同步机制中,需要周期性地对特定基准进行同步处理,又有其他数据会使用同步后的基准,而在同步时序中出现各种偏移(包括基准本身的偏移、应用数据使用的基准与基准更新时刻的偏移等),判断同步机制是否崩溃。

图5 针对时序的模糊测试示例-休眠唤醒模糊测试

针对流量的模糊测试


如上文提及的高负载测试。

又比如网关节点的性能测试中,在各端口并行接收不同的数据流以构成不同的吞吐量,判断路由机制是否崩溃。

图6 针对流量的模糊测试示例-吞吐量模糊测试

3

模糊测试中需要注意的问题


虽然有大量的测试可以使用模糊测试方法,但同样的,模糊测试也有着其局限性或者说不足,如何尽可能地发挥其优点、规避其不足可能需要考虑以下内容:

异常


对于异常的判断是一个十分困难但又非常重要的点。困难是在于异常的情况比较复杂且能够监测的手段很多时候是有限的,尤其是需要实现异常情况的自动化监测。在车载网络中可以用来判断异常的包括特定信号值、周期报文的周期波动、控制器的电流值、DTC等。对于每一种不同的模糊测试,应该需要根据测试内容选择合适的异常判断方式。另一个有效的方法是进行“插桩”,用来突破控制器本身的局限性,突破常规“黑盒测试”的局限性。

图7 插桩示意图

平衡


由于模糊测试是一种趋近于无穷测试的方式,带来的必然影响就是时间成本的增加。但是我们实际的产出并不会随时间增加而呈现线性的增加,因此测试效率会变得越来越低。为了提高测试效率,我们必然会使用一些规则做随机值的筛选,但这又必然导致随机性的降低。正如很多测试理论所描述,“测试可以证明存在缺陷,但不能证明不存在缺陷”。我们很多的测试都是在投入和产出中寻求平衡,模糊测试由于其特点显得更加明显,以至于我们要界定测试是否完成会存在一些争议和博弈,要处理这样的平衡,难度会可能大于测试本身。

定位及修复


测试会发现问题,这带来的另一个问题就是如何定位。而模糊测试的特点又会导致问题的定位(包括问题复现)会有很大的难度和不确定性,尤其是当模糊测试中随机值是更多维度的情况下,事情就会变得更加复杂。另一个需要考虑的点就是问题修复后的复测工作,这可能比做一次完整的模糊测试还要麻烦,此时需要解决的点是如何快速验证问题已被修复和如何验证修复方案是否会产生新的问题。虽然这两个点在所有测试中都存在,但是由于模糊测试的随机性,这两个问题显得更加困难。

综合上述几点考量,个人认为对于当前的车载通信来说,在开发前中期采用模糊测试时需要有规则性和针对性的,虽然我们降低了发现问题的范围,但得到的是测试效率、问题修复效率、资源利用率的有效提升。而随着软件的逐步成熟,可以逐步放开原有规则,增加随机性。这一过程中也需要结合自身的情况来做调整,总之,关键点其实就两个字:平衡。

4

总结


模糊测试是一个相当有效的测试方法,其随机性的思想可以让我们发现通过逻辑很难想到的问题,这扩大了我们发现问题的范围和手段,能有效提高测试经验,这与场景测试有着异曲同工之妙。但同时,其投入多、修复难的问题也是不可忽视的内容。如何达到平衡是我们必须要考虑的点,总的来说,这是个以时间换经验还是以经验换时间的选择题。

另外,本文的车载通信测试是广义概念,也包括了以车载通信技术作为载体的安全通信、安全诊断、安全刷写等测试。

北汇信息专注于汽车电子测试,与国内外众多OEM和Tier1合作,在车载通信、诊断刷写、OTA、车内网络安全、域控制器功能测试等领域积累了丰富的实践经验,欢迎大家交流、探讨。

注:文中部分图片来源于Vector

车载以太网第二弹|测试之实锤-1000BASE-T1 IOP测试实践

【车载以太网案例】全新100/1000BASE-T1 IOP测试解决方案

千兆车载以太网TSN网络测试?TSN Box为您焕新

车载以太网第二弹|测试之实锤-基于电阻噪声和高斯噪声的SQI测试对比

汽车电子设计 本公众号是博主和汽车电子的行业的工程师们一起交流、探讨、思考的小结,以作为技术交流和沟通的桥梁
评论
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 202浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 61浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 164浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 119浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 58浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 69浏览
  • 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 106浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 116浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 141浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 92浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦