当前位置: 首页 > news >正文

Parasoft C/C++test:汽车网络安全ISO 21434最佳实践

为什么汽车网络安全很重要Why Automotive Cybersecurity Is Important

许多汽车公司向电子道路车辆的转变从根本上改变了整个行业,提高了汽车的互联性和智能性。随着电子汽车变得更加互联和智能,它们也越来越依赖软件来实现车辆操作,驱动更多的特性和功能来提升驾驶体验。

道路车辆中越多的特性和功能导致了更多的复杂性和代码。一辆标准电动汽车运行超过1亿行的代码,这也意味着会面临更多的问题。目标的主要攻击载体之一是电子控制单元(ECU),它为车辆子系统的操作、监控和配置提供重要的通信和基本功能。保护道路车辆免受网络安全威胁比以往任何时候都更加重要。

什么是电子控制单元(ECU)?

ECU是微处理器控制的设备,可以提供各种车辆基本功能,包括以下功能:

  • 发动机和动力转向

  • 燃油喷射

  • 电动车窗和座椅等舒适性方面

  • 温度控制

  • 无钥匙进入和门锁等安全功能

ECU可能成为网络攻击目标

有足够的研究和漏洞利用的证据证明ECU是如何被逆向工程和破坏的。其中包括2015年的吉普黑客攻击、2016年、2017年的特斯拉黑客攻击、2018年的宝马黑客攻击等案例。在这些例子中,ECU都被成功地锁定并破坏,使攻击者能够重新编程并改变车辆功能的行为。

有研究人员对来自不同制造商和供应商的40多个ECU进行了研究。他们分析发现,ECU硬件和软件中都存在300多个漏洞,所有高风险漏洞都存在于软件中。

安全设计尤为重要

从一开始就建立安全是新的汽车网络安全标准ISO 21434的首要目标。ECU中存在各种漏洞表明了网络安全的严重性及其对安全的影响,该标准试图通过直接影响道路车辆部件设计和开发的要求和建议来解决这些问题。

ISO 21434旨在将高质量的安全和网络安全措施贯穿于整个产品工程生命周期,鼓励与系统工程V型模型保持一致,以指导车辆制造商和供应商遵循网络安全的良好架构设计要求,从而保护道路车辆功能的可信度、完整性、可用性和真实性。ISO 21434这就要求将软件验证和确认作为产品测试的一部分。

图片

ISO 21434要求开展软件验证活动

软件测试在帮助制造商和供应商满足ISO 21434中列出的要求和建议方面发挥着关键作用。作为软件验证活动的一部分,将静态代码分析正式化是一种理想的方法,可以用来识别和消除代码中的歧义,并找出可能暴露ECU组件中使用的软件漏洞的薄弱环节。这有助于最大限度地减少攻击者可以利用的攻击面,从而破坏控制关键车辆操作的ECU。

具体而言,ISO 21434在第10.4节“要求和建议”中引用并要求进行静态分析。

第10.4.1节设计

图片

强制执行强类型、使用语言子集和实现防御性实现技术都是ISO 21434中规定的要求。使用Parasoft MISRA C和CERT C检查程序和规则使安全编码合规实践正式化,将有助于制造商和供应商遵守ISO 21434的要求和建议,以降低软件和设计中的潜在风险。

采用网络安全和安全编码实践来支持软件验证和确认是一种最佳实践,也是确认ISO 21434中概述的网络安全规范的关键。使用Parasoft C/C++代码分析功能可以简化与关键安全软件相关的软件测试的严格性。

Parasoft C/C++test实现软件测试自动化非常简单,它采用集成方法,将静态分析、代码覆盖率、单元测试、需求可追溯性和报告分析结合在一起,以简化ISO 21434合规性要求。

第10.4.2节集成和验证

图片

ISO 21434第10.4.2节提供了软件验证方法列表,使用Parasoft的C/C++代码分析功能可以满足的这些要求。使用数据流分析可以检测到许多安全漏洞。Parasoft的C/C++代码分析引擎可以为产品工程团队提供有深度的流分析,如使用后释放、双重释放和缓冲区溢出。

Parasoft:汽车网络安全之路

Parasoft的C/C++集成自动化测试解决方案是您SDLC和产品工程领域的最佳解决方案。Parasoft在嵌入式软件市场拥有丰富的经验和专业知识,可帮助您满足安全和网络安全合规需求。

图片

软件测试自动化工具、分析、人工智能和报告的独特组合从一开始就提供了对质量和安全问题的可见性。这使产品工程师团队能够根据市场要求的标准和最佳实践加速软件验证。

相关文章:

Parasoft C/C++test:汽车网络安全ISO 21434最佳实践

为什么汽车网络安全很重要Why Automotive Cybersecurity Is Important 许多汽车公司向电子道路车辆的转变从根本上改变了整个行业,提高了汽车的互联性和智能性。随着电子汽车变得更加互联和智能,它们也越来越依赖软件来实现车辆操作,驱动更多…...

如何卸载干净 IDEA(图文讲解)windows和Mac教程

大家好,我是sun~ 很多小伙伴会问 Windows / Mac 系统上要怎么彻底卸载 IDEA 呢? 本文通过图片文字,详细讲解具体步骤: 如何卸载干净 IDEA(图文讲解) Windows1、卸载 IDEA 程序2、注册表清理3、残留清理 M…...

Docker搭建Gitlab

拉取镜像:docker pull gitlab/gitlab-ce创建映射目录: mkdir -p /usr/local/gitlab/config mkdir -p /usr/local/gitlab/data mkdir -p /usr/local/gitlab/logs运行容器: docker run -d -p 443:443 -p 8000:8000 -p 222:22 --name gitlab …...

