智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》

引言

大家都很熟悉OWASP Top 10风险报告,这个报告不但总结了Web应用程序最可能、最常见、最危险的10大安全隐患,还包括了如何消除这些隐患的建议,这个“OWASP Top 10“差不多每隔三年更新一次。目前汽车网络安全攻击威胁隐患繁多,某知名电动汽车厂商安全总监结合实际经验,在他的新书《智能汽车网络安全权威指南》中归纳总结了智能汽车10大攻击场景,以及每个场景的攻击手段和防御方法。

在20世纪50年代,汽车电子成本仅占汽车总成本的1%。然而,随着车联网技术的进步,目前汽车电子成本已经增加到了35%。预计到2030年,这一数字还将继续上升至50%。随着软件定义汽车时代的到来,汽车网络安全攻击面变得非常广泛,主要分布在10个主要模块,也被称为十大易受攻击威胁模块。这些模块包括信息娱乐系统(IVI)、车载网联通讯终端(T-BOX)、车载网关(Gateway)、统一诊断服务(Unified Diagnostic Services,UDS)、车载诊断(On-board diagnostics,OBD)、高级辅助驾驶系统(ADAS)、车载信息服务(TSP)、充电网络系统(Charging System)、汽车远程升级(Over-The-Air,OTA)以及手机端车联网应用程序(App),如图1所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图1 车联网重点模块图

场景1:车载信息娱乐系统

车载信息娱乐系统(In-Vehicle Infotainment,IVI)指的是结合了向用户提供娱乐信息的车载系统。IVI系统使用音频/视频(A/V)接口、触摸屏、键盘和其他类型的设备来提供这些服务。车载信息娱乐系统通常具备一部分CAN总线操控能力,因此通过攻击车载信息娱乐系统可能会导致远程控制车辆。

2018年,Computest的研究人员Thijs Alkemade和Daan Keuper发现了某汽车品牌的IVI漏洞。在某些情况下,该漏洞可能允许黑客控制关键功能,这些功能包括打开和关闭汽车的麦克风,使用麦克风来收听驾驶员的谈话,以及获得对谈话历史和汽车通讯录的访问权限。最重要的是,研究人员表示,攻击者还可以通过其导航系统跟踪汽车。

IVI系统是最容易遭受到攻击的模块,一般IVI系统采用安卓系统,因此安卓系统的安全风险,在IVI上可能都会出现,如图2所示,这是IVI主要攻击面(非详尽)。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图2 IVI遭受的攻击

场景2:车载网联通讯终端

车载网联通讯终端,即T-BOX,对内与车载CAN总线相连,对外通过云平台与手机端实现互联,是车内外信息交互的纽带,实现指令和信息的传递。T-BOX的结构简单示意如图3所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图3 T-BOX的结构示意图

为了研究方便,一般我们会从车上把T-BOX拆下来,这就需要知道T-BOX在车上的位置。T-Box的安装位置因制造商而异,但一般的T-Box安装位置在仪表板内侧、油门踏板旁边、主/副驾驶座椅下方、汽车中控台内侧、手套箱内部,齿轮盖内部等。如图4所示,这是T-Box在主/副驾驶座椅下方的安装位置。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图4 T-box主/副驾驶座下方安装位置

由于T-Box的安装位置不固定,拆卸应由专业修车的人员负责,所以搞汽车网络安全的团队最好有懂修车的,例如基于S32K148的T-BOX开发板如图5所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图5 基于S32K148的T-BOX开发板

T-BOX作为车辆中的接入点,是车内最核心的模块。T-BOX常见功能包括远程控制、远程诊断、OTA、高精定位、近场控制、V2X等,T-BOX系统一般采用Linux系统,因此Linux系统的安全风险,T-BOX都具备,以下是T-BOX主要攻击面(非详尽)。

表1 T-BOX安全风险

风险分类

风险项

通讯风险

远程通讯:中间人攻击、数据监听、篡改、否认

中程通讯:中间人攻击、数据监听、篡改、否认(包括蓝牙、Wi-Fi)

CAN通讯:数据监听、篡改、否认

