网络安全数字孪生:一种新颖的汽车软件解决方案

news/2024/5/8 13:55:17

摘要

      随着汽车行业转变为数据驱动的业务,软件在车辆的开发和维护中发挥了核心作用。随着软件数量的增加,相应的网络安全风险、责任和监管也随之增加,传统方法变得不再适用于这类任务。相应的结果是整车厂和供应商都在努力应对汽车软件日益增加的风险。

      一种解决这一问题的新方法被提出了——为ECU软件构建一个数字孪生副本,以持续监测其处在网络安全风险环境下中的情况。使用这种方法,供应商可以充分了解网络安全风险,同时既可以用于运营中的车队,也可以用于仍处于预生产阶段的车辆。

数字孪生

      制造业数字化程度的提高带来数字孪生的引入。在工业4.0环境中,孪生是物理对象或过程的实时虚拟副本。利用仿真软件,孪生可以优化原始副本的使用方法和整体商业价值,这是通过预测未来行为并提出最佳行动方案来实现的。例如,对真实涡轮机的模拟用于在现实世界中实际发生之前主动识别问题,这使系统所有者能够提前预测故障并消除风险。

  • 车辆软件中的数字孪生

      模拟汽车软件,更具体地说是ECU固件,可能是一项艰巨的任务。汽车子系统在复杂性和架构上有很大的不同。业界使用的CPU架构、操作系统、框架和风格多种多样。

      然而,这样的数字孪生可能会带来许多好处。这种技术可用于测试新功能、提高性能和诊断软件问题。更重要的是,它将允许整车厂和一级供应商尝试全新的软件概念或汽车网络架构,并了解其整体影响——无论是功能、性能还是网络安全态势。

  • 利用数字孪生实现持续风险评估

      一种这样的新方法被提出了,新的虚拟化和网络安全分析技术组成了一种新的数字孪生形式——网络安全数字孪生。这些虚拟构建与车辆组件完全相同,与在道路上和开发中的车辆所使用的相同步。这些新资产为广泛的风险分析提供了基础,而这些分析曾经需要由专门团队进行完整的网络安全审计。这种分析是在数字孪生上执行的——一种复制并模拟原始ECU固件的解决方案,通过主动扫描来预先识别网络风险,如漏洞和其他缺陷。

      网络安全数字孪生是用于持续风险监测的原始组件的虚拟模拟。此外,这种新形式的数字孪生还实现了全新的功能,具有传统风险评估方法无法实现的优势。

使用Cybellum V-Ray®构建网络安全数字孪生

      作为汽车网络安全软件领域的创新者,Cybellum已经将这种应对网络安全挑战的新方法产品化——为汽车软件风险评估提供数字孪生模型。

      首先,汽车软件镜像——无论是ECU或MCU固件,移动应用程序、电子钥匙固件,都由Cybellum系统扫描。Cybellum解决方案的核心是一个名为V-Ray的独特风险分析引擎。它被设计为一个可扩展的框架,用于自动对汽车部件进行静态和动态分析。

      接着,V-Ray解码二进制图像并将内容映射到一个连贯的软件物料清单(SBOM),它还映射操作系统、引导映像、接口、驱动程序、文件系统结构和完整的软件堆栈映射。

      然后使用镜像中的底层应用程序二进制文件创建原始软件的虚拟运行镜像。从这个镜像动态解析机器级代码路径,以及数据流、硬件接口、系统配置、引导时间认证、加密设置和组件的许多其他特征和参数。

      虚拟组件副本本质上是原始组件的数字孪生。所有这些都发生在V-Ray解决方案中,该解决方案是一个高度灵活的100%纯软件解决方案。V-Ray不需要ECU硬件本身来执行其评估,这减少了对专有硬件的需求。因为在预生产阶段,由于可用性有限,通常很难获得专有硬件。

Cybellum V-Monitor®一种网络安全数字孪生

      一旦原始组件成为虚拟化的数字孪生,就可以独立于原始组件及其软件开发进度外执行风险评估。

      这些评估是全面且持续的,为整个风险态势提供了清晰、始终更新的视图,评估确定每个特定软件修订版本的最新风险。              

      Cybellum V-Monitor®解决方案通过重复监测数字孪生副本来提供持续更新的风险评估。在持续运行的过程中,所有的孪生副本版本都由专门的扫描仪监控和分析,将以前的发现与新发布的威胁进行比较。此外,还可以监控整辆车甚至整个车队的软件组件。这有助于将威胁情报和漏洞馈送转化为整个车队层面的有实践意义的理解和影响评估。

