Perforce SAST专家详解:自动驾驶汽车的安全与技术挑战,Klocwork、Helix QAC等静态代码分析成必备合规性工具

自动驾驶汽车安全吗?现代汽车的软件包含1亿多行代码,支持许多不同的功能,如巡航控制、速度辅助和泊车摄像头。而且,这些嵌入式系统中的代码只会越来越复杂。
随着未来汽车的互联程度越来越高,这一趋势还将继续。汽车越来越依赖于技术,将逐渐变得更加自主,并最终实现自动驾驶。因此,了解自动驾驶汽车的安全问题非常重要,这样你才能回答 “自动驾驶汽车安全吗?”、”自动驾驶汽车比人类驾驶更安全吗?”等问题。

自动驾驶汽车安全吗?比人类驾驶更安全吗?

有专家认为,自动驾驶汽车有可能比人类驾驶员更安全。

自动驾驶汽车正在不断改进:《自然通讯杂志》最近发表的一项研究比较了2100个自动驾驶系统和25,113个人类驾驶汽车的事故数据。研究发现,在大多数可比情况下,自动驾驶汽车比人类驾驶汽车发生的事故更少。

支持使用自动驾驶汽车的数据是有道理的——毕竟,人类驾驶员每年都会发生数百万起事故。2022年,约有600万起载有人类驾驶员的车辆事故,其中致命事故不到百分之一。

不过,该研究的其他数据表明,自动驾驶汽车要成为常态,还有很长的路要走。

例如,《自然》杂志的研究分析了其他情况下的事故率,发现在黎明、黄昏以及转弯条件下,使用高级驾驶辅助系统(ADAS)的事故更为频繁。

此外,《自然》杂志的研究承认,由于自动驾驶汽车仍然稀缺,事故数据也很少。与此同时,确实发生并成为头条新闻的事故可能会削弱公众对全自动驾驶汽车的信任。例如,福布斯的一项法律调查发现,93%的受访者对自动驾驶汽车表示担忧。

臭名昭著的是,2018年3月,一辆Uber自动驾驶测试车在亚利桑那州与一名骑自行车的人发生了致命碰撞。这辆自动驾驶汽车未能将骑车人识别为人类,直到来不及停车。而车内的人类安全驾驶员也没有注意到这名骑自行车的人。

我们可能还需要一段时间才能看到自动驾驶汽车的广泛应用。

与此同时,由人类驾驶的车辆正在使用越来越多的ADAS技术。

自动驾驶汽车如何保障安全?

如今,大多数新车都配备了ADAS。ADAS包括:

  • 车道跟踪 
  • 自主紧急制动 
  • 增强型视觉系统 

提供这些功能的系统依赖于通过本地网络进行通信的传感器和执行器。它们由微控制器控制。

汽车之间也相互通信,即车对车通信(V2V)。汽车还可以与交通灯、路标或卫星等基础设施进行通信,即车对基础设施通信 (V2I) 或V2X。

实现这一切的当然是软件。除了应用程序代码之外,还有操作系统和中间件(如网络通信栈),以及传感器、执行器和显示接口。

安全问题:自动驾驶汽车安全吗?

配备ADAS的车辆面临着比以往更多的安全问题。

围绕汽车的安全问题日益突出。随着V2X通信的发展,汽车很容易受到恶意攻击。有报道称,黑客控制了汽车并凌驾于驾驶员之上。

大多数汽车制造商都使用车载诊断系统(OBD)。OBD可访问各种发动机参数,以便在维修时进行故障查找和诊断。

连接器接口(OBD II)的技术细节已公开发布。目前有许多蓝牙OBD连接器,任何人都可以使用手机访问发动机参数。

显然,这可能会使发动机控制系统暴露给任何怀有善意或恶意的人。

密歇根大学最近对此进行了测试。他们发现,笔记本电脑与OBD接口的直接连接可用于覆盖驾驶员的指令。

