CN115544515A - 固件检测方法、装置、设备及存储介质 - Google Patents
固件检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115544515A CN115544515A CN202211075919.8A CN202211075919A CN115544515A CN 115544515 A CN115544515 A CN 115544515A CN 202211075919 A CN202211075919 A CN 202211075919A CN 115544515 A CN115544515 A CN 115544515A
- Authority
- CN
- China
- Prior art keywords
- cve
- firmware
- dictionary
- terminal
- terminal firmware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的实施例公开了一种固件检测方法、装置、设备及存储介质,方法包括:获取终端固件,并提取终端固件的固件特征;根据终端固件的固件特征进行镜像重构得到终端固件的镜像CVE;将镜像CVE和字典CVE进行对比,以计算镜像CVE和字典CVE的相似度;根据相似度检测终端固件与字典CVE的相关性。本申请实施例的技术方案,通过与字典CVE的相关性准确可靠地实现终端固件中针对CVE漏洞的检测。
Description
技术领域
本申请涉及一种计算机技术领域,提供一种固件检测方法、固件检测装置、电子设备及计算机可读存储介质。
背景技术
在固件安全领域中,CVE(Common Vulnerabilities&Exposures,公共漏洞和暴露)的查找是用于终端固件CVE漏洞的检测,而由于智能化终端种类繁多,轻量级裁剪多样化,使用智能终端固件版本不断迭代,CVE漏洞多样化和威胁性,在业务开发的过程中可能缺乏对固件CVE防护和规避,导致存在安全问题。
发明内容
本申请的目的在于提供一种固件检测方法、固件检测装置、电子设备及计算机可读存储介质,通过与字典CVE的相关性,准确可靠地实现终端固件中针对CVE漏洞的检测。
本申请提出一种固件检测方法,所述方法包括:获取终端固件,并提取所述终端固件的固件特征;根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像CVE;将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度;根据所述相似度检测所述终端固件与所述字典CVE的相关性。
进一步地,所述提取所述终端固件的固件特征,包括:根据所述终端固件的可执行文件提取所述终端固件的固件信息,所述固件信息包括源代码信息、函数名信息、版本信息、原址目录信息和参数信息中的至少一种;将所述固件信息转换为向量表示,得到所述固件特征。
进一步地,所述根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像CVE,包括:对所述固件特征进行重组处理得到特征矩阵;对所述特征矩阵进行降维处理得到所述镜像CVE。
进一步地,所述将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度,包括:获取所述字典CVE对应的特征向量;计算所述镜像CVE和所述字典CVE的所述特征向量的交集的大小与并集大小的比值;将所述比值作为所述镜像CVE和字典CVE的相似度。
进一步地,所述将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度,包括:分别获取所述镜像CVE和所述字典CVE链接到文档库的文档集合;获取所述文档库中的所有文档集合;根据所述链接到文档库的文档集合和所述文档库中的所有文档集合计算所述镜像CVE与所述字典CVE的相似度。
进一步地,所述根据所述相似度检测所述终端固件与所述字典CVE的相关性,包括:获取根据所述镜像CVE和所述字典CVE得到的向量矩阵;计算所述向量矩阵中各行向量之间的距离值,以根据所述距离值得到权重值,所述权重值用于表征所述镜像CVE与所述字典CVE的相关程度;根据所述权重值和所述相似度检测所述终端固件与所述字典CVE的相关性。
进一步地,所述终端固件为人工标注的与所述字典CVE不相关的固件;所述根据所述相似度检测所述终端固件与所述字典CVE的相关性之后,所述方法还包括:获取人工标注的与所述字典CVE相关的终端固件,以作为样本集;若所述终端固件与所述字典CVE的相关性表征所述终端固件与所述字典CVE相关,则将所述样本集和所述终端固件作为训练集;根据所述训练集对分类模型进行训练。
本申请还提出一种固件检测装置,所述装置包括:获取模块,用于获取终端固件,并提取所述终端固件的固件特征;重构模块,用于根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像CVE;对比模块,用于将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度;检测模块,用于根据所述相似度检测所述终端固件与所述字典CVE的相关性。
本申请还提出一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的方法。
本申请还提出一种计算机可读存储介质,其上存储有计算机可读指令,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的方法。
与现有技术相比,本申请具有如下有益效果:
本申请提供的技术方案中,获取终端固件,并提取终端固件的固件特征,进而通过终端固件的固件特征进行镜像重构,构建出一个终端固件的镜像CVE,而使用镜像可提高CVE的高还原度,类别固件性差异,实现近乎一比一高像素镜像,为固件潜在的漏洞进行深度挖掘,进而通过镜像CVE和字典CVE的相似度检测该终端固件与该字典CVE的相关性,以通过对比差异,准确可靠地实现终端固件中针对CVE漏洞的检测。
附图说明
图1示出了本申请涉及的一种实施环境的示意图;
图2示出了本申请一示例性实施例示出的一种固件检测方法的流程图;
图3示出了图2所示实施例中的在步骤S110在一示例性实施例中的流程图;
图4示出了图2所示实施例中的步骤S120在一示例性实施例中的流程图;
图5示出了图2所示实施例中的步骤S130在一示例性实施例中的流程图;
图6示出了图2所示实施例中的步骤S130在另一示例性实施例中的流程图;
图7示出了图2所示实施例中的步骤S140在一示例性实施例中的流程图;
图8示出了图2所示实施例中的在步骤S140之后在一示例性实施例中的流程图;
图9示出了本申请一示例性实施例示出的另一种固件检测方法的流程图;
图10示出了本申请一示例性实施例示出的一种文本表示方法的示意图;
图11示出了本申请一示例性实施例示出的特征提取和文本表示的流程示意图;
图12示出了本申请一示例性实施例示出的一种固件检测方法的流程示意图;
图13示出了本申请一示例性实施例示出的再一种固件检测方法的流程示意图;
图14示出了本申请一示例性实施例示出的一种固件检测装置的结构示意图;
图15示出了适于用来实现本申请实施例的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参阅图1,图1是本申请涉及的一种实施环境的示意图。该实施环境包括终端10和服务器20,终端10和服务器20可以通过网络30连接,网络30可以是有线网络,也可以是无线网络,本处也不进行限制。
终端10用于可以将其上的终端固件上传至服务器20进行检测。
服务器20用于获取终端固件,并提取该终端固件的固件特征;根据该终端固件的固件特征进行镜像重构得到该终端固件的镜像CVE,进而将该镜像CVE和字典CVE进行对比,以计算该镜像CVE和字典CVE的相似度,最后根据该相似度检测该终端固件与该字典CVE的相关性。
在一些实施例中,也可以单独由终端实现固件检测方法,即终端在获得待运行至终端上的终端固件时,通过提取终端固件的固件特征,重构得到进行CVW,进而通过镜像CVE检测终端固件与字典CVE的相关性。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
终端包括但不限于智能手机、平板、笔记本电脑、计算机、智能语音交互设备、智能家电、车载终端、飞行器等等。
以下基于图1所示的实施环境对固件检测方法进行详细说明:
请参阅图2,图2是本申请一示例性实施例示出的一种固件检测方法的流程图,该固件检测方法由图1所示的服务器或/和终端执行,该固件检测方法包括步骤S110至步骤S140,详细介绍如下:
S110、获取终端固件,并提取终端固件的固件特征。
在本申请实施例中,固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序;存在于硬件和操作系统(operatingsystem,os)之间,主要作用是初始化各种核心硬件;终端固件即位于终端上的固件,可以理解的是,终端固件可以是一个,也可以是多个,若是多个终端固件,则对每个终端固件都进行检测。
由于固件是一种写入EPROM或EEPROM的程序,因此通过程序的运行可以提取得到终端固件的固件特征,其中,终端固件的固件特征指的描述该终端固件特有固件特征,例如终端固件的版本,源代码特征等。
值得注意的是,如图3所示,图3示出了图2所示实施例中的步骤S110的流程图,包括:
S111、根据终端固件的可执行文件提取终端固件的固件信息。
在本申请实施例中,终端固件的可执行文件指的是可以由操作系统进行加载执行的文件。终端固件的固件信息包括源代码信息、函数名信息、版本信息、原址目录信息和参数信息中的至少一种,由于可执行文件是可执行程序产生的,因此可通过可执行文件提取可执行程序,即源代码信息。
可以理解的是,可执行文件还对应版本信息,如版本号,通过可将可执行文件的版本信息作为终端固件的版本信息;可执行文件中还包含函数和参数,因此可从可执行文件中提取函数名信息和参数信息。可执行文件对应有其所属的目录信息,其中可以通过可执行文件反编译解析地址目录,以得到原址目录信息。
S112、将固件信息转换为向量表示,得到固件特征。
在本申请实施例中,固件信息为文本形式进行表示,为了便于后续对比,需要将文本形式的固件信息转换为向量表示得到固件特征。其中,可以通过文本表示算法将固件信息转换为向量表示,例如可以通过one-hot编码得到向量表示,或者通过共生矩阵转换。
在本申请实施例中,通过终端固件的固件信息来反映终端固件的各种信息,进而将固件信息转换为向量表示,以便于后续可准确的检测。
S120、根据终端固件的固件特征进行镜像重构得到终端固件的镜像CVE。
在本申请实施例中,可以基于终端固件的固件特征对终端固件进行重组,构建出一个终端固件的镜像CVE,而使用镜像可提高CVE的高还原度,类别固件性差异,实现近乎一比一高像素镜像,为固件潜在的漏洞进行深度挖掘。可以理解的是,当固件信息包括多种时,需要对固件特征进行重构。如图4所示,图4示出了图2所示实施例中的步骤S120的流程图,包括:
S121、对固件特征进行重组处理得到特征矩阵。
在本申请实施例中,为了重构得到镜像CVE,需要对固件特征进行重组,其是对全部固件特征进行重组处理,该重组处理可以是将多个one-hot向量重新组合得到一个特征矩阵,也可以是将共生矩阵中的象限重组,例如将共识矩阵的行向量和列向量进行对换,得到特征矩阵。
S122、对特征矩阵进行降维处理,以重构得到镜像CVE。
可以理解的是,向量表示的向量维度会随着字典大小呈线性增长,为了降低内存的消耗,需要对特征矩阵进行降维处理,其中,可以采用PCA(principal componentsanalysis,主成分分析技术)或SVD(Singular Value Decomposition,奇异值分解)将其进行降维,即将向量的长度进行缩减,进而转换为一条词向量,将该词向量作为镜像CVE。通过对固件信息进行重组后进行降维处理,便于后续快速检测。
S130、将镜像CVE和字典CVE进行对比,以计算镜像CVE和字典CVE的相似度。
字典CVE指的是官方认同的信息安全漏洞或者已经暴露出来的弱点,为每个漏洞和暴露确定了唯一的名称,给每个漏洞和暴露一个标准化的描述;在本申请实施例中,将镜像CVE和字典CVE进行对比,以计算镜像CVE和字典CVE的相似度,进而通过相似度来检测终端固件与字典CVE是否相关。
如图5所示,图5示出了图2所示实施例中的步骤S130的流程图,计算镜像CVE和字典CVE的相似度的过程包括:
S1311、获取字典CVE对应的特征向量。
如前所述,镜像CVE为一条词向量,在将镜像CVE和字典CVE进行对比之前,还需要对字典CVE进行处理得到对应的词向量,即在一些示例中,可以将字典CVE的固件特征进行重组、降维处理得到对应的特征向量(词向量)。在另一示例中,也可以将字典CVE的各种固件信息分别转换为固件特征,即得到多种向量表示(特征向量)。
S1312、计算镜像CVE和字典CVE的特征向量的交集的大小与并集大小的比值。
S1313、将比值作为镜像CVE和字典CVE的相似度。
在一些实施例中,由于字典CVE包括每个漏洞和暴露,因此可以获取每个漏洞和暴露对应的特征向量,进而计算镜像CVE和每个漏洞和暴露对应的特征向量Jaccard相似系数。
在一些实施例中,也可以将每个漏洞和暴露对应的特征向量组合为一个总特征向量,进而计算镜像CVE和总特征向量的相似度。
如图6所示,图6示出了图2所示实施例中的步骤S130的流程图,另一种计算镜像CVE和字典CVE的相似度的过程包括:
S1321、分别获取镜像CVE和字典CVE链接到文档库的文档集合。
S1322、获取文档库中的所有文档集合。
S1323、根据链接到文档库的文档集合和文档库中的所有文档集合计算镜像CVE与字典CVE的相似度。
对于一个指称项,同一文章中其他指称项对其的链接也很重要,因此,本申请实施例中可以通过链接关系反应指称项之间的语义相似度。
在一示例中,文档库为维基百科,则可以通过WLM(Wikipedia Link-basedMeasure)计算指称项之间的语义相似度;在WLM算法中,对于同一个指称项,有两个Wikipedia(维基百科)文章链接到两个文体,则认为这两个实体是语义相关,
其中,u1和u2分别为镜像CVE和字典CVE;U1和U2是u1和u2链接到文档库的文档集合,W是文档库中的所有文档集合。
在本申请实施例中,固件检测方法可以同时包括图5和图6中的相似度计算过程,例如在通过图5所示的步骤和图6所示的步骤分别计算得到相似度之后,可以通过加权求和得到最终的相似度;也可以将相似度最高的作为最终的相似度;还可以将两相似度之和作为最终的相似度。
S140、根据相似度检测终端固件与字典CVE的相关性。
由于镜像CVE是终端固件重构得到的,因此可以通过镜像CVE和字典CVE的相似度反映终端固件与字典CVE的相关性,终端固件与字典CVE的相关性越大,表示终端固件中存在CVE漏洞的概率就越大。
如图7所示,图7示出了图2所示实施例中的步骤S140的流程图,检测终端固件与字典CVE的相关性的过程包括:
S141、获取根据镜像CVE和字典CVE得到的向量矩阵。
在本申请实施例中,镜像CVE为一条词向量,字典CVE也对应有一条词向量,因此可将镜像CVE和字典CVE各自的词向量分别作为行向量,进而得到一向量矩阵。
S142、计算向量矩阵中各行向量之间的距离值,以根据距离值得到权重值。
在本申请实施例中,可以计算向量矩阵中各行向量之间的距离值,包括但不限于欧式距离,曼哈顿距离、闵可夫斯基距离和马哈拉诺比斯距离等。例如可以采用pdist()函数计算向量矩阵中各行向量之间的距离值。
在一示例中,在计算得到一距离值之后,可以将该距离值作为权重值。
在另一示例中,在计算得到多个距离值之后,还可以将多个距离值聚合得到权重值,例如将多个距离值的平均值作为权重值。
S143、根据权重值和相似度检测终端固件与字典CVE的相关性。
在本申请实施例中,在得到权重值之后,根据权重值对相似度进行加权处理,即将权重值与相似度的乘积作为终端固件与字典CVE的相关度。
在一示例中,若权重值与相似度的乘积大于或等于预设阈值,则表示终端固件与字典CVE相关;若权重值与相似度的乘积小于预设阈值,则表示终端固件与字典CVE不相关。
在一些其他实施例中,根据相似度检测终端固件与字典CVE的相关性的过程还可以是,在计算得到镜像CVE和字典CVE的相似度之后,首先对相似度进行判断,以确定该相似度是否大于或等于预设相似度阈值,若大于或等于预设相似度阈值,则进一步获取根据镜像CVE和字典CVE得到的向量矩阵,进而计算向量距离中各行向量之间的距离值,以得到权重值,通过权重值来判定终端固件和字典CVE的相关性,如权重值大于预设权重阈值,则表示终端固件与字典CVE不相关。
通过结合权重值和相似度检测终端固件与字典CVE的相关性,使得检测结果更加准确可靠。
值得注意的是,本申请实施例还包括对分类模型的训练过程,其中,步骤S110中的终端固件为人工标注的与字典CVE不相关的固件,即在包括各种终端固件的数据库中,首先由人工进行分类和标注,以标注出与字典CVE相关的固件和不相关的固件。如图8所示,在根据相似度检测终端固件与所述字典CVE的相关性之后,还包括:
S150、获取人工标注的与CVE字典相关的CVE固件,以作为样本集。
S160、若终端固件与字典CVE的相关性表征终端固件与字典CVE相关,则将样本集和终端固件作为训练集。
S170、根据训练集对分类模型进行训练。
如前所述,人工对各种终端进行标注,获取人工标注的与字典CVE相关的终端固件,并将其作为样本集;对于人工标注的与字典CVE不相关的终端固件,通过上述S110~S140进一步判断该终端固件与字典CVE的相关性,若终端固件与字典CVE的相关性表征终端固件与字典CVE相关,则表示人工标识不准确,将该终端固件与样本集进行合并,作为训练集,进而通过训练集对分类模型进行训练。若终端固件与字典CVE的相关性表征终端固件与字典CVE相关,则根据样本集对分类模型进行训练。
其中,分类模型用于对终端固件进行分类,以实现对终端固件的自动化分类。该分类模型可以是SVM(Support Vector Machine,支持向量机)。训练过程包括:训练集和样本标签输入到分类模型中进行训练,该样本标签即标注的与字典CVE相关。通过人工标注和上述S110~S140判断终端固件与字典CVE的相关性,使得对终端固件的检测更准确,进一步通过对分类模型的训练,使得训练好的分类模型能更好的识别。
在本申请实施例中,通过上述S110~S140进一步判断该终端固件与字典CVE的相关性之后,还可以对已知漏洞库进行更新,即若终端固件与字典CVE相关,则将该终端固件加入到已知漏洞库中。
本申请实施例中,获取终端固件,并提取终端固件的固件特征,进而通过终端固件的固件特征进行镜像重构,构建出一个终端固件的镜像CVE,而使用镜像可提高CVE的高还原度,类别固件性差异,实现近乎一比一高像素镜像,为固件潜在的漏洞进行深度挖掘,进而通过镜像CVE和字典CVE的相似度检测所述终端固件与所述字典CVE的相关性,以通过对比差异,准确可靠地实现终端固件中针对CVE漏洞的检测。
为了便于理解,本实施例以一个较为具体的示例对固件检测方法进行说明。该固件检测方法主要对终端固件的源代码,可行执行文件反编译解析地址目录等特征进行提取,镜像构建出一个细胞核,对比本体和镜像之间的相似性,实现终端固件的漏洞的识别;如图9所示,该固件检测方法由图1所示的服务器或/和终端执行,包括:
S910、下载终端固件,获取固件版本以及执行版本文件。
S920、提取终端固件源代码特征、原址目录特征、函数名特征、版本特征。
通过执行文件依次搜索镜像CVE原址目录层次结构,提取源代码特征,函数名特征,参数特征等。利用文本表示算法表达数据矩阵信息,如one-hot进行表示,或如图10所示,通过共现矩阵进行表示。
S910和S920的过程还可以如图11所示,主要包括特征提取,提取源代码、原址目录、函数名、版本、固定参数、指针等,然后通过文本表示提取的各个信息。
S930、对所提取的特征进行象限重组,通过镜像重构镜像CVE。
镜像CVE特征重构CVE,通过象限重组,二次降维方法训练转化成一条词向量,词向量就是要转化的结果;其中共现矩阵的一行(列)作为某个词的词向量,其向量维度还是会随着字典大小呈线性增长,而且存储共生矩阵可能需要消耗巨大的内存。One-hot也会随着字典词的增长,维度也增长;因此本申请实施例中一般配合PCA或SVD将象限重组后的特征进行降维,如将原来m×n的矩阵降为m×r的矩阵,其中r<n,即将词向量的长度进行缩减。
S940、将镜像CVE和字典CVE进行对比,拟合相似度权重,以确定比对结果。
镜像CVE和字典CVE中在拟合过程中,采用实体链接的算法进行同指匹配。此算法从文本上下文,实体映射的一致性的相关特性进行表达。
文本上下文:文本相似度计算。
表达方式:concept vector,从文本中抽取关键字,锚文本信息,命名实体,分类,叙述标签的概念组成一个向量。
度量方式:Jaccard相似度;即给定两个集合A,B jaccard系数定义为A与B交集的大小与并集大小的比值,jaccard值越大说明相似度越高。
实体映射一致性:对于同一个指称项,有两个Wikipedia文章链接到两个文体,则认为这两个实体是语义相关。
在本申请实施例中,S940的过程还可以如图12所示,其中data pairs可以是镜像CVE和字典CVE,通过Jaccard值和Wikipedia值得到镜像CVE和字典CVE的相似度,其中根据相似度可以将镜像CVE映射至字典CVE。计算镜像CVE和字典CVE的欧式距离,可通过MATLAB的pdist函数计算,最后将计算出的距离值作为权重值,基于之前计算的相似度和权重值确定镜像CVE和字典CVE的对比结果,对比结果包括镜像CVE与字典CVE相关或不相关,进而通过对比结果可以确定终端固件是否与字典CVE的相关性。
本申请实施还包括一种方法,将标注数据CVE不相关通过多维数据再次文本表示,实体链接方法多次测试形成相关训练集,如图13所示,该方法包括:对爬取的数据进行标注,该爬取的数据包括终端固件,人工标注为与字典CVE相关,或与字典CVE不相关,对于人工标注的与字典CVE不相关的,通过图9进一步判定形成测试训练集,通过结合人工标注的与字典CVE相关的终端固件训练SVM模型,以实现数据自动化分类。
本申请提供的该方法通过对CVE漏洞的组件版本,源代码,地址目录等特征进行提取,对固件进行原址重组反向镜像的类同,比对镜像和本体的拟合性和相似性,对比差异,在终端固件中针对CVE漏洞快速的检测。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的固件检测方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的固件检测方法的实施例。
如图14所示,图14是本申请的一示例性实施例示出的一种固件检测装置的结构示意图,该装置部署于服务器,装置包括:
获取模块1410,用于获取终端固件,并提取所述终端固件的固件特征;
重构模块1420,用于根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像CVE;
对比模块1430,用于将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度;
检测模块1440,用于根据所述相似度检测所述终端固件与所述字典CVE的相关性。
在本申请的一些实施例中,基于前述方案,获取模块1410进一步用于根据所述终端固件的可执行文件提取所述终端固件的固件信息,所述固件信息包括源代码信息、函数名信息、版本信息、原址目录信息和参数信息中的至少一种;将所述固件信息转换为向量表示,得到所述固件特征。
在本申请的一些实施例中,基于前述方案,重构模块1420进一步用于对所述固件特征进行重组处理得到特征矩阵;对所述特征矩阵进行降维处理得到所述镜像CVE。
在本申请的一些实施例中,基于前述方案,对比模块1430进一步用于获取所述字典CVE对应的特征向量;计算所述镜像CVE和所述字典CVE的所述特征向量的交集的大小与并集大小的比值;将所述比值作为所述镜像CVE和字典CVE的相似度。
在本申请的一些实施例中,基于前述方案,对比模块1430进一步用于分别获取所述镜像CVE和所述字典CVE链接到文档库的文档集合;获取所述文档库中的所有文档集合;根据所述链接到文档库的文档集合和所述文档库中的所有文档集合计算所述镜像CVE与所述字典CVE的相似度。
在本申请的一些实施例中,基于前述方案,检测模块1440进一步用于获取根据所述镜像CVE和所述字典CVE得到的向量矩阵;计算所述向量矩阵中各行向量之间的距离值,以根据所述距离值得到权重值,所述权重值用于表征所述镜像CVE与所述字典CVE的相关程度;根据所述权重值和所述相似度检测所述终端固件与所述字典CVE的相关性。
在本申请的一些实施例中,基于前述方案,所述终端固件为人工标注的与所述字典CVE不相关的固件;装置还包括训练模块,训练模块用于获取人工标注的与所述字典CVE相关的终端固件,以作为样本集;若所述终端固件与所述字典CVE的相关性表征所述终端固件与所述字典CVE相关,则将所述样本集和所述终端固件作为训练集;根据所述训练集对分类模型进行训练。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
本申请实施例的装置,通过终端固件的固件特征进行镜像重构,构建出一个终端固件的镜像CVE,而使用镜像可提高CVE的高还原度,类别固件性差异,实现近乎一比一高像素镜像,为固件潜在的漏洞进行深度挖掘,进而通过镜像CVE和字典CVE的相似度检测所述终端固件与所述字典CVE的相关性,以通过对比差异,通过与字典CVE的相关性准确可靠地实现终端固件中针对CVE漏洞的识别。
在一示例性实施例中,一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个被一个或多个处理器执行时,使得电子设备实现如前所述的方法。可以理解的是,该电子设备可以部署在服务器内。
图15是根据一示例性实施例示出的一种电子设备的结构示意图。
需要说明的是,该电子设备只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该电子设备也不能解释为需要依赖于或者必须具有图15中示出的示例性的电子设备中的一个或者多个组件。
如图15所示,在一示例性实施例中,电子设备包括处理组件1501、存储器1502、电源组件1503、多媒体组件1504、音频组件1505、处理器1506、传感器组件1507和通信组件1508。其中,上述组件并不全是必须的,电子设备可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。
处理组件1501通常控制电子设备的整体操作,诸如与显示、数据通信以及日志数据同步相关联的操作等。处理组件1501可以包括一个或多个处理器1506来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件1501可以包括一个或多个模块,便于处理组件1501和其他组件之间的交互。例如,处理组件1501可以包括多媒体模块,以方便多媒体组件1504和处理组件1501之间的交互。
存储器1502被配置为存储各种类型的数据以支持在电子设备的操作,这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器1502中存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器1506执行,以完成上述实施例中所描述的方法中的全部或者部分步骤。
电源组件1503为电子设备的各种组件提供电力。电源组件1503可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
多媒体组件1504包括在电子设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括TP(Touch Panel,触摸面板)和LCD(Liquid Crystal Display,液晶显示器)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
音频组件1505被配置为输出和/或输入音频信号。例如,音频组件1505包括一个麦克风,当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。在一些实施例中,音频组件1505还包括一个扬声器,用于输出音频信号。
传感器组件1507包括一个或多个传感器,用于为电子设备提供各个方面的状态评估。例如,传感器组件1507可以检测到电子设备的打开/关闭状态,还可以检测电子设备的温度变化。
通信组件1508被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,例如Wi-Fi(Wireless-Fidelity,无线网络)。
可以理解,图15所示的结构仅为示意,电子设备可以包括比图15中所示更多或更少的组件,或者具有与图15所示不同的组件。图15中所示的各组件均可以采用硬件、软件或者其组合来实现。
在一示例性实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
需要说明的是,本申请实施例所示的计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种固件检测方法,其特征在于,所述方法包括:
获取终端固件,并提取所述终端固件的固件特征;
根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像公共漏洞和暴露CVE;
将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度;
根据所述相似度检测所述终端固件与所述字典CVE的相关性。
2.根据权利要求1所述的方法,其特征在于,所述提取所述终端固件的固件特征,包括:
根据所述终端固件的可执行文件提取所述终端固件的固件信息,所述固件信息包括源代码信息、函数名信息、版本信息、原址目录信息和参数信息中的至少一种;
将所述固件信息转换为向量表示,得到所述固件特征。
3.根据权利要求1所述的方法,其特征在于,所述根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像CVE,包括:
对所述固件特征进行重组处理得到特征矩阵;
对所述特征矩阵进行降维处理得到所述镜像CVE。
4.根据权利要求1所述的方法,其特征在于,所述将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度,包括:
获取所述字典CVE对应的特征向量;
计算所述镜像CVE和所述字典CVE的所述特征向量的交集的大小与并集大小的比值;
将所述比值作为所述镜像CVE和字典CVE的相似度。
5.根据权利要求1所述的方法,其特征在于,所述将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度,包括:
分别获取所述镜像CVE和所述字典CVE链接到文档库的文档集合;
获取所述文档库中的所有文档集合;
根据所述链接到文档库的文档集合和所述文档库中的所有文档集合计算所述镜像CVE与所述字典CVE的相似度。
6.根据权利要求1所述的方法,其特征在于,所述根据所述相似度检测所述终端固件与所述字典CVE的相关性,包括:
获取根据所述镜像CVE和所述字典CVE得到的向量矩阵;
计算所述向量矩阵中各行向量之间的距离值,以根据所述距离值得到权重值,所述权重值用于表征所述镜像CVE与所述字典CVE的相关程度;
根据所述权重值和所述相似度检测所述终端固件与所述字典CVE的相关性。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述终端固件为人工标注的与所述字典CVE不相关的固件;所述根据所述相似度检测所述终端固件与所述字典CVE的相关性之后,所述方法还包括:
获取人工标注的与所述字典CVE相关的终端固件,以作为样本集;
若所述终端固件与所述字典CVE的相关性表征所述终端固件与所述字典CVE相关,则将所述样本集和所述终端固件作为训练集;
根据所述训练集对分类模型进行训练。
8.一种固件检测装置,其特征在于,所述装置包括:
获取模块,用于获取终端固件,并提取所述终端固件的固件特征;
重构模块,用于根据所述终端固件的固件特征进行镜像重构得到所述终端固件的镜像公共漏洞和暴露CVE;
对比模块,用于将所述镜像CVE和字典CVE进行对比,以计算所述镜像CVE和字典CVE的相似度;
检测模块,用于根据所述相似度检测所述终端固件与所述字典CVE的相关性。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至7中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211075919.8A CN115544515A (zh) | 2022-09-02 | 2022-09-02 | 固件检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211075919.8A CN115544515A (zh) | 2022-09-02 | 2022-09-02 | 固件检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115544515A true CN115544515A (zh) | 2022-12-30 |
Family
ID=84725286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211075919.8A Pending CN115544515A (zh) | 2022-09-02 | 2022-09-02 | 固件检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115544515A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807604A (zh) * | 2024-03-01 | 2024-04-02 | 天津华来科技股份有限公司 | 固件文件系统中开源组件cve漏洞检测方法 |
-
2022
- 2022-09-02 CN CN202211075919.8A patent/CN115544515A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807604A (zh) * | 2024-03-01 | 2024-04-02 | 天津华来科技股份有限公司 | 固件文件系统中开源组件cve漏洞检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763928B (zh) | 一种开源软件漏洞分析方法、装置和存储介质 | |
US20190163742A1 (en) | Method and apparatus for generating information | |
US10417285B2 (en) | Corpus generation based upon document attributes | |
CN115827895A (zh) | 一种漏洞知识图谱处理方法、装置、设备及介质 | |
CN111090860A (zh) | 一种基于深度学习的代码漏洞检测方法及装置 | |
CN109144879B (zh) | 测试分析方法及装置 | |
CN111950279A (zh) | 实体关系的处理方法、装置、设备及计算机可读存储介质 | |
US9836450B2 (en) | Methods and systems for providing universal portability in machine learning | |
CN110750297A (zh) | 一种基于程序分析和文本分析的Python代码参考信息生成方法 | |
CN112581297B (zh) | 基于人工智能的信息推送方法、装置及计算机设备 | |
JP2022003544A (ja) | 業界テキスト増分方法、関連装置、およびコンピュータプログラム製品 | |
CN109902152A (zh) | 用于检索信息的方法和装置 | |
CN115544515A (zh) | 固件检测方法、装置、设备及存储介质 | |
CN116719683A (zh) | 异常检测方法、异常检测装置、电子设备及存储介质 | |
CN116127066A (zh) | 文本聚类方法、文本聚类装置、电子设备及存储介质 | |
WO2019148797A1 (zh) | 自然语言处理方法、装置、计算机设备和存储介质 | |
US9342795B1 (en) | Assisted learning for document classification | |
CN114490400A (zh) | 一种处理测试用例的方法和装置 | |
CN114328837A (zh) | 序列标注方法、装置、计算机设备、存储介质 | |
US11301633B2 (en) | Technical document issues scanner | |
CN113486142A (zh) | 一种基于义原的词语语义的预测方法及计算机设备 | |
CN117077678B (zh) | 一种敏感词识别方法、装置、设备及介质 | |
CN115455179B (zh) | 敏感词汇检测方法、装置、设备及存储介质 | |
WO2024021874A1 (zh) | 漏洞分析方法、装置、设备及计算机可读存储介质 | |
CN107644084B (zh) | 用于生成信息的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |