Fuzz测试:提升自动驾驶安全性

目录

什么是Fuzz测试?

自动驾驶的潜在风险

Fuzz测试:自动驾驶和车联网

Fuzz测试方法有以下几种:

资料获取方法


纵观近百年来汽车制造业的发展历程,产业跨进的每一步背后都有着技术创新作为支撑。汽车技术创新对世界经济、社会发展、人们的生产生活方式产生了极其深远的影响。1908年,福特公司正式推出T型车,背后是其首创的汽车生产流水线;1981年,汽车第一次具备了车载导航系统——“Electro Gyrocator”,Electro Gyrocator(电子陀螺仪导航器)由日本本田和阿尔派公司合作推出,装配在第二代本田雅阁汽车上,该导航系统在当时售价为2750美元,约占车辆总体售价的1/4;时至今日,车辆都已配备了泊车辅助系统,汽车产业在技术层面持续革故鼎新。

随着汽车新技术和新变革加速落地,安全漏洞问题也随之产生,通过物联网实现网络连接的汽车正暴露在和手机、笔记本电脑一样的网络安全威胁中。Fuzz测试,又被称为模糊测试,是一种相对简单的解决方案,可为汽车安全问题提供必要的预防措施。

什么是Fuzz测试?

Fuzz的释义为“绒毛、起毛、做绒毛状飞散、使模糊、变得模糊”,在软件测试领域一般指代“模糊测试”,又称Fuzzing。本文将统一称作Fuzz测试。

Fuzz测试是用于检测软件或计算机系统安全漏洞的自动化软件测试技术,其核心思想是将自动或半自动生成的随机数据列入到DUT(Device Under Test,被测设备)中并监视其异常,以发现可能存在的错误。Fuzz测试可被用作白盒、灰盒或黑盒测试,其工具通常分为变异测试(mutation-based)和生成测试(generation-based),能够发现先前未能发现的漏洞,即零日漏洞。Fuzz工具通常会针对协议缓冲区发送字节、字母或整数序。

自动驾驶的潜在风险

当前的汽车技术已远远发展至发动机以外更复杂的范畴,车载设备通过无线通信技术,可以对信息网络中车辆的动态信息进行有效利用,从而在车辆运行中提供各种功能服务,自动驾驶也应运而生。这一概念被称为车联网,是IoT(Internet of Things,物联网)的一种。车联网带来方便快捷的同时,也成为了黑客攻击汽车控制系统的主要渠道,存在可被利用的安全漏洞。

Upstream Security 发布的《2021 年全球汽车网络安全报告》预测称,在 2021-2023 年,网络黑客攻击或将导致汽车业折损近 240 亿美元。报告指出:“汽车生态中的网络威胁尤为令人担忧,因为此类威胁可能直接影响道路使用者的安全。车辆本身就很危险;再加上联网,现代汽车就更加危险了。”

▲2010-2020年汽车安全影响因素

数据来源:Upstream《2021年全球汽车网络安全报告》

由于自动驾驶尚未得到广泛应用,且汽车制造商通常会在既定的平台标准上开发自己的安全协议,相对应的安全漏洞也未得到适当的研究和记录。美国国家标准与技术研究所 (National Institute of Standards and Technology,NIST) 在其自动驾驶汽车系统和组件的漏洞检测(Common Vulnerabilities & Exposures,CVE)数据库中记录的问题数量虽然较少,但随着近几年特斯拉等涉及智能驾驶的汽车事故频频发生,自动驾驶的安全隐患问题不容忽视。

Fuzz测试:自动驾驶和车联网

想象一下这样的情况:当您正在高速公路上驾驶自动驾驶汽车——引擎正在与传感器通信,发送和接收数千个数据包。突然,另一个不明节点向您的引擎发送了数千个数据包。该节点没有遵守规则,不按协议规定的字节数来发送。虽然您的引擎已经过测试并具备抵抗这些数据包的能力,但是随着节点不断发送整数或十六进制组合的数据包,这些不被处理的数据可能导致缓冲区溢出,汽车引擎就将被关闭。这是安全漏洞被利用的情况下,随时都可能出现的可怕场景。为了防止这种情况,可以使用模糊器来测试协议中的每个指定区域和缓冲区,从而确保每辆自动驾驶的汽车都具备抵御那些试图破坏程序、绕过登录直接进行远程操作的攻击者的能力。