汽车合规标准为何至关重要?

因此,随着ADAS的发展和自动驾驶汽车的普及,汽车合规性仍将十分重要。而汽车标准也需要得到遵守。

ISO 26262可能是最重要的车辆安全标准。它侧重于电气和电子系统的功能安全,适用于安全相关系统生命周期内的所有活动。其中包括对软件质量的要求。

该标准使用汽车安全完整性等级(ASIL)来衡量风险。范围从A到D,A是最低的安全完整性级别。D级为最高级别,要求也最多。

风险参数包括风险的严重程度、暴露概率和可控性。

可控性假定驾驶员:

  • 具备适当的驾驶条件。
  • 接受过相应的驾驶培训(有驾驶执照)。
  • 符合所有适用的法律法规。

自动驾驶汽车合法吗?

自动驾驶汽车可以在一些国家/地区进行合法测试。但是,自动驾驶汽车还需要克服更多的法律障碍。

法律需要适应ADAS和自动驾驶汽车。立法必须考虑到ADAS出现故障时应如何处理,这一点至关重要。在这种情况下,ADAS将需要通知驾驶员,并恢复人为控制。

软件设计标准 

如果通知失效,人类驾驶员可能会注意力不集中,无法避免伤害——就像Uber自动驾驶汽车的情况一样。如果回退失败,系统可能会继续控制,而不是让驾驶员进行干预并避免伤害。

美国汽车工程师协会(SAE)标准J3016将驾驶自动化分为六个等级,从无自动化到全自动。

SAE三级或更高水平的ADAS依靠软件来实现:

  • 从传感器收集数据。 
  • 创建环境模型。
  • 决定如何协助驾驶员或控制车辆。

这些级别的ADAS还能确定传感器是否正常工作、何时向驾驶员发出警报以及何时恢复人工控制。

交通法规

为适应ADAS的发展,交通法规需要进行修改,特别是在责任和隐私方面。每个国家都有自己的交通法规。

北美
在美国,国家公路交通安全管理局提出了一个正式的分类系统,定义了五个级别的自动化。在最低级别,驾驶员必须始终完全控制车辆。在最高级别中,车辆在整个行程中执行所有安全关键功能——驾驶员在任何时候都无需控制车辆。

在州一级,情况各不相同。2011年,内华达州成为第一个批准在公共道路上进行自动驾驶汽车测试的州。如今,有29个州允许测试自动驾驶汽车。在内华达州、佛罗里达州、佐治亚州、西弗吉尼亚州、犹他州、北卡罗来纳州和北达科他州等七个州,如果车辆的人工智能达到SAE 4级或5级,则完全自动驾驶是合法的。

欧洲 
欧洲的一个研究项目——智能车辆的自动驾驶应用与技术——于2014年1月启动。该项目通过根据情况和驾驶员状态动态调整自动驾驶水平,为日常交通开发各种自动驾驶功能。

该项目还涉及可能影响成功引入市场的法律问题。

车辆与道路自动化 (VRA) 是一项由欧盟资助的支持行动。其目的是建立一个专家和利益相关者合作网络,致力于自动驾驶汽车和相关基础设施的部署。

亚太地区 

日本也许是最接近实现自动驾驶汽车的国家。他们在2020年东京奥运会前及时通过了新法规,使自动驾驶交通系统在有限条件下,在奥运村附近全面投入使用。然而,赛事期间发生的一起轻微事故表明,安全方面仍需要改进,自动驾驶汽车尚未准备好用于正常的道路和日常使用。

在中国,自动驾驶立法正在上海和北京等大城市进行。中国的立法相当灵活,政府有更大的权力将所需的变革落实到位。不过也仍需要处理与其他国家相同的复杂问题。

印度 
印度也在考虑自动驾驶,但面临着重大挑战。其中之一就是立法进展缓慢,而且由于基础设施的原因,很难实施预期的规则。