I2C/SPI/UART等串型总线数据监听

隐私风险

私钥提取、日志泄漏、定位数据等敏感信息泄漏

系统风险

提权、反弹Shell、缓冲区溢出等

固件风险

固件提取、固件逆向、固件篡改等

场景3:车载网关

汽车网关是一个中央枢纽,可在车辆中的许多不同网络之间安全可靠地互连和传输数据,汽车网关的核心功能是在车内安全可靠地传输数据,车辆中可能存在多个网关,它们可以是集中式网关和多个域网关。集中式网关在远程信息处理控制单元(TCU)、动力总成、车身、信息娱乐系统、智能座舱和高级辅助驾驶应用程序等域之间安全可靠地传输数据。域网关(或域控制器)具有类似的功能,实现各自域内ECU的相互通信。与域网关相比,集中式网关通常需要更高的处理性能、接口和更高带宽的网络协议。图6说明了如何在车辆中实现这两种类型的网关。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图6 车辆网关类型

网关作为汽车网络系统的核心控制装置,主要功能是在车载网络和各种电子控制单元之间提供无缝通信,通过不同网络间的物理隔离和不同通信协议间的转换,在各个共享通信数据的功能域(动力总成域、底盘和安全域、车身控制域、信息娱乐域、远程信息处理域、ADAS域)之间进行信息交互。表2提供了网关关键功能的摘要(非详尽列表)。

表2 网关关键功能

网关功能

描述

协议转换

将数据和控制信息转换为不兼容的网络,以实现它们之间的通信

数据路由

在节点上路由数据以到达其预期目的地,它可能位于需要协议转换的不同网络上

诊断路由

外部诊断设备和ECU之间的诊断消息路由,可能涉及DolP和ECU等诊断协议之间的转换

防火墙

基于规则过滤入站和出站网络流量,禁止来自未经授权的源的数据传输,高级防火墙可能包括上下文感知过滤

消息镜像

从接收到的接口捕获数据,以通过另一接口传输,用于诊断或数据记录(存储)

入侵检测

监控网络流量是否存在可能表示入侵的异常

网络管理

管理网络和连接到网络的ECU的状态和配置,并支持诊断

密钥管理

安全处理和存储网络密钥和证书

OTA管理

管理车辆内通过网关访问的ECU,远程OTA固件更新

网关也是智能汽车最可能成为网络攻击的目标,网关一般是RTOS系统,能够弄清楚他的指令集是关键,网关的主要攻击面(非详尽),如表3所示。

表3 网关的攻击面

攻击入口

攻击位置

攻击结果

  

OBD-II

  

内部

CAN总线注入

访问权限

控制制动器

警示灯和安全气囊

 

USB

 

内部

USB升级

ADB调试接口

 

蓝牙

 

外部

车辆钥匙

车辆启动

 

Wi-Fi

 

外部

未授权访问

注入CAN信息

 

传感器

 

内部

激光雷达干扰

摄像头欺骗

TPSM欺骗

OTA升级

内部

签名绕过

场景4:汽车远程升级

汽车远程升级(Over the Air Technology,OTA)是指替代本地连接方式,通过无线传输方式进行软件下载和软件更新的过程,更新的速度和安全性至关重要。OTA是实现软件定义汽车的必备基础,是智能网联汽车系统及其应用的唯一远程升级通道。作为安全的最后一道防线,OTA常见类型包括SOTA、FOTA,实现对动力域、底盘域、辅助驾驶域、信息娱乐域和车身域在内的重大功能更新。

  •     FOTA:Firmware OTA,固件升级,面向车端上的固件升级
  •     SOTA:Software OTA,应用软件升级,面向车载端上应用软件升级。

通过OTA能够为车端添加新功能、修复漏洞等,传统更新汽车软件的做法是到4S店通过UDS对相应的ECU进行软件升级,通过USB等接口对信息娱乐系统进行升级。伴随着智能汽车的发展,本地升级已不再适应高速变化的车载生态,OTA流程如图7所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图7 OTA流程图