STM32F4X SDIO(四) SDIO控制器

STM32F4X SDIO(四) SDIO控制器 STM32F4X SDIO控制器SDIO控制器框图SDIO控制器时钟适配器寄存器FIFO控制单元命令路径数据路径 SDIO寄存器SDIO控制相关寄存器SDIO电源控制寄存器 (SDIO_POWER)SDIO时钟控制寄存器 (SDIO_CLKCR)SDIO_CK相位 SDIO命令响应相关…...

【flink】Task 故障恢复详解以及各重启策略适用场景说明

文章目录 一. 重启策略种类(Restart Strategies)1. Fixed Delay Restart Strategy2. Failure Rate Restart Strategy3. Fallback Restart Strategy4. No Restart Strategy 二. 故障恢复策略(Failover Strategies)1. (全…...

一个计算机高手的成长3

这是转在茶余的帖子。文中绝大部分技术术语我不懂,所以无资格评论他的技术价值。但文章强烈的逻辑说服力,和通篇流露的进取精神,使我觉得这是篇有价值的帖子,至少值得一读。 就像我开始从MIS转到通信一样,我看过大量通…...

2023应届生能力考试含解析(Java后端开发)——(1)

1.以下代码的循环次数是 ( ) public class Test {public static void main(String[] args) {int i 7;do {System.out.println(--i);--i;} while (i ! 0);System.out.println(i);} } A 0 B 1 C 7 D 无限次 这段代码会导致无限循环的原因是在 do-while 循环中&#…...

Ansible中的任务执行控制

循环 简单循环 {{item}} 迭代变量名称 loop: - value1 - value2 - ... //赋值列表{{item}} //迭代变量名称循环散列或字典列表 - name: create filehosts: host1tasks:- name: file moudleservice:name: "{{ item.name }}"state: "{{…...

利用maven的dependency插件分析工程的依赖

dependency:analyze https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html 分析项目的依赖,确定哪些:用了并且声明了、用了但没有声明、没有使用但声明了。 dependency:analyze可以单独使用,所以它总是会执行test-…...

【广州华锐互动】VR野外求生技能学习,让你感受真实的冒险之旅!

随着科技的迅速发展,虚拟现实(VR)技术为人们提供了一个全新的、身临其境的探险体验。通过将用户带入一个仿真的、沉浸式的虚拟环境,VR互动体验让人们在安全的氛围中感受到野外探险的乐趣。本文将从视觉呈现、沉浸式体验、交互性和应用范围四个方面&#…...

k8s、调度约束

Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦 用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。 APIS…...

Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍

目录 一. Redis简介 二. Redis的安装 2.1 Linux版安装 2.2 windows版安装 三. Redis的常用命令 一. Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。 它…...

电子器件 MOS管的参数、选型与使用技巧

一、电路符号 MOS管分为 G(栅极)、S(源极)、D(漏极) 三极,在图中 S 极有两条线,D 极只有一条线。 1.1 NMOS 和 PMOS 下图中,左侧是 PMOS,右侧是 NMOS。箭头…...

EtherCAT主站SOEM -- 2 -- SOEM之ethercatbase.h/c文件解析

EtherCAT主站SOEM -- 2 -- SOEM之ethercatbase.h/c文件解析 一 ethercatbase.h/c文件功能预览:二 ethercatbase.h/c 文件的主要函数的作用:2.1 ecx_writedatagramdata:2.2 ecx_setupdatagram:2.3 ecx_adddatagram:2.4 …...

Spring集成高性能队列Disruptor

Disruptor简介 Disruptor(中文翻译为“破坏者”或“颠覆者”)是一种高性能、低延迟的并发编程框架,最初由LMAX Exchange开发。它的主要目标是解决在金融交易系统等需要高吞吐量和低延迟的应用中的并发问题。 Disruptor特点 无锁并发&#x…...

C++——类和对象(中)完结

赋值运算符重载 运算符重载 C 为了增强代码的可读性引入了运算符重载 , 运算符重载是具有特殊函数名的函数 ,也具有其 返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。 函数名字为:关键…...

Sqoop的安装和使用

目录 一.安装 二.导入 1.全量导入 一.MySQL导入HDFS 二.MySQL导入Hive 2.增量导入 一.过滤导入hdfs/hive 二.导出 一.安装 1.下载地址:sqoop下载地址 2.解压 tar -zxvf ./sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ../module/ 3.改名和配置归属权限 #改名…...

java毕业设计基于springboot+vue的村委会管理系统

项目介绍 采用JAVA语言,结合SpringBoot框架与Vue框架以及MYSQL数据库设计并实现的。本村委会管理系统主要包括个人中心、村民管理、村委会管理、村民信息管理、土地变更管理、农业补贴管理、党员信息管理等多个模块。它帮助村委会管理实现了信息化、网络化&#xf…...

【C++】多态 ⑪ ( 纯虚函数和抽象类 | 纯虚函数语法 | 抽象类和实现 | 代码示例 )

文章目录 一、纯虚函数和抽象类1、纯虚函数2、纯虚函数语法3、抽象类和实现 二、完整代码示例 一、纯虚函数和抽象类 1、纯虚函数 纯虚函数 : 在 C 语言中 , " 纯虚函数 " 是 特殊类型的 虚函数 , " 纯虚函数 " 在 父类 中 声明 , 但是没有实现 ; 抽象类 …...

node 第十四天 基于express的第三方中间件multer node后端处理用户上传文件

Multer 是一个 node.js 中间件,用于处理multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上的所以非常高效。前面我们已经知道了怎样利用express提供的静态资源处理中间件express.static()处理用户请求静态资源文件(图片, js…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

Unity中的transform.up

2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...

高保真组件库:开关

一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...