总结

     汽车软件的数字孪生为整个汽车生命周期的汽车软件提供了一种新的方法。软件孪生技术可以帮助整车厂和供应商优化和验证他们的设计,它还有助于改善现有车辆在道路上的运行。

      更具体地说,软件孪生技术为ECU固件的网络安全提供了巨大的好处。有了这项技术,无论是处于开发阶段的车辆,还是运营中的车队,都可以迅速识别、评估和补救风险。Cybellum的安全套件就是这样一个网络安全数字孪生解决方案,用于为汽车行业创建和监控此类孪生,迎合整车厂、供应商等厂商的需求。

      经纬恒润作为Cybellum在中国的代理商,旨在借助产品安全平台以及服务,提供汽车信息安全解决方案,帮助国内汽车OEM及其供应商能够在汽车软件开发全生命周期内大规模评估和降低安全风险,保证产品安全。

      了解更多:请致电 010-64840808转6115或发邮件至market_dept@hirain.com(联系时请说明来自CSDN)


http://www.mrgr.cn/p/87087031

相关文章

CarrierConfig 加载流程和配置覆盖问题

问题 有的MVNO卡没有配置过 CarrierConfig及相关 overlay,但是实际运行的时候功能被override了 ,此时可能是因为CarrierConfig用了父类(同MCCMNC等情况)的配置,因此在直接查找对应卡cid或mccmnc+mvno属性时候的CarrierConfig是没办法找到影响功能的配置项的。 代码逻辑 …

力扣-LCR 126. 斐波那契数

1.题目 题目地址(LCR 126. 斐波那契数 - 力扣(LeetCode)) https://leetcode.cn/problems/fei-bo-na-qi-shu-lie-lcof/ 题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) …

qml 下拉框图片的代码,不是ComBox

// 导入 QtQuick 2.2 模块 import QtQuick 2.2// 定义一个 Rectangle 组件,作为下拉菜单的容器 Rectangle {id: dropdown // 下拉菜单的 IDx: 0 // x 坐标y: 0 // y 坐标z: 0 // z 坐标width: 458 // 宽度height: 60 // 高度radius: 8 // 圆角半径color: "tran…

力扣HOT100 - 200. 岛屿数量