OTA主要分为云端和车端,云端包括SBOM管理、任务调度、打包升级、软件分发、升级审批、升级通知、升级日志、升级包上传、版本控制、升级监控与统计等。车端包括定时检查更新、手动检查更新、安全下载、断点续传、订阅升级消息、升级包签名验证、ECU刷写、升级日志上报等。可以看出OTA的难点在于保证安全和传输效率,以下是OTA攻击面,如图8所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图8 OTA攻击面示意图

场景5:车载信息服务

车载信息服务(TelematicsServiceProvider,TSP)在车联网系统中以云的形式向用户侧与车辆侧提供以下服务:用户信息维护、车辆定位、状态监控等。TSP功能如图9所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图9 TSP功能示意图

TSP是重要的车联网云服务,一般云服务存在的安全风险,TSP同样存在,可以参考OWASP Top 10。云端主要靠提供应用程序编程接口(API)与其他端进行通信,API位于应用程序之间或者充当处理系统之间数据传输的中间层,它提供了一个简单而高效的接口,用于扩展功能和改善联网汽车体验。API安全不是汽车网络安全独有的,更多API安全可以参考OWASP API安全十大漏洞,如表4所示。

表4 OWASP API安全十大漏洞

API 1:损坏的对象级授权

API 6:批量分配

API 2:认证失败

API 7:安全配置错误

API 3:过度数据暴露

API 8:注入

API 4:缺乏资源和速率限制

API 9:资产管理不当

API 5:损坏的功能级别身份验证

API  10:记录和监控不足

场景6:车载诊断

车载诊断(On-Board Diagnostics,OBD)系统是一台计算机,负责通过一系列传感器监控汽车的状态,在典型的乘用车中,可以在汽车驾驶员侧的仪表板下方找到OBD-II端口,根据车辆类型,端口可能具有16针、6针或9针,如图10所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图10 车辆中的OBD-II端口

OBD包含OBD-I和OBD-II,OBD-I是自1991年起适用于为加利福尼亚制造的车辆的车载诊断标准,以控制该州的车辆排放,所有在该地区销售的汽车都必须配备OBD-I以检测发动机问题并报告故障代码。OBD-II于1996年成为美国的全国标准,并沿用至今。与OBD-I不同,配备OBD-II的汽车都支持相同类型的扫描仪,故障代码本身也已标准化,尽管制造商会定制一些额外的特定信息。随着汽车计算机变得越来越复杂,汽车制造商也为其汽车的OBD-II系统添加了越来越多的功能,可以使用OBD-II扫描仪查看实时诊断数据、连接汽车计算机等,如图11所示,通过OBD-II不仅可以实现为外部测试工具(OFF Board)提供诊断服务,还可以实现车辆在运行过程中的自我诊断。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图11 OBD-II诊断

从OBD-I到OBD-II,最显著的改进是所有OBD-II汽车都有相同类型的端口,以相同的方式发送相同类型的数据。换句话说,可以购买一台OBD-II扫描仪,并从任何制造商生产的任何汽车中获取有用的信息。

OBD-II包括一系列标准化的故障诊断代码,即DTC。DTC是当OBD-II系统指示故障时由动力总成控制模块(PCM)生成和存储的代码。简而言之,当您的汽车系统诊断出问题时,它会发送一个代码来指示具体故障。根据汽车工程师协会(SAE)发布的故障手册,就可以通过DTC代码查看问题出在哪里,同时有许多工具可用于插入OBD-II连接器并访问DTC,如图12所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图12 手持式扫描工具

现在的远程诊断功能也可以基于OBD-II的诊断数据,如发动机转数、车速、故障代码等信息,然后通过T-BOX等远程信息处理设备将这些数据上传到云端,再使用这些信息来对车辆进行监控和远程诊断。前面也提到了2021年OBD-II接口攻击占比5.4%,OBD-II的攻击路径如图13所示,后续会深入介绍。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图13 OBD-II攻击路径

场景7:统一诊断服务

