漏洞情报:为什么、要什么和怎么做
漏洞一直是网络攻防的焦点所在,因为漏洞直接或间接影响安全性的核心方面——权限。攻击者挖掘和利用漏洞,获取非授权的权限;防御方定位和消除漏洞,监测和阻断漏洞的利用,使攻击者无法利用漏洞达到其目的。漏洞信息本质上是一类威胁情报,可以被用来结合组织自身的资产驱动持续的检测与响应,避免漏洞导致实际的风险。
近年来,陆续有一些厂商开始做漏洞情报,声称基于漏洞优先级排序技术(VPT,Vulnerability Priority Technology)提供更有价值的漏洞信息服务。为什么会有VPT这么个提法?大的漏洞库不能满足用户的需求吗?是的,不满足,而且是非常的不满足。
要理解这个问题,我们需要对漏洞的现状有一个基于统计数据的详细分析,而这个事情其实很多所谓的专业安全厂商都没有认真做过。
一、一些基本的统计数据
奇安信CERT收集了2020年全年加上2021年上半年的漏洞信息,以下是一些基本的漏洞及占比统计:
漏洞总数:37478个
0day漏洞数:106个,占比0.28%;其中40+国产软件
ZDI漏洞数:450个,占比1.2%;其中200+目前无CVE
无CVE漏洞数:10887个,占比29%
CNVD漏洞数:17593个,占比47%
有公开Exploit/POC的漏洞数:1973个,占比5%;Exploit-DB来源414;PacketStorm 来源633;Github来源1338;MetaSploit来源24
有野外利用的漏洞数:667个,1.8%;其中319有公开Exploit,348无公开Exploit
APT相关的漏洞数:30个,占比0.08%
二、基于数据的分析结论
真正造成实际风险的漏洞只占少数
存在Exploit/PoC的漏洞占比超过5%,但只有1.8%比例的漏洞有公开来源信息显示存在野外利用,所以,实际导致安全风险的漏洞在已知漏洞集中只占很小一部分。
IBM X-Force对近10年来的漏洞利用情况做过一个统计(下图):
这里的数据跟我们的统计结果有些差异,但数量级是一样的千级。近年来每年的漏洞数量都在创新高,但被利用的漏洞数却相当稳定:只有10%不到。
关注漏洞的实际野外利用状态非常重要
有Exploit的漏洞数量达1973个,有在野利用的漏洞数667个,只有其中319个有公开Exploit。
大量的在野利用漏洞并没有公开的Exploit,处于私有状态,占比15%,所以只通过标记漏洞是否存在公开Exploit来判定漏洞的现实威胁还是不够的。但是调研了一圈国内的所谓漏洞情报,基本上看不到把漏洞是否存在野外攻击这个属性进行标记,并进行持续跟踪的,这也是挺搞笑的事。
CVE远没有覆盖绝大多数已知漏洞
无CVE的漏洞占比接近三分之一,因此,有大量的漏洞在CVE的视野之外,完全依靠NVD的数据是不可行的。这类非CVE漏洞国产软件来源的占了很大比例,已知的0day漏洞中国产软件相关的也占了差不多一半,因此非常有必要维护一个CVE超集类型的漏洞库。
三、用户的漏洞处理痛点
通过以上的数据分析,结合实际的用户反馈,我们发现用户在漏洞处置过程中存在如下痛点:
每天数以百计的新漏洞披露,如何才能识别出哪些漏洞是真正有威胁的部分;
一般情况下,攻击者会比防御方更早地知道漏洞的存在,如何能尽早得到完整准确的信息,不落后于攻击者太多;
通常发布漏洞补丁需要一定时间,而即使发布了相应的漏洞补丁,很多场景下,用户也无法随心所欲地安装。是否有快速可靠的临时解决方案,可以规避漏洞导致的风险;
在处置资源有限的情况下,应该优先处理哪些漏洞,以最大程度减小漏洞风险的敞口;
如何把漏洞情报无缝集成到组织自身的日常漏洞处理流程和机制中。
好的漏洞情报需要能回应上面这些痛点,解决或缓解用户的焦虑。
四、漏洞情报应该怎么做?
基于漏洞情报运营实践,奇安信CERT认为漏洞情报的运营需要起到收集器、过滤器和富化器的作用。
具体而言主要包括如下环节:
通过对一手数据源的挖掘和信息实时采集,结合威胁情报对漏洞进行多维度的属性标定,保证漏洞信息的全面性和及时性;
分析团队依据完善的流程和专业经验对漏洞的影响面和技术细节进行研判,把真正重要的漏洞过滤出来,保证信息的准确性和处理优先级的可靠性;
对于确认的重要漏洞,我们需要富化漏洞信息的上下文,跟踪漏洞的现时威胁状态,关联相应的安全事件,给出切实可行的处理方法,提供除补丁链接以外的其他威胁缓解措施建议。
1、全面的多维漏洞信息整合及属性标定
漏洞情报相对传统漏洞库区别最大的地方在于对漏洞本身技术层面以外维度的持续动态跟踪,一般的漏洞库的核心信息只会涉及软硬件影响面(厂商、应用及版本)和漏洞本身技术层面的评估(威胁类型、利用场景、危害大小等),这些信息还远远不够,是为了有效管控漏洞导致的风险,通常需要知道得更多:
漏洞是否在默认配置下存在,配置情况对漏洞可利用性影响极大,非默认配置下的漏洞其实际威胁往往远不如技术层面的定性看起来那么大;
漏洞相关的应用系统部署量有多大,这直接影响漏洞整体的威胁评估;
漏洞是否已经有了公开的技术细节、 Exploit 工具、概念验证代码(PoC),这会直接影响漏洞转变为现实的攻击;
漏洞是否已经有了野外的利用,这体现了漏洞是否已经从潜在威胁转化为了现实威胁;
漏洞是否已经被已知的漏洞利用攻击包或大型的僵尸网络集成作为获取对系统控制的途径,这标志着漏洞现实威胁的提升;
漏洞是否为0day或APT活动相关,意味着漏洞可能被用于攻击高价值的目标。
所有上面这些属性都应该通过运营被标记出来,以方便用户实现有效的处理优先级排序。
下图是奇安信CERT对2021年底核弹级漏洞Apache Log4j任意代码执行漏洞(CVE-2021-44228)的标签实例,随着新近利用此漏洞的攻击事件的发现,这些标签会随时新增和更新。
奇安信CERT的漏洞情报还会支持基于标签的搜索,让用户非常方便地获取匹配特定属性的漏洞集合。这些标签将来还会有对应的分类和描述,让用户能更深入地了解漏洞导致的威胁。
当然,上面所有的一切都是建立在全面收集漏洞信息的基础上,奇安信监测了多个主流漏洞数据库以及数百安全厂商,跟踪了2000+推特账号和80+安全相关新闻源,开源信息采集结合商业数据采购,并通过各种手段挖掘新的数据源。
2、准确的漏洞所导致实际安全风险判定
据统计,每年增加几万个漏洞,平均到每天百级的漏洞被公开出来,如果全部对其分析验证需要巨量的资源投入,这对任何厂商和组织都是不可能完成的任务,操作层面上既无可能也无必要。事实上每年新公开的漏洞只有极少数会被认真研究。处理流程上,奇安信CERT会根据漏洞的影响面和验证条件,筛选出值得深入分析的漏洞,在利用多种渠道收集或自研PoC进行技术验证,这是漏洞情报运营过程中专业度要求最高的环节。
2021年,Microsoft Windows Active Directory域服务特权提升漏洞(CVE-2021-42287)14、Apache APISIX Dashboard未授权访问漏洞(CVE-2021-45232)、Grafana未授权任意文件读取漏洞(CVE-2021-43798)等漏洞经过奇安信CERT复现并被打上“奇安信CERT验证”的标签,标记我们对于此类严重漏洞的存在性和可利用性的专业验证。
漏洞运营的目标也不仅仅告诉用户哪些漏洞重要,同样重要的,需要告诉用户哪些看起来高危的漏洞所对应风险名不副实。一个典型的例子是2021年12月Log4j漏洞爆发以后,聚光灯效应下一些衍生漏洞随之出现,团队对那些漏洞研究分析之后确认其中绝大部分并没有实际场景下的威胁,随即发布了相关的风险通告做了技术上的澄清。
图:奇安信 CERT 发布的澄清报告
3、可靠的综合性漏洞处理的优先级排序
在筛选出的重要漏洞中,大量的漏洞具有相同的CVSS评分,仅基于这些评分基本上很难对漏洞的实际风险做出有效的评估,其他诸如漏洞是否默认配置受影响、利用的易用性稳定性、攻击者所能接触到的存在漏洞的资产量级和漏洞利用的其他前置条件,都对漏洞的实际风险有极大影响,而这些维度的评价在 CVSS评分体系中非常难以准确量化。
于是产生了一个疑问,目前普遍基于CVSS 评分的高低来评估漏洞的危险程度,这样真的能准确地反映漏洞的实际风险吗?
以两个CVSS评分接近漏洞的对比为例:Log4j远程代码执行漏洞(CVE-2021-44228)(CVSS 10)vs Samba远程代码执行漏洞(CVE-2021-44142)(CVSS 9.8)。
通过以上对比,可以看到虽然两个漏洞的CVSS评分看起来相差无几,但由于一系列非CVSS考察维度属性的差别,导致漏洞的实际威胁天差地别,Log4j的是真正的核弹级,而Samba的这个基本可以归到鸡肋级。
目前CVSS 评分高于9.0的漏洞数量有13000多个,其中有3300( 25%)多个漏洞存在对应的Exploit,这个比例不算低,但只有580多个漏洞被标记存在野外利用,占比这类高危漏洞不到5%的比例。所以,即便是技术层面风险度非常高的漏洞,真正被用于网络攻击的概率也不高。这个难题需要通过结合威胁情报来缓解,奇安信CERT的漏洞情报多维度标签为用户提供了基于漏洞现时状态进行优先级排序的可能。
NOX安全监测平台现已收录关键漏洞27042个,并将漏洞按照更新时间先后进行排序,例如:Apache Log4j任意代码执行漏洞(CVE-2021-44228)、Google Chrome 远程代码执行漏洞(CVE-2021-37973)、致远OA代码执行漏洞(CNVD-2021-51370)等漏洞已经被标注为“发现在野利用”并且漏洞威胁等级为“高危”或“极危”,此类漏洞建议用户参考漏洞修补方法尽快进行修补。美国网络安全与基础设施安全局(CISA,Cybersecurity & Infrastructure Security Agency)发布了一个包含500多个已知存在野外利用的漏洞列表,奇安信CERT目前已经标记了超过4000个在野利用漏洞,这个列表也已经对外发布,这是个每个组织都要必修的漏洞列表。
4、及时的与组织自身相关漏洞风险通知
目前从漏洞信息公开到野外实际利用的间隔期越来越短,大多数时候防御方是在跟攻击者抢时间,哪方先知道漏洞的存在及相应的细节,决定了谁在对抗中获胜。为了及时输出漏洞风险通知,漏洞情报的运营理想条件下需要采用7*24 的监测处理机制,直接的厂商源头信息采集,及时研判并实时推送漏洞状态更新。我们认为如下5类漏洞相关的状态更新需要尽快通报,因为这些更新会渐次影响漏洞的现实危害程度:
第一,新的关键漏洞公开;
第二,发现关键漏洞的技术细节;
第三,发现关键漏洞的 Exploit 或 PoC 公开;
第四,发现关键漏洞的在野利用案例;
第五,发现关键漏洞的新修补和缓解方案。
2021年,奇安信CERT发布了涉及40多个重点厂商、300余条漏洞的147 篇实时安全风险通告。其中CVE-2021-21224 Google Chrome远程代码执行漏洞(发现时漏洞为0day状态)、WebLogic T3反序列化0day漏洞、CVE-2021-28474 Microsoft SharePoint远程代码执行漏洞等漏洞的风险通告,均为奇安信CERT使用自研PoC首次验证并第一时间发布。
同样重要的,为了能让组织全面地获取自身网络环境相关的漏洞信息,我们引入了全面的CPE信息集成,非CVE漏洞(主要为国产软件漏洞)的扩展CPE支持,使用归一化的厂商及产品列表,包含1000+软件厂商、10000+产品,结合主动的资产测绘精准评估漏洞影响面,第一时间提供高危漏洞定向风险通告。
对外的输出形式,不仅提供基于多维属性筛选的Web访问界面,还提供在线数据获取的API接口及离线数据包,用户可以根据自己需要集成到自有漏洞处理流程。
5、可行的包含详细操作步骤的处置措施
除了全面性、及时性、有效性,提供有效的缓解措施和可落地解决方案也是漏洞情报实现其价值的重要一环。很多时候,安装补丁并不是漏洞威胁处置的第一选择,因为打补丁受各种现实条件的限制。比如在重大活动中核心服务器出于性能和稳定性的考虑,一旦安装补丁导致宕机后果不堪设想,有些补丁打完以后需要重启机器的操作是不允许的,更不用提0day漏洞暂时无补丁可打的情况。
因此对于很多重要漏洞,奇安信CERT团队还会组织相关部门开发主机或网络虚拟补丁,寻找通过调整机器配置暂时规避漏洞利用的临时解决方案,输出经过验证的step-by-step 的操作步骤,帮助客户迅速上手进行规避风险,以后在合适的时机进行彻底修复。
例如:对于ProxyLogon漏洞,NOX安全监测平台持续更新6次安全风险通告,不断对缓解措施进行完善,最终提供了两千余字详细描述的可行操作步骤;对于Log4Shell漏洞, NOX安全监测平台给出的完整处置建议涵盖了漏洞排查、攻击排查、修复版本、产品解决方案以及多种不同场景下经过验证的有效缓解措施,该完整的处置建议在奇安信多家客户单位的一线应急响应中起到了重要作用。
五、不同类型用户的漏洞情报选择
当前网络安全正处在转型升级的上升期,网络安全体系架构已经由基础架构安全、被动防御向主动防御、反制进攻阶段进化。传统的安全思维模式和安全技术已经无法有效满足政企客户对安全防护的需要,新的安全理念、新的安全技术不断涌现。要实现有效的积极防御,很关键的一点是要具备安全情报的收集与使用能力。
对于个人用户、企业用户以及安全监管单位而言如何挑选到满足自身业务需求的优质漏洞情报,可以简单概括为一句话:“C端用户挑产品、B端用户挑服务、监管机构挑供应商”。
个人用户只需要确保自身的隐私安全和资产安全,不需要关注漏洞本身的技术细节,因此,在漏洞情报的使用上更加依赖于其部署的终端安全产品对漏洞情报的敏感程度。
企业用户基于其信息系统的复杂程度,单一的安全产品无法满足其建立企业自身漏洞检测与响应能力的需求,企业需要更加精准和定制化的漏洞情报服务,来帮助管理者迅速判别漏洞对企业业务的影响,并第一时间进行有效的漏洞处置;安全监管单位关注全网的网络安全态势,需要庞大的漏洞情报数据库支撑,更加考验漏洞情报供应商在模式化的安全产品和情报服务之上,所拥有的灵活、可变通的业务适应能力。
相关文章:
漏洞情报:为什么、要什么和怎么做
漏洞一直是网络攻防的焦点所在,因为漏洞直接或间接影响安全性的核心方面——权限。攻击者挖掘和利用漏洞,获取非授权的权限;防御方定位和消除漏洞,监测和阻断漏洞的利用,使攻击者无法利用漏洞达到其目的。漏洞信息本质…...
kotlin的协程的基础概念
Kotlin的协程是一种用于简化异步编程的强大工具。 理解协程的基础概念可以帮助开发者有效地利用其能力。 以下是Kotlin协程的一些关键基础概念: 协程(Coroutines) : 协程是一种用于处理并发任务的编程模型,它可以在单…...
C语言教程——动态内存管理(2)
文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 我们之前学了动态内存管理分配函数,也是熟悉了动态内存分配函数,基于动态内存分配我把之前的通讯录做了修改,上传到了gitee上,这篇文章接着…...
LeetCode刷题 -- 45.跳跃游戏 II
题目 C代码 int jump(int* nums, int numsSize) {int i 0;int j 0;int last_i 0;int last_can 0;int max_i 0;int max_can 0;int min_jump 0;if (numsSize < 2) {//注意点1:数组小于两个的时候,只需要跳转0次;goto end;}// 注意点…...
谈谈RTMP|RTSP播放器视频view垂直|水平反转和旋转设计
技术背景 我们在做RTMP|RTSP播放器的时候,有这样的技术诉求,有的摄像头出来的数据是有角度偏差的,比如“装倒了”,或者,图像存在上下或者左右反转,这时候,就需要播放器能做响应的处理ÿ…...
vulnhub靶场【kioptrix-1靶机】
前言 靶机:kioptrix-1,IP地址为192.168.1.104 攻击:kali,IP地址为192.168.1.16 都采用虚拟机,网卡为桥接模式 文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载&…...
PyQt5之QCalendarWidget
十八、QCalendarWidget 1.描述 提供了一个基于每月日历控件,允许用户选择一个日期。 继承自QWidget 2.功能作用 (1) 构造函数 QCalendarWidget(parent: QWidget None)(2) 日期范围 setMinimumDate(QDate date) minimumDate() -> QDate setMaximumDate(QD…...
【Qt】窗口
窗口 菜单栏 QMenuBar给菜单设置快捷键添加子菜单添加分割线设置图标 工具栏 QToolBar状态栏 QStatusBar浮动窗口 QDockWidget对话框自定义对话框通过代码方式通过图形化方式 模态对话框 Qt 内置对话框消息对话框 QMessageBox颜色对话框 QColorDialog文件对话框 QFileDialog字体…...
初阶5 排序
本章重点 排序的概念常见排序的算法思想和实现排序算法的复杂度以及稳定性分析 1.排序的概念 排序: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性: 假定在待排序的记录序列中࿰…...
备赛蓝桥杯之第十五届职业院校组省赛第二题:分享点滴
提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议 由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题࿰…...
qml ColumnLayout详解
1、概述 ColumnLayout 是 QML 中用于在垂直方向上排列子元素的一种布局管理器。它继承自 Item 并提供了简单的布局机制,使得子元素能够按照从上到下的顺序自动排列。ColumnLayout 通常用于创建具有垂直层次结构的用户界面。 2、重要属性 layoutDirection 类型&…...
Qt 5.14.2 学习记录 —— 십팔 对话框
文章目录 1、Qt对话框2、自定义对话框1、代码方式2、图形化方式 3、模态对话框4、QMessageBox5、QColorDialog6、QFileDialog7、QFontDialog8、QInputDialog 1、Qt对话框 Qt的对话框用QDialog类来表示,可以自定义一些类来实现自定义对话框,但需要继承自…...
AI 编程工具—Cursor进阶使用 Rules for AI
AI 编程工具—Cursor进阶使用 Rules for AI 这里配置是给所有的会话和内嵌模式的,你可以理解为是一个全局的配置 下面的代码是之前Cursor 给我们生成的,下面我们开始配置Rules ,来让Cursor生成的代码更加符合我们的编程习惯 def quick_sort(arr):"""使用快…...
SpringBoot 实现动态管理定时任务 Job的动态操作(添加、修改、启停、执行、删除)以及界面展示和具体Job的创建与执行示例
SpringBoot 实现动态管理定时任务 Job的动态操作(添加、修改、启停、执行、删除)以及界面展示和具体Job的创建与执行示例 关键接口类: CronTaskRegistrar SchedulingRunnable . 添加定时任务注册类,用来增加、删除定时任务 impo…...
FPGA中场战事
2023年10月3日,英特尔宣布由桑德拉里维拉(Sandra Rivera)担任“分拆”后独立运营的可编程事业部首席执行官。 从数据中心和人工智能(DCAI)部门总经理,转身为执掌该业务的CEO,对她取得像AMD掌门人苏姿丰博士类似的成功,无疑抱以厚望。 十年前,英特尔花费167亿美元真金白银…...
_CLASSDEF在C++中的用法详解及示例
_CLASSDEF在C++中的用法详解及示例 _CLASSDEF的定义与使用示例说明代码解析总结在C++编程中,宏(Macro)是一种预处理指令,它允许程序员在编译之前对代码进行文本替换。_CLASSDEF是一个自定义的宏,它提供了一种便捷的方式来定义类及其相关类型。本文将详细介绍_CLASSDEF在C+…...
缓存-Redis-数据结构-redis哪些数据结构是跳表实现的?
在 Redis 中,跳表(Skip List) 被用于实现 有序集合(Sorted Set) 数据结构。以下是对此实现的详细解释: Redis中的有序集合(Sorted Set) 有序集合(Sorted Set࿰…...
K8S中Service详解(二)
Service类型 Service的资源清单文件: --- kind: Service # 资源类型 apiVersion: v1 # 资源版本 metadata: # 元数据name: service # 资源名称namespace: dev # 命名空间 spec: # 描述selector: # 标签选择器,用于确定当前service代理哪些podapp: ngin…...
鸿蒙模块概念和应用启动相关类(HAP、HAR、HSP、AbilityStage、UIAbility、WindowStage、window)
目录 鸿蒙模块概念 HAP entry feature har shared 使用场景 HAP、HAR、HSP介绍 HAP、HAR、HSP开发 应用的启动 AbilityStage UIAbility WindowStage Window 拉起应用到显示到前台流程 鸿蒙模块概念 HAP hap包是手机安装的最小单元,1个app包含一个或…...
【EXCEL_VBA_实战】多工作薄合并深入理解
工作背景:多个工作薄存在冲突的名称,需快速合并 困难点:工作表移动复制时,若有冲突的名称,会不断弹出对话框待人工确认 思路:利用代码确认弹出的对话框 关键代码:Application.DisplayAlerts …...
Maven的下载安装配置
maven的下载安装配置 maven是什么 Maven 是一个用于 Java 平台的 自动化构建工具,由 Apache 组织提供。它不仅可以用作包管理,还支持项目的开发、打包、测试及部署等一系列行为 Maven的核心功能 项目构建生命周期管理:Maven定义了项目构建…...
网络打印机的搜索与连接(一)
介绍 网络打印机就是可以通过网络连接上的打印机,这类打印机分2种:自身具有互联网接入功能可以分配IP的打印机我们称为网络打印机、另外一种就是被某台电脑连接上去后通过共享的方式共享到网络里面的我们称为共享打印机。现在还有一种可以通过互联网连接…...
高并发压力测试
高并发压力测试 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。 需要一个并发安全的计数器来操作。CountDownLatch就可以实现。 给CountDownLatch设置一个数值。 每个业务处理完毕之后,执行一次countDown方法,指…...
Python中采用.add_subplot绘制子图的方法简要举例介绍
Python中采用.add_subplot绘制子图的方法简要举例介绍 目录 Python中采用.add_subplot绘制子图的方法简要举例介绍一、Python中绘制子图的方法1.1 add_subplot函数1.2 基本语法(1)add_subplot的核心语法(2)add_subplot在中编程中的…...
ipad和macbook同步zotero文献附件失败的解决办法
背景:我所有的文献及其附件pdf都是在台式机(windows系统),想要把这些文献同步到云上,然后再从云上同步到平板和其他笔记本电脑比如macbook。文献同步虽已成功,但文献附件都无法打开。 平板报错如下…...
循环队列(C语言)
从今天开始我会开启一个专栏leetcode每日一题,大家互相交流代码经验,也当作我每天练习的自我回顾。第一天的内容是leetcode622.设计循环队列。 一、题目详细 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO&#…...
Amazon Redshift实用命令语句
1. 数据库管理相关命令 创建数据库 CREATE DATABASE mydatabase;Amazon Redshift创建数据库命令除了基本形式外,还有以下几种带不同参数的形式: 带OWNER参数 可以指定数据库的所有者,通常是一个数据库用户或角色。 CREATE DATABASE myda…...
音频入门(二):音频数据增强
本文介绍了一些常见的音频数据增强方法,并给出了代码实现。 目录 一、简介 二、代码 1. 安装必要的库 2. 代码 3. 各函数的介绍 4. 使用方法 参考: 一、简介 音频数据增强是机器学习和深度学习领域中用于改善模型性能和泛化能力的技术。 使用数据…...
【Hadoop面试题2025】
文章目录 简单题故障及相应的处理方法中等难度高难度小文件小文件的产生小文件问题的影响小文件治理方案推荐方案 冷文件冷文件的产生冷文件问题的影响冷文件治理方案推荐方案 简单题 一、基础概念类 什么是Hadoop? 答案:Hadoop是一个开源的分布式计算框…...
Unity自学之旅03
Unity自学之旅03 Unity自学之旅03📝 碰撞体 Collider 基础定义与作用常见类型OnCollisionEnter 事件碰撞触发器 🤗 总结归纳 Unity自学之旅03 📝 碰撞体 Collider 基础 定义与作用 定义:碰撞体是游戏中用于检测物体之间碰撞的组…...
STranslate 中文绿色版即时翻译/ OCR 工具 v1.3.1.120
STranslate 是一款功能强大且用户友好的翻译工具,它支持多种语言的即时翻译,提供丰富的翻译功能和便捷的使用体验。STranslate 特别适合需要频繁进行多语言交流的个人用户、商务人士和翻译工作者。 软件功能 1. 即时翻译: 文本翻译ÿ…...
树的存储(c++)
树结构相对线性结构来说就⽐较复杂。存储时,既要保存值域,也要保存结点与结点之间的关系。实际中树有很多种存储⽅式:双亲表⽰法,孩⼦表⽰法、孩⼦双亲表⽰法以及孩⼦兄弟表⽰法等。现阶段,我们只⽤掌握孩⼦表⽰法&…...
JVM面试题解,垃圾回收之“对象存活判断”剖析
一、JVM怎么判断一个类/对象是不是垃圾? 先来说如何判断一个对象是不是垃圾 最常用的就是引用计数法和可达性分析 引用计数法 引用计数法为每个对象维护一个计数器来跟踪有多少个引用指向该对象。每当创建一个新的引用指向某个对象时,计数器加1&…...
【Elasticsearch】 Ingest Pipeline `processors`属性详解
在Elasticsearch中,Ingest Pipeline 的 processors 属性是一个数组,包含一个或多个处理器(processors)。每个处理器定义了一个数据处理步骤,可以在数据索引之前对数据进行预处理或富化。以下是对 processors 属性中常见…...
Springboot3 自动装配之核心文件:imports文件
注:本文以spring-boot v3.4.1源码为基础,梳理spring-boot应用启动流程、分析自动装配的原理 如果对spring-boot2自动装配有兴趣,可以看看我另一篇文章: Springboot2 自动装配之spring-autoconfigure-metadata.properties和spring…...
Ceisum无人机巡检直播视频投射
接上次的视频投影,Leader告诉我这个视频投影要用在两个地方,一个是我原先写的轨迹回放那里,另一个在无人机起飞后的地图回显,要实时播放无人机拍摄的视频,还要能转镜头,让我把这个也接一下。 我的天&#x…...
【IJCAI】2025 投稿重点记录
【IJCAI】2025 投稿重点记录 写在最前面【IJCAI】2025 投稿重点记录1. 文件说明2. 论文长度要求正式版本的页面扩展 3. 作者信息及匿名性要求4. 摘要5. 附录与补充内容6. 审稿重点与伦理声明7. 参考文献与贡献声明8. 技术要点与补充细节 🌈你好呀!我是 是…...
U3D的.Net学习
Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…...
C++ 二叉搜索树
目录 概念 性能分析 二叉搜索树的插入 二叉树的查找 二叉树的前序遍历 二叉搜索树的删除(重点) 完整代码 key与value的使用 概念 对于一个二叉搜索树 若它的左子树不为空,则左子树上所有的节点的值都小于等于根节点的值若它的右子树不为空…...
使用HTML5 Canvas 实现呼吸粒子球动画效果的原理
在网页开发领域,动画效果能够极大地提升用户体验,让页面变得更加生动有趣。今天,我们深入剖析一个基于 HTML5 Canvas 的 3D 粒子动画 —— 呼吸粒子球。通过详细解读其代码实现,我们将全面了解如何运用 HTML5 的强大功能构建出如此…...
计算机网络 (56)交互式音频/视频
一、定义与特点 定义:交互式音频/视频是指用户使用互联网和其他人进行实时交互式通信的技术,包括语音、视频图像等多媒体实时通信。 特点: 实时性:音频和视频数据是实时传输和播放的,用户之间可以进行即时的交流。交互…...
Androidstudio 中,project下的.gitignore和module下的.gitignore有什么区别,生效优先级是什么
在 Android Studio 项目中,project 根目录下的 .gitignore 文件和 module 目录下的 .gitignore 文件作用和生效优先级是不同的,理解它们之间的区别非常重要,可以避免不必要的提交和冲突。 1. project 根目录下的 .gitignore: 作…...
三篇物联网漏洞挖掘综述
由于物联网设备存在硬件资源受限、硬件复杂异构, 代码、文档未公开的问题, 物联网设备的漏洞挖掘存在较大的挑战: 硬件资源受限性: 通用动态二进分析技术需要在运行程序外围实施监控分析。由于物联网设备存储资源(存储)的受限性,…...
【动态规划】落花人独立,微雨燕双飞 - 8. 01背包问题
本篇博客给大家带来的是01背包问题之动态规划解法技巧. 🐎文章专栏: 动态规划 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 要开心要快乐顺便…...
uniapps使用HTML5的io模块拷贝文件目录
最近在集成sqlite到uniapp的过程中,因为要将sqlite数据库预加载,所以需要使用HTML5的plus.io模块。使用过程中遇到了许多问题,比如文件路径总是解析不到等。尤其是应用私有文档目录’_doc’。 根据官方文档: 为了安全管理应用的…...
Word2Vec如何优化从中间层到输出层的计算?
文章目录 Word2Vec如何优化从中间层到输出层的计算?用负采样优化中间层到输出层的计算负采样方法的关键思想负采样的例子负采样的采样方法 Word2Vec如何优化从中间层到输出层的计算? 重要性:★★ 用负采样优化中间层到输出层的计算 以词汇…...
C#中的语句
C#提供了各式各样的语句,大多数是由C和C发展而来,当然,在C#中做了相应修改。语句和表达式一样,都是C#程序的基本组成部分,在本文我们来一起学习C#语句。 1.语句 语句是构造所有C#程序的过程构造块。在语句中可以声明…...
2.3.1(项目)kv存储——框架梳理(待定)
一、过一遍代码路线: 体会:(1)接口统一、测试标准统一,软件才会有量产的过程;(b)多层框架,实现业务部分和网络部分的完全剥离。 实现多层框架: ࿰…...
【YOLOv10改进[Backbone]】使用ConvNeXtV2替换Backbone
本文将进行在YOLOv10中使用ConvNeXtV2替换Backbone魔改v10的实践,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 目录 一 ConvNeXtV2 二 魔改YOLOv10 1 整体修改 ① 添加python文件 ② 修改ultralytics/nn/tasks.py文件 2 配置文件...
在C#中添加I/O延时和持续时间
在C#中添加I/O延时和持续时间,可以通过以下方法实现。具体来说,延时可以通过Thread.Sleep、Task.Delay等方式来模拟延迟,而持续时间的控制可以通过循环结构来设定持续的时间。在执行I/O操作时,你可以在操作之间添加延时࿰…...