汽车开发人员始终需要合规性工具

可以为车辆开发安全可靠的系统。为了遵守法律法规,汽车开发人员始终需要智能工具,如Klocwork和Helix QAC等静态代码分析器。

软件设计 
系统安全始于功能设计。

这可能包括使用防火墙来保持安全关键型应用(如转向和制动)与非关键型应用之间的隔离。这对于与外界通信的应用程序(如信息娱乐系统)尤为重要。

它还包括减少或限制通信,以及检查和验证任何通信数据。

安全的嵌入代码 
大多数汽车嵌入式软件都是用C或C++编写的。

您可以使用编码标准来确保嵌入代码的安全性。MISRA提供了C和C++的指导原则。AUTOSAR也提供了现代C++的指导原则。

Perforce静态分析工具有效管理自动驾驶汽车的安全问题

在Perforce最新的《汽车软件开发现状报告》中,信息安全(security)已成为汽车开发人员日益关注的问题,超越了对使用安全(safety)的关注,跃居首位。

Klocwork静态应用程序安全测试(SAST)适用于C、C++、C#、Java、JavaScript、Python和Kotlin,可识别软件的安全性、质量和可靠性问题,保护您的软件免受潜在网络安全漏洞的威胁。

适用于C和C++的Perforce Helix QAC,使代码符合MISRA和AUTOSAR等编码标准以及ISO 26262等功能安全标准。

Perforce中国授权合作伙伴——龙智:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从Full-Text Search全文检索到RAG检索增强

从Full-Text Search全文检索到RAG检索增强 时光飞逝,转眼间六年过去了,六年前铁蛋优化单表千万级数据查询性能的场景依然历历在目,铁蛋也从最开始做CRUD转行去了大数据平台开发,混迹包装开源的业务,机缘巧合下做了实时…

LLM PPT Translator

LLM PPT Translator 引言Github 地址UI PreviewTranslated Result Samples 引言 周末开发了1个PowerPoint文档翻译工具,上传PowerPoint文档,指定想翻译的目标语言,通过LLM的能力将文档翻译成目标语言的文档。 Github 地址 https://github.…

【踩坑】git中文乱码问题

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 背景说明 使用git diff显示中文乱码,如: 修复方法 执行一次: export LESSCHARSETutf-8 如果需要下次登录免输入…

安装Docker报错TCP connection reset by peer或者Timeout

原因:访问的外网下载导致超时或者断连接报错 修改为国内阿里下载地址 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

Linux宝塔部署wordpress网站更换服务器IP后无法访问管理后台和打开网站页面显示错乱

一、背景: wordpress网站搬家,更换服务器IP后,如果没有域名时,使用服务器IP地址无法访问管理后台和打开网站页面显示错乱。 二、解决方法如下: 1.wordpress搬家后,在新服务器上,新建站点时&am…

Rust Newtype模式(通过结构体封装现有类型来创建新的类型)(单字段结构体,通过.0访问)模式匹配、解构、DerefMut

文章目录 深入理解Rust中的Newtype模式什么是Newtype模式?Newtype模式的基本形式Newtype的访问访问 Newtype 的值1. 通过 .0 访问字段2. 通过方法访问3. 通过模式匹配(解构)访问 总结 Newtype模式的应用场景1. 类型安全2. 增强可读性3. 定制化…

【ArcGIS Pro】实现一下完美的坐标点标注

在CAD里利用湘源可以很快点出一个完美的坐标点标注。 但是在ArcGIS Pro中要实现这个效果却并不容易。 虽然有点标题党,这里就尽量在ArcGIS Pro中实现一下。 01 标注实现方法 首先是准备工作,准备一个点要素图层,包含xy坐标字段。 在地图框…

【ArcGIS Pro实操第10期】统计某个shp文件中不同区域内的站点数