Fuzz测试方法有以下几种:

1. 基于变异:有效代码样本被随机变异并以错误的格式输入,虽然可以满足基本测试需求,但变异可能无法提供导致程序崩溃的缓冲区的明确输出,且难以重现,很难找到确切的漏洞。

2. 基于重放:Fuzz测试工具使用已保存的数据样本,对其进行变异后重放以创建攻击,然而这种方法在双向的汽车动态协议中效果也并不理想。

3. 基于语法生成:在这种方法中,Fuzz测试工具将学习RFC(Request For Comments,参考标准)并理解其语法,明确哪些字段可能不会发生变异、哪些字段可以测试。基于语法生成用例的Fuzz测试工具将构建有效的输入序列,对通信的特定部分进行测试,确保数据包不会立即被被测设备阻塞——不会产生序列错误的测试用例。

尽管Fuzz测试并不是唯一的解决方案,但确实是自动驾驶行业最合适的选择:它不像静态分析工具,需要被测设备信息和源代码才能检测潜在漏洞,而是将整个堆栈进行黑盒化的模糊处理。这样,无需任何关于被测设备的信息和测试访问权限,开发者在开发阶段和预发布阶段就能发现漏洞。Fuzz测试能在每个协议、每个独特的场景下进行。

Fuzz测试的另一个关键优势,与利用IP通信发现漏洞的不同之处,在于其能够通过需要串行连接的协议进行通信,为没有TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)通信的产品提供强大的测试支持。


资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数学建模学习(3):综合评价类问题整体解析及分析步骤

一、评价类算法的简介 对物体进行评价,用具体的分值评价它们的优劣 选这两人其中之一当男朋友,你会选谁? 不同维度的权重会产生不同的结果 所以找到每个维度的权重是最核心的问题 0.25 二、评价前的数据处理 供应商ID 可靠性 指标2 指…

基于Android Studio编辑器上开发的一款看点新闻App

完整资料进入【数字空间】查看——baidu搜索"writebug" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态,增长知识,增广见闻,顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 …

【Spring Boot Admin】使用(整合Spring Security服务,添加鉴权)

Spring Boot Admin 监控平台 背景:Spring Boot Admin 监控平台不添加鉴权就直接访问的话,是非常不安全的。所以在生产环境中使用时,需要添加鉴权,只有通过鉴权后才能监控客户端服务。本文整合Spring Security进行实现。 pom依赖 …

Vue第四篇:html和js基础知识查漏补缺

1、a标签 定义超链接,用于从一个页面链接到另一个页面 target属性:打开目标URL的方式,_top为再当前窗口打开,_blank为新窗口打开 2、span标签 对文档中的行内元素进行组合,它提供了一种将文本的一部分或者文档的一部分…

Jmeter(二十三):快速生成测试报告

一、jmeter配置 首先要保证jmeter命令是ok的,如果你在cmd中输入jmeter -v,有出现如下截图所示的信息,那就说明jmeter环境ok; 二、jmeter执行结合命令 生成HTML测试报告 1.完成脚本的调试、参数化、断言等操作。然后在聚合报告中指定日志文件存储路径,路径中最好不要包含有…

通过电商项目,详解抓包到接口测试,附图片验证码 +cookie 问题处理!

通常来说,进行接口测试,开发会提供对应的接口文档给到测试,但也有例外。开发无接口文档,但领导又需要你对刚开发的软件,进行接口测试、接口自动化测试、甚至是性能测试。这个时候作为专业测试应该怎么办? …

[元带你学: eMMC协议 28] eMMC 上电时序 | eMMC 上电指南

依JEDEC eMMC及经验辛苦整理,原创保护,禁止转载。 专栏 《元带你学:eMMC协议》 内容摘要 全文 1500 字, 主要内容 eMMC 上电规范 和 eMMC 上电指南, 这部分内容偏向电气特性,如果不是硬件的同学只要特别浅的了解, 一带而过。 eMMC 上电规范 eMMC 电压 VCCQ指的是接口…