解题思路: 岛屿题目一般使用dfs。 1.判断是否越界 2.用0,1,2三个状态标识当前格子的状态(三个状态比两个状态更清晰) 3.向周围四个方向遍历 class Solution {public int numIslands(char[][] grid) {int cnt 0;fo…

R语言银行信用数据SOM神经网络聚类实现可视化

原文链接:http://tecdat.cn/?p=3231 原文出处:拓端数据部落公众号当今社会,“信用”越来越多的人们关注个人或企业,有望获得最高的信用评分,以享受更多的信贷额度,更优惠的利率。 那么我们如何评分信用,并使我们的客户可视化? 自组织地图( SOM )是一种无监督的数据可…

2024年大数据应用、智能控制与软件工程国际会议(BDAICSE2024)

2024年大数据应用、智能控制与软件工程国际会议(BDAICSE2024) 会议简介 我们诚挚邀请您参加2024年大数据应用、智能控制和软件工程国际会议(BDAICSE2024)。这次会议将在美丽的长沙市举行。 本次大会旨在汇聚全球大数据应用、智能控制、软件工程等领…

PostgreSql-Install

PostgreSql源码安装 一、源代码下载二、操作系统配置三、编译安装四、启动数据库五、相关命令 PostgreSQL是一个强大的 开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。 一、源…

第四章:Total Store Order and the x86 Memory Model

chapter4:TSO于X86内存模型 1、为什么需要TSO/x86 处理器内核长期以来使用write buffer来保存已提交的store指令,直到内存系统可以处理这些store请求。当store指令提交时,store请求进入write buffer,而当需要写入的缓存行在内存系统中可以保证缓存一致性时,store请求就退出…

1-内核开发环境ubuntu+virtualbox+mobaXterm搭建

内核开发环境 ubuntuvirtualboxmobaXterm搭建 目录 内核开发环境 ubuntuvirtualboxmobaXterm搭建 1.virtualbox 安装 2.ubuntu 安装 3.网络设置 4.虚拟机安装ssh 服务,更新ubuntu 源安装基本软件 5.mobaXterm 个人免费版本安装 6.总结 本课程教程从0-1开始教…

循环队列的程序接口

循环队列的程序接口 目录循环队列的程序接口队列的说明队列循环队列入队、出队头文件创建队空、队满的判断入队出队验证 队列的说明 队列循环队列入队、出队头文件 /********************************************************************* file name: 循环队列的接口* author…

notepad++ 安装compare文件对比插件失败解决办法

1.首先notepad++ 安装compare方法: 在菜单栏点击“插件”》插件管理 搜索:compare 点击YES 因为国内网络原因,可能会安装失败,也可能安装比较久。 2.自己解压安装:下载解压包: 链接:https://pan.baidu.com/s/1B8hZJCJ8PLZgwdYzQeWGpQ提取码:7n2s点击打开插件目录: 目…

mybatisplus乐观锁(单个任务)

乐观锁:在关系数据库管理系统里,乐观并发控制(又名“乐观锁”,Optimistic Concurrency Control,缩写“OCC”)是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。在提交数据更新之前,每个事…

dotnet 8 版本与银河麒麟V10和UOS系统的 glib 兼容性

刚刚好 dotnet 8 的 glib 版本足够旧,可以运行本文记录于 2024.04.26 如果你阅读本文时间距离本文记录时间过远,可能本文记录的信息已失效 dotnet 根据 dotnet 的 supported-os 文档记录,当前的 dotnet 8 是 8.0.4 版本,官方说明是支持 Debian 11 及以上版本 实际测试可以在…

dotnet C# 简单的追加文件夹到 ZipArchive 压缩文件的方法

本文将告诉大家一个在 ZipArchive 里追加文件夹,以及添加过滤文件处理的压缩文件辅助方法实现的方法的代码如下/// <summary>/// 追加文件夹到压缩文件里面/// </summary>/// <param name="archive"></param>/// <param name="sour…

postgresql中视图建立,字段拼接,同一个表的多行之间的多个字段相减

首先表是这样的 CREATE TABLE public.tb_realtime_data (s_id varchar(48) NOT NULL,sensor_name varchar(48) NULL,sensor_index_code varchar(48) NULL,sensor_value numeric(20,10) NULL,statistics_status int4 NULL,alarm_time timestamp NOT NULL,create_time timestamp …

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数1.1 什么是构造函数1.2 构造函数的特性1.3 总结 二&#xff0c;析构函数2.1 什么是析构函数2.2 析构函数的特性2.3 总结 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何…

【线性代数 C++】求逆矩阵

对于 n n n阶矩阵 A A A&#xff0c;如果有 n n n阶矩阵 B B B&#xff0c;使 A B B A E ABBAE ABBAE&#xff0c;则说 A A A是可逆的&#xff0c;并把 B B B称为 A A A的逆矩阵. A A A的逆矩阵记作 A − 1 A^{-1} A−1&#xff0c;则 B A − 1 BA^{-1} BA−1.若 ∣ A ∣ ≠…

“一个有趣的C语言代码”分析

“一个有趣的C语言代码” 一个有趣的C语言代码-流浪的海豚-ChinaUnix博客 #include <stdio.h> int print() {printf("hello world!\n");return 0; } int main(void) {long base[0];long* result base3;*(result1) *result;*result (long)print;return 0; …

【韩国】UE5的MetaHuman确实可以导入Blender进行编辑。

UE5的MetaHuman确实可以导入Blender进行编辑。根据网络上的信息&#xff0c;你可以将MetaHuman模型导出为FBX文件&#xff0c;然后在Blender中进行修改。修改完成后&#xff0c;你可以将其重新导入到Unreal Engine 5中4。请注意&#xff0c;当你在Blender中编辑模型时&#xff…

SQLAlchemy中filter()和filter_by()有什么区别

1.filter用类名.属性名,比较用==,filter_by直接用属性名,比较用= 2.filter不支持组合查询,只能连续调用filter来变相实现。 session.query(Dashboard) .filter(Dashboard.id.in_(dashboard_ids_int)).all() dashboard = ( db.session.query(Dashboard) .filter_by(id=dashb…