今天行驶在路上的汽车包含多达几百个ECU,每个都执行特定的功能,这增加了系统的复杂性,需要更有效的方法在发生故障时测试和诊断车辆系统。统一诊断服务(Unified diagnostic services,UDS)与OBD最大的区别就在于“统一”,具体来说,它是面向整车所有UDS的,而OBD是面向排放系统诊断系统的。随着时间的推移,已经开发了许多诊断协议,例如KWP 2000、ISO 15765和K-Line,用于车辆诊断。因此,为确保通用兼容性,原始设备制造商和供应商同意依赖名为统一诊断服务协议的标准协议。UDS用于诊断全球车辆的最新汽车车辆诊断协议,UDS协议遵从ISO-14229标准。

UDS不仅应用于远程诊断,还可以应用ECU刷写,这在OTA升级非智能ECU时经常使用。UDS刷写也就是通过UDS将服务实现软件ECU放在非易失性存储器中,ECU包含启动管理器(Boot Manager)、应用软件(Application Software)、重新编程软件(Reprogramming Software),可以参考ISO 14229-1给出的ECU刷写执行流程如图14所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图14 基于UDS的ECU刷写执行流程

OTA的快速发展,对ECU刷写提出了更高的要求,要能适应各种极端情况,因此安全性会更加重要,如果安全措施不到位,ECU将会遭受攻击,例如欺骗攻击、密码暴力破解、会话劫持、中间人攻击以及权限提升等。

场景8:高级辅助驾驶系统

安全性是高级辅助驾驶系统(ADAS)和自动驾驶系统(ADS)的关键设计目标,本书讨论的范围仅限于ADAS,ADAS的开发人员需要确保他们已经考虑和分析了问题的所有方面,并且提供可衡量的证据来证明他们的功能是安全的,而即将出台的标准和法规没有描述任何特定的方法。由于ADAS暴露出巨大的攻击面,因此网络安全漏洞可能会造成毁灭性的后果,汽车网络安全不仅是一项关键要求,还是ADAS和ADS的关键先决条件,通用ADAS的分层架构如图15所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图15 ADAS的分层架构

确保ADAS和ADS的网络安全是一项具有挑战性的任务,因为任何无线接口都可能成为潜在的攻击媒介。ADAS基于复杂的硬件和软件的混合,通常集成了车辆与V2X通信。高级驾驶辅助系统和自动驾驶汽车部署了各种传感器,如超声波、雷达、摄像头和激光雷达等。比如,摄像头传感器应用了许多图像分析、传感器融合、感知的算法,而尤其是那些基于神经网络、深度学习系统的算法,很容易受到网络攻击。ADAS攻击面如图16所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图16 ADAS的攻击面

场景9:充电网络系统

里程焦虑是现在购买电动车的用户最大的顾虑,也是电动汽车行业要重点解决的问题。随着充电站市场的发展,不同公司专注于充电生态系统的特定领域,充电生态系统如图17所示。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图17 充电生态系统

充电生态系统由这些部分组成:汽车制造商(OEM)、电动汽车(EV)、电动汽车充电桩(EVCS)、充电点运营商(CPO)、电动汽车服务提供商(eMSP)。

为了更好地了解充电系统安全,我们必须要先了解充电相关的技术,图18可以让我们更直观地感受电流如何在电动汽车中进行转换。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图18 电动汽车中电流转换的简化框图(图片来源:Keysight E-Mobility Design and Test Technologies)

要搞清楚上图的原理,可能需要明白以下问题,这些部分将在本书中详细介绍。

  • 充电电流如何输送到电动汽车?

  • 充电过程如何控制?

  • 充电站如何通信及其通信协议?

  • 如何进行接线和安装?

充电设备通常通过云平台和移动应用程序进行控制,因此具有可远程访问且易受攻击的API。Upstream对2022年初以来100多起公开报道的汽车网络相关事件的分析中得出结论,电动汽车充电被确定为头号新兴攻击媒介。这些安全漏洞可能会影响电动汽车充电网络的所有组成部分,根据上述漏洞,总结电动汽车充电设备的安全风险分类如下。

  • 身份伪造

  • 植入木马

  • 固件更新

  • 固件劫持

  • 重放攻击

  • 移动应用

  • 物理接入

  • 协议安全

场景10:手机端车联网应用程序