统计某个shp文件中不同区域内的站点数 方法 1:使用“空间连接 (Spatial Join)”工具方法 2:使用“点计数 (Point Count)”工具方法 3:通过“选择 (Select by Location)”统计方法 4:通过“Python 脚本 (ArcPy)”实现参考 在 ArcGI…

学习threejs,使用设置lightMap光照贴图创建阴影效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshLambertMaterial…

Cocos编辑器

1、下载 下载地址:https://www.cocos.com/creator-download 2、编辑器界面介绍 官方链接:https://docs.cocos.com/creator/3.8/manual/zh/editor/ 3、项目结构 官方链接:https://docs.cocos.com/creator/3.8/manual/zh/getting-started/…

C++11特性(详解)

目录 1.C11简介 2.列表初始化 3.声明 1.auto 2.decltype 3.nullptr 4.范围for循环 5.智能指针 6.STL的一些变化 7.右值引用和移动语义 1.左值引用和右值引用 2.左值引用和右值引用的比较 3.右值引用的使用场景和意义 4.右值引用引用左值及其一些更深入的使用场景分…

Notepad++ 替换所有数字给数字加单引号

前言 今天遇到这样一个场景: 要去更新某张表里 code1,2,3,4,5,6 的数据,把它的 name 设置为 ‘张三’ 但是 code在数据库里面的字段类型是 vachar(64),它自身携带索引 原本可以这样写 SQL: update tableA set namezhangsan where code in …

Django 路由层

1. 路由基础概念 URLconf (URL 配置):Django 的路由系统是基于 urls.py 文件定义的。路径匹配:通过模式匹配 URL,并将请求传递给对应的视图处理函数。命名路由:每个路由可以定义一个名称,用于反向解析。 2. 基本路由配…

工作中可以用到的前端小知识(不定时更新)

1、split 结合 filter(Boolean)使用,可以过滤空字符 2、分割 Unicode 字符 用 Array.from() 实现 const text "👍😊👨‍👩‍👦"; const result Array.from(text); console.log(result); // 输…

第R4周:LSTM-火灾温度预测(TensorFlow版)

>- **🍨 本文为[🔗365天深度学习训练营]中的学习记录博客** >- **🍖 原作者:[K同学啊]** 往期文章可查阅: 深度学习总结 任务说明:数据集中提供了火灾温度(Tem1)、一氧化碳浓度…

CTF-Hub SQL 报错注入(纯手动注入)

​ 当输入1时,发现只有查询正确,基本上可以判断出没有回显 开始注入(工具hackerBar) 题目是报错注入,方向就比较明显,大致说一下用到的函数和原理。 常见报错注入函数: 通过 floor() 报错注入通过 extractValue() …

创建HTTPS网站

每天,我们都会听到网络上发生身份盗窃和数据侵权的案例,这导致用户对自己访问的网站更加怀疑。他们开始更加了解自己将个人信息放在哪里以及信任哪些类型的网站。了解如何使网站使用HTTPS变得比以往任何时候都更加重要。 解读缩略词:HTTP与HT…

计算(a+b)/c的值

计算(ab)/c的值 C语言代码C语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 给定3个整数a、b、c,计算表达式(ab)/c的值,/是整除运算。 输入 输入仅一行&…

Flink Sink的使用

经过一系列Transformation转换操作后,最后一定要调用Sink操作,才会形成一个完整的DataFlow拓扑。只有调用了Sink操作,才会产生最终的计算结果,这些数据可以写入到的文件、输出到指定的网络端口、消息中间件、外部的文件系统或者是…

Java【多线程】(1)进程与线程

目录 1.前言 2.正文 2.1什么是进程 2.2PCB(进程控制块) 2.2.1进程id 2.2.2内存指针 2.2.3文件描述符表 2.2.4进程状态 2.2.4.1就绪状态 2.2.4.2阻塞状态 2.2.5进程优先级 2.2.6进程上下文 2.2.7进程的记账信息 2.3CPU操作进程的方法 2.4什…