视频文件批量添加字幕内容需要如何快速操作

有时候我们在剪辑视频的过程中,想要给视频素材添加上一些文字说明,需要如何操作呢?为了提高剪辑效率,今天小编来分享教学,教你如何才能批量地给视频素材添加滚动字幕,一起来看看具体的方法介绍吧。 我们先打…

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下

1.前言 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识。其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler。 1.1工作场景 做app测试,你是…

正则表达式 —— Grep

文本处理三剑客:Grep、Sed、Awk 这三个工具都是基于对文本的内容进行增删改查的操作,此篇着重介绍grep与正则表达式的应用,以及扩展正则表达式。 正则表达式 什么是正则表达式? 它是由一类特殊字符以及文本字符所编写的一种模式…

华为云零代码平台AstroZero新手操作指南-3分钟体验创建培训报名表

华为云Astro轻应用Astro Zero是华为云为行业客户、合作伙伴、开发者量身打造的低代码/零代码应用开发平台,提供全场景可视化开发能力和端到端部署能力,可快速搭建行业和大型企业级应用并沉淀复用行业资产,加速行业数字化。 在AstroZero上&am…

程序员如何向老板提加薪?

今天的问题不仅适用于程序员,对于其他职业同样适用。如果你认为自己所做的工作应该得到更多的报酬,并且想为此做点什么,你有两个选择:找一个新的高薪工作或要求加薪。 这两种选择都会带来新的焦虑,但它们都会带来新的…

gerrit 提交搞了一天的账号密码

搞了一整天的账号密码怎么输入都不对 以为输入了也不对,查找各种文档也不太行 参考也不太行: https://blog.csdn.net/qq_43279637/article/details/103595122 最后发现 是使用了git clone http 脑残方式,正确应该使用 git clone ssh 就可以…

指数函数exp

目录 指数函数及e 指数增长 复数指数 练习 1. expgui 2. 计算e 3 五角星绘制 指数函数及e (1)的比值总是常数 (2)的导数为其自身。(根据比值1推导出e的值) %% Plot a^t and its approximate derivat…

【ribbon】Ribbon的负载均衡和扩展功能

Ribbon的核心接口 参考:org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration IClientConfig:Ribbon的客户端配置,默认采用DefaultClientConfigImpl实现。IRule:Ribbon的负载均衡策略,默认采用ZoneA…

iPortal 注册登录模块扩展开发

作者:yx 文章目录 前言一、示例代码简介二、对接 iPortal REST API 接口2.1、登录模块扩展开发2.2、注册模块扩展开发 三、页面内容及样式实现四、配置启用定制页面 前言 针对注册登录模块,iPortal 允许用户通过 iFrame 方式接入自行开发的页面&#xf…

经典面试题(力扣,接雨水)

接雨水 方法一思路测试代码复杂度测试结果 方法二思路测试代码复杂度测试结果 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1]…

[JAVAee]线程安全

目录 线程安全的理解 线程不安全的原因 ①非原子性 ②可见性 ③代码重排序 体会何为不安全的线程 保证线程安全 一个代码在多线程的环境下就很容易出现错误. 线程安全的理解 线程安全是什么呢?通俗的来讲,线程安全就是在多线程的环境下,代码的结果是符合我们预期的,就…

MFC第二十一天 CS架构多页面开发与数据交互、CImageList图像列表介绍 、CListCtrl-SetItem设置列表项的方法

文章目录 CImageList图像列表介绍CListCtrl图标的原理CListCtrl列表图标设置CListCtrl-SetItem设置列表项的方法 CS架构多页面开发与数据交互添加用户实现向导多页数据交互pch.hCLientXq.h CAppCPage1.hCPage1.cppCPage2.hCPage2.cppCWorkerDlg .hCWorkerDlg.cpp 多页数据修改C…

【高危】Atlassian Confluence 远程代码执行漏洞

漏洞描述 Confluence 是由 Atlassian 开发的知识管理与协同软件,通常在企业内部用作wiki系统。 Confluence 7.19.8到8.2.0之前的版本中存在远程代码执行漏洞,具有登录权限的攻击者无需用户交互即可在 Confluence 服务器中执行任意命令。 漏洞名称Atlass…