前面已经描述了手机App操纵汽车的过程,目前多数车联网汽车厂商会向车主提供车联网移动应用程序,使用移动应用程序可以通过Wi-Fi、蓝牙、蜂窝网络控制车门开关、调节车窗等,移动应用程序的使用场景如图19所示,可以通过手机App查询车辆的实时位置以及历史轨迹等。

《智能汽车十大网络安全攻击场景-《智能汽车网络安全权威指南》》

图19 手机App使用场景

手机App本身的安全问题不仅在车联网中存在,而且车联网场景下允许通过手机控制车辆,这样会将安全危害放大,必须要重视起来。以下是手机端车联网应用程序攻击面。

  • 数据泄露

  • 蓝牙钥匙

  • 不安全的Wi-Fi

  • 网络钓鱼攻击

  • 恶意软件

  • 逆向伪造应用程序

  • 会话处理不当

从上述可以看到汽车网络安全涉及Web安全、协议安全、无线安全、内核安全、移动端安全、固件安全、硬件安全等,任何一方都可能会是薄弱点,所以保护汽车网络安全更重要的是将安全基础打牢,避免出现安全短板。随着汽车行业创新的加速,智能汽车正在转向自动驾驶,新技术正在为扩大攻击面铺平道路,这是一个日益受到关注的问题。朝着该目标的每一次新进展,都可能会引入一个新的攻击面,需要持续的安全投入。

想要了解更多关于汽车网络安全的内容,请大家关注《智能汽车网络安全权威指南》或者autosrc公众号。

转载自autosrc公众号:https://mp.weixin.qq.com/s/K2xjLmpmlsyjUXWWSHtivA

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

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

相关文章

杰发科技AC7801——keil工程移植到IAR

0、简介 发现AC7801的代码只有keil工程的,IAR和Eclipse的代码只有一个例程,于是在从Keil移植到IAR时候遇到的问题记录下。 正常情况下,直接把keil的usr用户代码移植到iar的文件夹下面,删除原本的文件再添加新加进来的文件即可。…

链表?细!详细知识点总结!

链表 定义:链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。 ​ 其实链表就是有序的列表,它在内…

03:2440--UART

目录 一:UART 1:概念 2:工作模式 3:逻辑电平 4:串口结构图 5:时间的计算 二:寄存器 1:简单的UART传输数据 A:GPHCON--配置引脚 B:GPHUP----使能内部上拉​编辑 C: UCON0---设置频率115200 D: ULCON0----数据格式8n1 E:发送数据 A:UTRSTAT0 B:UTXHO--发送数据输…

从0到0.01入门 Webpack| 004.精选 Webpack面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

ref详解(C#)

本质上来说 ref 的就是把 C/C 指针的那一套又拿回来了,而且还封装成一套自己的玩法。 我想设计者的初心把 ref 的功能限制得死死的,可能也考虑到 C# 是一门面向业务开发的语言,讲究的是做项目快狠准,性能反而不是第一要素&#x…

当你准备开始学习 Java 时,确保已完成以下准备工作,安装Java开发环境并验证通过。

当你准备开始学习 Java 时,确保已完成以下准备工作: a. 安装Java开发环境 下载Java Development Kit (JDK): 访问Oracle官方网站,选择适用于你操作系统的JDK版本,点击下载。 安装JDK: 下载完成后&#xf…

3.1 CPU内部结构与时钟与指令

CPU内部结构 总线一些自定义部件总线图内存指令执行流程:取指令,译码,执行pc做的事内存地址寄存器内存缓存寄存器指令寄存器,译码第一步指令寄存器传递地址到内存地址寄存器指令MOV_A的过程(译码第二步)第一条指令执行完毕第三条指令的执行第四条指令第四条指令不同的执行流程…

基于python+TensorFlow+Django算法模型的车辆车型识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介简介技术栈主要模块1. 数据预处理2. 模型构建3. 模型训练4. 模型集成5. 用户界面 系统工作流程未来改进计划 二、功能三、系统四. 总结 一项目简介 # 车辆车…

深信服实验学习笔记——nmap常用命令

文章目录 1. 主机存活探测2. 常见端口扫描、服务版本探测、服务器版本识别3. 全端口&#xff08;TCP/UDP&#xff09;扫描4. 最详细的端口扫描5. 三种TCP扫描方式 1. 主机存活探测 nmap -sP <靶机IP>-sP代表 2. 常见端口扫描、服务版本探测、服务器版本识别 推荐加上-v参…

DNS/ICMP协议、NAT技术

目录 DNS协议DNS背景域名简介 ICMP协议ICMP功能ping命令traceroute命令 NAT技术NAT技术背景NAT IP转换过程NAPTNAT技术的缺陷NAT和代理服务器 网络协议总结应用层传输层网络层数据链路层 DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&…

基于51单片机的公交自动报站系统

**单片机设计介绍&#xff0c; 基于51单片机的公交自动报站系统 文章目录 一 概要公交自动报站系统概述工作原理应用与优势 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 很高兴为您介绍基于51单片机的公交自动报站系统&#xff1a; 公交自动报…

吉他初学者学习网站搭建系列(1)——目录

文章目录 背景文章目录功能网站地址网站展示展望 背景 这个系列是对我最近周末搭建的吉他工具类平台YUERGS的总结。我个人业余爱好是自学吉他&#xff0c;我会在这个平台中动手集成我认为很有帮助的一些工具&#xff0c;来提升我的吉他水平和音乐素养&#xff0c;希望也可以帮…

【Linux】指令详解(三)

目录 1. 前言2. 常见指令2.1 重定向2.1.1 >2.1.2 >>2.1.3 < 2.2 与文件有关指令2.2.1 more2.2.2 less &#xff08;推荐使用&#xff09;2.2.3 head2.2.4 tail2.2.5 wc2.2.6 | 2.3 find2.4 grep 3. 时间相关的指令3.1 data3.2 时间戳3.3 cal 4. zip/unzip 1. 前言 …

rsyslog学习

rsyslog是什么 RSYSLOG&#xff08;Remote System Logging&#xff09;是一个开源的日志处理工具&#xff0c;用于在 Linux 和 Unix 系统上收集、处理和转发日志。它是一个健壮且高性能的日志处理程序&#xff0c;可以替换 Syslogd 作为标准的系统日志程序。RSYSLOG 提供了许多…

力扣学习笔记——239. 滑动窗口最大值

力扣学习笔记——239. 滑动窗口最大值 题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输…

第96步 深度学习图像目标检测:FCOS建模

基于WIN10的64位系统演示 一、写在前面 本期开始&#xff0c;我们继续学习深度学习图像目标检测系列&#xff0c;FCOS&#xff08;Fully Convolutional One-Stage Object Detection&#xff09;模型。 二、FCOS简介 FCOS&#xff08;Fully Convolutional One-Stage Object D…

Javaweb之Vue组件库Element的详细解析

4 Vue组件库Element 4.1 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM&#xff0c;我们之前学习的vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架&#xff0c;主要用…

两年功能五年自动化测试面试经验分享

最近有机会做一些面试工作&#xff0c;主要负责面试软件测试人员招聘的技术面试。 之前一直是应聘者的角色&#xff0c;经历了不少次的面试之后&#xff0c;多少也积累一点面试的经验&#xff0c;现在发生了角色转变。初次的面试就碰到个工作年限比我长的&#xff0c;也没有时…

【数据结构实验】排序(一)冒泡排序改进算法 Bubble及其性能分析

文章目录 1. 引言2. 冒泡排序算法原理2.1 传统冒泡排序2.2 改进的冒泡排序 3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现 4. 实验结果5. 实验结论 1. 引言 排序算法是计算机科学中一个重要而基础的研究领域&…

AndroidStudio2022.3.1 Patch3使用国内下载源加速

记录一下这个版本的as在使用国内下载源加速碰到的诸多问题。 一、gradle-8.0-bin.zip下载慢 编辑项目文件夹/gradle/wrapper/gradle-wrapper.properties&#xff0c;文件内容改为如下&#xff1a; #Fri Nov 24 18:50:06 CST 2023 distributionBaseGRADLE_USER_HOME distribu…