CN110866254B - 一种检测漏洞方法与电子设备 - Google Patents
一种检测漏洞方法与电子设备 Download PDFInfo
- Publication number
- CN110866254B CN110866254B CN201910936363.9A CN201910936363A CN110866254B CN 110866254 B CN110866254 B CN 110866254B CN 201910936363 A CN201910936363 A CN 201910936363A CN 110866254 B CN110866254 B CN 110866254B
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- vector
- file
- type
- electronic device
- 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.)
- Active
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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Virology (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种检测漏洞方法与电子设备。本申请涉人工智能(artificial intelligence,AI)、机器学习等领域。该方法包括:提取漏洞库中的已知漏洞类型的漏洞文件的联合特征向量,所述联合特征向量包括所述漏洞文件的显性特征向量和隐性特征向量;其中,所述显性特征向量包括与所述漏洞文件的代码相关的显性特征,所述隐性特征向量包括通过卷积神经网络对所述显性特征向量处理得到分类结果的上一层的参数;基于所述联合特征向量,识别待检测文件的漏洞类型,有助于提升漏洞识别的准确率。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种检测漏洞方法与电子设备。
背景技术
随着网络信息化的快速发展,网络信息安全逐渐成为用户关切的问题。大多数网络攻击都是由于某些软件漏洞引起的。软件漏洞可以窃取用户信息,对用户隐私造成威胁。
业界提出漏洞防御方法,即检测漏洞并修补漏洞。目前较为前沿的漏洞检测方法是通过机器学习算法进行漏洞检测。但是,目前进行漏洞检测的机器学习算法主要从漏洞文件中的代码的语法中提取漏洞特征,然后基于该漏洞特征识别待检测文件中的漏洞。
由于代码的语法种类数较少,从代码的语法中提取的漏洞特征较为单一,所以通过机器学习算法也仅能识别少数种类的漏洞,对于复杂的漏洞,无法识别,所以现有技术漏洞检测的准确性较低。
发明内容
本申请的目的在于提供了一种检测漏洞方法与电子设备,该方法可以提升漏洞检测准确性。
上述目标和其他目标将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。
第一方面,本申请实施例提供一种检测漏洞方法,该方法包括:提取漏洞库中的已知漏洞类型的漏洞文件的联合特征向量,所述联合特征向量包括所述漏洞文件的显性特征向量和隐性特征向量;其中,所述显性特征向量包括与所述漏洞文件的代码相关的显性特征,所述隐性特征向量包括通过卷积神经网络对所述显性特征向量处理得到分类结果的上一层的参数;基于所述联合特征向量,识别待检测文件的漏洞类型。
需要说明的是,本申请实施例中,电子设备学习已知漏洞类型的漏洞文件的显性特征向量和隐性特征向量,然后基于显性特征向量和隐性特征向量,识别待检测文件的漏洞类型,提升了漏洞检测的准确性。
在一种可能的设计中,学习漏洞库中的已知漏洞类型的漏洞文件的联合特征,包括:提取所述漏洞文件的显性特征向量,所述显性特征向量包括函数类型向量A和函数结构向量V;所述函数类型向量A包括所述漏洞文件的漏洞类型的相关参数,所述函数结构向量V包括所述漏洞文件中存在的编程语言标准库函数;根据所述函数结构向量V和所述卷积神经网络,确定隐性特征向量,所述函数类型向量A和所述隐性特征向量构成所述联合特征向量。
需要说明的是,本申请实施例中,电子设备学习已知漏洞类型的漏洞文件的显性特征向量和隐性特征向量,具体的,根据显性特征向量中的函数结构向量V和卷积神经网络,确定隐性特征向量,然后基于显性特征向量和隐性特征向量,识别待检测文件的漏洞类型,提升了漏洞检测的准确性。
在一种可能的设计中,根据所述函数结构向量V和所述卷积神经网络,确定隐性特征向量,包括:所述卷积神经网络包括至少一层卷积层,至少一层池化层,至少一层全连接层;将所述函数结构向量V作为所述卷积神经网络的输入,运行所述卷积神经网络;将所述卷积神经网络的中所述至少一层全连接层中最后一层全连接层的参数作为所述隐性特征向量。
需要说明的是,本申请实施例中,电子设备学习已知漏洞类型的漏洞文件的显性特征向量和隐性特征向量,具体的,将显性特征向量中的函数结构向量V输入卷积神经网络,将所述卷积神经网络的中所述至少一层全连接层中最后一层全连接层的参数作为所述隐性特征向量,然后基于显性特征向量和隐性特征向量,识别待检测文件的漏洞类型,提升了漏洞检测的准确性。
在一种可能的设计中,基于所述联合特征向量,识别待检测文件的漏洞类型,包括:基于所述联合特征向量对机器学习模型进行训练;将所述待检测文件作为训练之后的机器学习模型的输入,得到第一分类结果Vw;所述第一分类结果Vw中包括所述待检测文件属于每种漏洞类型的概率;确定所述第一分类结果Vw中概率最大值对应的漏洞类型为所述待检测文件的第一最终漏洞类型。
需要说明的是,本申请实施例中,基于联合特征向量(包括漏洞文件的显性特征向量和隐性特征向量)对机器学习模型进行训练,得到能够准确识别漏洞类型的机器学习模型,提升了漏洞检测的准确性。
在一种可能的设计中,电子设备还可以确定所述第一分类结果Vw与所述漏洞库中所述第一最终漏洞类型的漏洞文件的函数结构向量V的第一相似度;若所述第一相似度大于或等于阈值,则确定所述第一最终漏洞文件为所述待检测文件的漏洞类型;若所述第一相似度小于所述阈值,则确定所述待检测文件不存在漏洞,或者,识别下一个待检测文件的漏洞类型。
需要说明的是,本申请实施例中,基于联合特征向量(包括漏洞文件的显性特征向量和隐性特征向量)对机器学习模型进行训练,得到分类结果之后,还可以对分类结果进行判断,若满足条件,则输入分类结果,若不满足,则识别下一个待检测文件,提升了漏洞检测的准确性。
在一种可能的设计中,确定所述第一分类结果Vw与所述漏洞库中所述第一最终漏洞类型的漏洞文件的函数结构向量V的第一相似度,包括:
需要说明的是,本申请实施例中,基于联合特征向量(包括漏洞文件的显性特征向量和隐性特征向量)对机器学习模型进行训练,得到分类结果之后,还可以对分类结果进行判断,若满足条件,则输入分类结果,若不满足,则识别下一个待检测文件,提升了漏洞检测的准确性。
在一种可能的设计中,基于所述联合特征向量,识别待检测文件的漏洞类型之前,还包括:根据主成分分析算法从所述隐性特征向量中选择部分参数构成新的隐性特征向量;所述新的隐性特征向量和所述函数类型向量A构成所述联合特征向量。
需要说明的是,本申请实施例中,电子设备学习已知漏洞类型的漏洞文件的显性特征向量和隐性特征向量,还可以从隐性特征向量选择较为准确的隐性特征向量,然后基于显性特征向量和选择出的隐性特征向量,识别待检测文件的漏洞类型,提升了漏洞检测的准确性。
在一种可能的设计中,基于所述联合特征向量对机器学习模型进行训练,包括:将所述联合特征向量作为机器学习模型的输入,得到第二分类结果;所述第二分类结果包括所述联合特征向量中包括的每种漏洞类型的概率;确定所述第二分类结果中概率最大值对应的漏洞类型为第二最终漏洞类型;确定所述第二分类结果与所述漏洞库中属于所述第二最终漏洞类型的漏洞文件的漏洞标签B的第二相似度;所述漏洞标签B中包括所述属于所述第二最终漏洞类型的漏洞文件中包括的一种或多个漏洞类型;若所述第二相似度大于或等于阈值,则训练结束;若所述第二相似度小于所述阈值,则重新使用所述联合特征向量对所述机器学习模型进行训练。
需要说明的是,本申请实施例中,基于联合特征向量(包括漏洞文件的显性特征向量和隐性特征向量)对机器学习模型进行训练,得到分类结果之后,还可以对分类结果进行判断,若满足条件,则训练结束,若不满足,则继续训练,提升了漏洞检测的准确性。
在一种可能的设计中,确定所述第二分类结果与所述漏洞库中属于所述第二最终漏洞类型的漏洞文件的漏洞标签B的相似度,包括:
需要说明的是,本申请实施例中,基于联合特征向量(包括漏洞文件的显性特征向量和隐性特征向量)对机器学习模型进行训练,得到分类结果之后,还可以对分类结果进行判断,若满足条件,则训练结束,若不满足,则继续训练,提升了漏洞检测的准确性。
第二方面,本申请实施例提供一种芯片,该芯片与电子设备中的存储器耦合,用于调用存储器中存储的计算机程序并执行本申请实施例第一方面及其第一方面任一可能设计的技术方案;本申请实施例中“耦合”是指两个部件彼此直接或间接地结合。
第三方面,本申请实施例还提供了一种电路***。该电路***可以是一个或多个芯片,比如,片上***(system-on-a-chip,SoC)。该电路***包括:至少一个处理电路;所述至少一个处理电路,用于执行本申请实施例第一方面及其第一方面任一可能设计的技术方案。
第四方面,本申请实施例还提供了一种电子设备,所述电子设备包括执行上述第一方面或者第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第五方面,本申请实施例还提供一种电子设备,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如上述第一方面提供的文件备份方案中的全部或部分方法步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行本申请实施例第一方面及其第一方面任一可能设计的技术方案。
第七方面,本申请实施例的中一种程序产品,包括指令,当所述程序产品在电子设备上运行时,使得所述电子设备执行本申请实施例第一方面及其第一方面任一可能设计的技术方案。
附图说明
图1为本申请一实施例提供的电子设备的硬件结构的示意图;
图2为本申请一实施例提供的电子设备的软件结构的示意图;
图3为本申请一实施例提供的漏洞检测过程的示意图;
图4为本申请一实施例提供的一种漏洞检测方法的流程示意图;
图5为本申请一实施例提供的隐性特征向量的示意图;
图6为本申请一实施例提供的卷积神经网络确定隐性特征向量的示意图;
图7为本申请一实施例提供的机器学习模型的训练过程的示意图。
具体实施方式
下面将结合本申请以下实施例中的附图,对本申请实施例中的技术方案进行详尽描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
以下,先对本申请实施例中涉及的部分用语进行解释说明,以便于本领域技术人员容易理解。
本申请实施例涉及的至少一个,包括一个或者多个;其中,多个是指大于或者等于两个。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本申请实施例提供了一种检测漏洞方法,该方法可以适用于任何电子设备。电子设备诸如手机、平板电脑、可穿戴设备(例如,手表、手环、智能头盔等)、车载设备、智能家居、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等。本申请实施例提供的检测漏洞方法,可以在已知漏洞库中提取漏洞文件的显性特征向量和隐性特征向量;其中,显性特征向量是从漏洞文件中提取的代码相关的特征,隐性特征向量是从显性特征向量中进一步提取出的特征,无法从代码中直观的得到;显性特征向量和隐性特征向量构成联合特征向量,该联合特征向量可以较为准确的且全面的反映漏洞的特性;然后,基于联合特征向量,检测待检测文件是否存在漏洞,以及存在的漏洞类型,提升了漏洞检测的准确性。本申请实施例提供的检测漏洞方法的具体实现过程将在后文介绍。
示例性的,图1示出了电子设备的结构示意图。
如图1所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备充电,也可以用于电子设备与***设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(globalnavigation satellite system,GLONASS),北斗卫星导航***(beidou navigationsatellite system,BDS),准天顶卫星***(quasi-zenith satellite system,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
显示屏194用于显示应用的显示界面等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlight emitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
摄像头193用于捕获静态图像或视频。在一些实施例中,摄像头193可以包括至少一个摄像头,例如一个前置摄像头和一个后置摄像头。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,以及至少一个应用程序(例如爱奇艺应用,微信应用等)的软件代码等。存储数据区可存储电子设备使用过程中所产生的数据(例如图像、视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定电子设备的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备围绕三个轴(即,x,y和z轴)的角速度。
陀螺仪传感器180B可以用于拍摄防抖。气压传感器180C用于测量气压。在一些实施例中,电子设备通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。磁传感器180D包括霍尔传感器。电子设备可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备是翻盖机时,电子设备可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。加速度传感器180E可检测电子设备在各个方向上(一般为三轴)加速度的大小。当电子设备静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备可以利用距离传感器180F测距以实现快速对焦。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备通过发光二极管向外发射红外光。电子设备使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备附近有物体。当检测到不充分的反射光时,电子设备可以确定电子设备附近没有物体。电子设备可以利用接近光传感器180G检测用户手持电子设备贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备是否在口袋里,以防误触。指纹传感器180H用于采集指纹。电子设备可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备对电池142加热,以避免低温导致电子设备异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现与电子设备的接触和分离。
可以理解的是,图1所示的部件并不构成对手机的具体限定,手机还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。以下的实施例中,以图1所示的电子设备为例进行介绍。
图2示出了本申请一实施例提供的电子设备的软件结构框图。如图2所示,电子设备的软件结构可以是分层架构,例如可以将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层(framework,FWK),安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序层可以包括相机、设置、皮肤模块、用户界面(user interface,UI)、三方应用程序等。其中,三方应用程序可以包括微信、QQ、图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
此外,***库还可以包括漏洞检测模块,该漏洞检测模块用于检测待检测文件的是否存在漏洞,以及漏洞类型,其中,待检测文件是电子设备中的任何文件,例如二进制文件等等。其中,漏洞检测模块中可以包括:显性特征提取模块、隐性特征提取模块,显性特征和隐性特征融合模块,漏洞分类识别模块。其中,显性特征提取模块用于提取已知漏洞库中的漏洞文件的显性特征向量,隐性特征提取模块用于提取已知漏洞库中的漏洞文件的隐性特征向量;显性特征和隐性特征融合模块用于融合显性特征向量和隐性特征向量,构成联合特征向量。漏洞分类识别模块用于根据联合特征向量对待检测文件进行漏洞检测,若检测出漏洞类型,则输出该漏洞类型,有助于提升漏洞类型识别的准确性。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。内核层还可以包括衰变损耗值累计程序,用于计算显示屏上每个子块的累计衰败损耗值。
硬件层可以包括各类传感器,例如本申请实施例中涉及的加速度传感器、陀螺仪传感器、触摸传感器等。
下面结合本申请实施例的漏洞检测方法,示例性说明电子设备的软件以及硬件的工作流程。作为一种示例,***库将待检测文件输入到漏洞分类识别模块中,漏洞分类识别模块基于联合特征向量对待检测文件的显性特征和隐性特征进行检测,进而确定待检测文件是否存在漏洞,以及漏洞类型。漏洞分类识别模块将检测出的分类结果输出,通过显示屏显示,或者,通过其他输出方式输出(例如语音输出方式),以提示用户存在漏洞。
下面结合图3和图4介绍本申请实施例中漏洞检测方法的具体实现过程。
值得注意的是,电子设备使用机器学习算法对待检测文件进行漏洞检测的过程,可以包括训练过程和实测过程,训练过程的总体思路为,从漏洞库中的已知漏洞类型的漏洞文件中学习漏洞文件的显性特征向量和隐性特征向量,构成联合特征向量。如图3所示,联合特征向量作为机器学习算法的输入,得到分类结果,然后将识别出的分类结果与已知的分类结果比较,若相似性较高,则训练完成,若相似性较低,则重新训练,直到识别出的分类结果与已知的分类结果相似为止。实测过程的总体思路为,通过已经训练完毕的机器学习模型对待检测文件(待检测文件的漏洞类型未知)进行漏洞识别,以确定待检测文件的漏洞类型。
可选的,电子设备可以在出厂之前对机器学习模型进行训练,即出厂后的电子设备中的机器学习模型是已经经过训练的,可以直接进行实测过程的。或者,电子设备也可以在出厂之后对机器学习模型进行训练,然后使用训练之后的机器学习模型进行实测。以下实施例先介绍实测过程。如图4所示,该流程可以包括:
401,将待检测文件作为机器学习模型的输入,得到分类结果,分类结果是待检测文件中包括的一种或多种漏洞类型的概率;其中,机器学习模型是使用联合特征向量训练之后的机器学习模型,联合特征向量包括从已知漏洞类型的漏洞文件中提取的显性特征向量和隐性特征向量。
需要说明的是,参见图3所示,已知漏洞库中包括一个或多个漏洞文件或者代码片段。这些漏洞文件或代码片段的漏洞类型是事先知道的,所以,电子设备可以从这些漏洞文件或代码片段中提取其显性特征和隐性特征,以使用该显性特征和隐性特征识别其它待检测文件的漏洞类型。
需要说明的是,显性特征向量包括从已知的漏洞库中的漏洞文件中提取出的一个或多个显性特征。显性特征顾名思义是较为明显的特征,例如,从漏洞文件或代码片段中的代码中提取的特征,例如从代码涉及的语法中提取出的特征,或者,从代码中使用的函数类型确定的特征等等。
隐性特征向量包括从所述漏洞文件的函数结构向量V中进一步提取出的一个或多个隐性特征。隐性特征顾名思义是不明显的特征,例如,无法从代码直观得到的特征。示例性的,隐性特征可以是从函数结构向量V中进一步提取出的特征。其中,函数结构向量V表示已知漏洞库中的漏洞文件中存在的编程语言(例如C语言)标准库函数,V=(v1,v2,…vK),其中v1,v2,…vK表示按照执行顺序出现的C语言标准库函数,相同的函数可以只记录一次。具体的,隐性特征向量的确定过程将在后文介绍。
因此,继续参见图3所示,联合特征向量中包括显性特征向量和隐性特征向量,该联合特征向量和待检测文件一并作为机器学习模型的输入,对机器学习模型进行训练,训练之后的机器学习模型可以准确的对待检测文件进行漏洞识别,得到分类结果。其中,对机器学习模型的训练过程将在后文介绍。
示例性的,分类结果例如可以表示为Vw=(p1,p2,…,pN),其中p1-pN为0到1之间的值,p1+…+pN=1。例如,p1为待检测文件中包括第一种漏洞类型的概率,p2为待检测文件中包括第二种漏洞类型的概率,pN为待检测文件中包括第N种漏洞类型的概率。例如,分类结果Vw为(0.1、0.1、0.4、0.3)。可以理解的是,分类结果中每个p对应哪一种漏洞类型可以是事先设置好的,例如,p1为待检测文件中包括第一种漏洞类型的概率,第一种漏洞类型为典型二进制漏洞堆溢出的类型、第二种漏洞类型为栈溢出类型,第三种漏洞类型为格式化字符串类型,第四种漏洞类型为双重释放类型等等。
402,确定分类结果中概率最大值对应的漏洞类型为最终漏洞类型。
例如,分类结果Vw为(0.1、0.1、0.4、0.3),则概率最大值为第三种漏洞类型,即格式化字符串类型。
403,根据最终漏洞类型对应的函数结构向量V,对分类结果进行相似性检测,得到检测结果p。
需要说明的是,如图3所示,漏洞库中包括一个或多个漏洞文件,每个漏洞文件对应的一个函数结构向量V,电子设备可以将一个或多个漏洞文件划分成不同的漏洞类型,如前文所述,漏洞类型包括4种时,可以将漏洞文件划分为4种类型,那么每种漏洞类型对应一个或多个漏洞文件,则对应一个或多个函数结构向量V,电子设备可以确定最终漏洞类型对应的函数结构向量V,例如,V=(v1,v2,…vK)。
示例性的,电子设备可以根据如下公式,确定相似度:
404,比较p是否大于或等于阈值T,若是,则执行405,若否,则执行406。
可选的,阈值T可以是电子设备出厂之前默认设置好的,也可以是用户自定义的,例如,T=0.99。
405,输出该最终漏洞类型。
应理解,相似度p大于阈值T时,说明确定出的最终漏洞类型较为准确,输出所述最终漏洞类型,即待检测文件中存在所述最终漏洞类型。
可选的,电子设备可以在显示屏上输出最终漏洞类型,也可以通过语音的方式输出最终漏洞类型。
406,结束或继续识别下一个待检测文件。
可以理解的是,电子设备确定相似度p小于阈值T之后,可以结束流程,即待检测文件中不包含漏洞,或者,可以进行下一个待检测文件的漏洞检测。
以下实施例介绍,根据函数结构向量V确定隐性特征向量的过程。参见图5所示,函数结构向量V被输入到卷积神经网络。该卷积神经网络中可以包括至少一层卷积层,至少一层池化层,至少一层全连接层。图5中,以两层卷积层、两层池化层,一层全连接层为例。函数结构向量V输入到卷积神经网络,最终的分类结果。具体而言,第一层卷积层对输入的函数结构向量V进行处理,得到第一输出结果,该第一输出结果包括第一层卷积层对函数结构向量V提取出的特征。该第一输出结果作为第二层池化层的输入,得到第二输出结果,该第二输出结果是第二层池化层对第一输出结果进一步提取的新的特征,以此类推,得到最终的分类结果。值得注意的是,本申请将分类结果的上一层的参数作为隐性特征向量,即全连接层的参数作为隐性特征向量。
为了方便理解,图6示出了本申请实施例提供的通过卷积神经网络得到隐性特征向量的过程。如图6所示,函数结构向量V(图中以三个方框为例)输入到卷积层,提取函数结构向量V的特征,得到第一输出结果(图中以四个方框为例),该第一输出结果作为池化层的输入,得到第二输出结果(图6中以四个三角形为例),该第二输出结果作为全连接层1的输入,得到的第三输出结果(图6中以八个圆圈为例),该第三输出结果输入到全连接层2中,得到输出结果即分类结果。值得注意的是,图6中分类结果的上一层,即全连接层2的输入,即图6中圆圈代表的参数即隐性特征向量,该隐性特征向量是将函数结构向量经过前面的每一层提取出的最终的特征。
可以理解的是,图5和图6是以一维卷积神经网络为例进行介绍,本实施例也可以适用于多维卷积神经网络,例如,将多维卷积神经网络中分类结果的上一层作为隐性特征向量,具体的,如果多维卷积神经网络中分类结果的上一层是多维向量,可以通过降维方式,得到一维的隐性特征向量。
需要说明的是,通过卷积神经网络得到的隐性特征向量可以全部用来构成联合特征向量,也可以选择部分构成联合特征向量。例如,通过卷积神经网络得到的隐性特征向量中包括2000个参数,这2000个参数可以全部用来构成联合特征向量,也可以从2000中选择出部分参数来构成联合特征向量。可选的,电子设备可以通过主成分分析(principalcomponents analysis,PCA)方法从隐性特征向量中选择部分参数,选择出的部分参数构成新的隐性特征向量,该新的特征向量和显性特征向量构成联合特征向量。关于PCA方法本申请不多赘述。
以下实施例,结合图3和图7介绍机器学习模型的训练过程。如图7所示,为训练过程的流程示意图。该流程可以包括:
701,从漏洞库中提取漏洞文件的显性特征向量,该显示特征向量包括函数类型向量A和函数结构向量V。
如前文所述,漏洞库中包括一个或多个已知漏洞类型的漏洞文件,电子设备可以提取每个漏洞文件的函数类型向量A和函数结构向量V。例如,某个漏洞文件的函数类型向量A=(函数类型、函数名称、函数调用次数、函数参数类型)。函数结构向量V表示某个漏洞文件中存在的C语言标准库函数,V=(v1,v2,…vn),其中v1,v2,…vn表示所述某个漏洞文件中按照执行顺序依次出现的C语言标准库函数。
702,确定漏洞库中的每个漏洞文件的漏洞类型标签B,漏洞类型标签B表示每个漏洞文件包含的一种或多种漏洞类型。
应理解,漏洞库中具有一个或多个已知漏洞类型的漏洞文件。电子设备可以设置漏洞标签向量B,漏洞类型标签B表示某个漏洞文件包含的漏洞类型,例如,B=(bi),i∈[1,n],n表示所述某个漏洞文件中包括的漏洞类型的个数;当该漏洞文件包含某类漏洞类型时,漏洞类型标签B中,所述某类漏洞类型对应的bi=1,其余参数为0。假设b1表示典型二进制漏洞堆溢出的漏洞类型、b2表示栈溢出的漏洞类型、b3表示格式化字符串的漏洞类型、b4表示双重释放的漏洞类型。若某个漏洞文件中仅包括标识格式化字符串和标识双重释放,不包括典型二进制漏洞堆溢出和标识栈溢出时,则所述某个漏洞文件的漏洞类型B=(b1、b2、b3、b4)=(0,0,1,1)。
703,按照每个漏洞文件的漏洞标签向量B,对漏洞库中的漏洞文件分类。
示例性的,漏洞库中包括10个漏洞文件,每个漏洞文件对应的一个漏洞标签B;每个漏洞文件对应的漏洞标签B可能不同,所以,703可以将10个漏洞文件的漏洞标签B相同,或者相似的若干个漏洞文件作为同一类型的漏洞文件。例如,10个漏洞文件对应10个漏洞标签B,将10个漏洞标签B中所有b1=1的漏洞标签对应的漏洞文件作为同一类的漏洞文件,b1=1即漏洞文件中均包含典型二进制漏洞堆溢出的漏洞。假设同一类型的漏洞文件包括5个,那么后续过程中使用该5个漏洞文件进行训练。
可以理解的是,已知漏洞库中的所有漏洞文件可以被划分为多种漏洞类型,每种漏洞类型可以包括一个或多个漏洞文件,针对每种漏洞类型可以执行后续过程。
704,将漏洞库中属于同一漏洞类型的所有漏洞文件的函数结构向量V构成的集合作为一维卷积神经网络的输入,得到隐性特征向量。
需要说明的是,每个漏洞文件对应一个函数结构向量V,如果属于同一类型的漏洞文件有5个,那么对这5个漏洞文件对应的5个函数结构向量V,这5个函数结构向量V构成集合,进行训练。
如前文所述,通过函数结构向量V作为卷积神经网络得到隐性特征向量的过程可以参见图5和图6的描述,在此不再重复赘述。
可选的,在705之前,电子设备还可以从隐性特征向量中选择部分参数构成最终的隐性特征向量,也就是说,最终的隐性特征向量包含的元素个数少于通过卷积神经网络得到的隐性特征向量的元素个数。具体的选择方式(例如PCA算法)已在前文介绍,在此不多赘述。
705,将隐性特征向量和函数类型向量A作为联合特征向量。
假设函数类型向量A中包括4个参数值(元素),隐性特征向量中包括1500个值,则得到的联合特征向量包括1504个参数值(元素)。
706,将联合特征向量作为机器学习模型的输入,得到分类结果。
示例性的,分类结果可以是Bv=(p1,p2,…,pN),其中p1,p2,…,pN为0到1之间的值,p1+…+pN=1,N为所述漏洞文件中的漏洞类型的个数。例如,分类结果可以是(0.1,0.2,0.4,0.3)。其中,0.1表征漏洞文件是第一种漏洞类型的概率,0.3表征漏洞文件是第二种漏洞类型的概率,0.4表征漏洞文件是第三种漏洞类型的概率,0.4表征漏洞文件是第四种漏洞类型的概率。
707,选择Bv中概率最大的概率值,该概率值对应的漏洞类型为最终漏洞类型。
示例性的,假设分类结果Bv是(0.1,0.2,0.4,0.3),则最大概率值是第三种漏洞类型的概率即0.4;如前文可知,第三种漏洞类型是格式化字符串的漏洞类型,即格式化字符串的漏洞类型是最终漏洞类型。
708,查找最终漏洞类型对应的漏洞文件的函数结构向量V。
需要说明的是,701中每个漏洞文件对应函数结构向量V,702中将漏洞文件划分为不同的漏洞类型,每种漏洞类型中包括一个或多种漏洞文件。最终漏洞类型包括一个或多个漏洞文件,所以,最终漏洞类型对应一个或多个函数结构向量V。
709,确定分类结果与最终漏洞类型对应的漏洞标签B的相似度。
通过如下公式确定分类结果的相似度:
其中,p为相似度;Bv为分类结果;N为Bv中包括的漏洞类型的个数;为最终漏洞类型对应的所有漏洞文件的漏洞标签B的平均值,假设最终漏洞类型对应3个漏洞文件,每个漏洞文件的漏洞标签B为B=(bi),i∈[1,n];则/>为这3个漏洞文件的漏洞标签B的平均值。
710,比较p是否大于或等于阈值T,若是,则结束训练,若否,则执行712。
可以理解的是,阈值T可以是出厂之前设置好的,也可以是用户自定义的,本申请实施例不作限定。值得注意的是,训练过程中使用的阈值T和实测过程中使用的阈值T可以相同,或者不同,本申请实施例不作限定。
712,调整机器学习模型的参数,重新执行706。
可以理解的是,机器学习模型可以包含一个或多个函数,所以,机器学习模型中除去输入参数、还有其它模型参数例如所述一个或多个函数的系数。其中,输入参数可以是待检测文件或联合特征向量。电子设备可以调整其它模型参数,重新执行706-711,若p大于或等于阈值T,则结束训练,否则,继续调整所述其它模型参数,再次重新执行706-711,直达p大于或等于阈值T为止。该示例中,训练过程中,联合特征向量保持不变。
可选的,重新执行706之前,电子设备还可以重新确定联合特征向量。一种可能的方式为,假设705之前,电子设备从通过卷积神经网络得到的隐性特征向量中确定出第一隐性特征向量(主成分分析算法PCA),将第一隐性特征向量和显性特征向量A构成联合特征向量。这种情况下,电子设备可以重新从通过卷积神经网络得到的隐性特征向量中选择第二隐性特征向量,该第二隐性特征向量与第一隐性特征向量不同,然后将第二隐性特征向量和显性特征向量A构成新的联合特征向量,使用该新的联合特征向量继续对机器学习模型进行训练。
另一种可能的方式为,假设705之前,电子设备从通过卷积神经网络得到的隐性特征向量中确定出第一隐性特征向量,将第一隐性特征向量和显性特征向量A构成联合特征向量。那么,电子设备可以继续在第一隐性特征向量中选择第二隐性特征向量,即第二隐性特征向量中的参数个数小于第一隐性特征向量中的参数个数,然后将第二隐性特征向量和显性特征向量A构成新的联合特征向量,使用该新的联合特征向量继续对机器学习模型进行训练。
上述过程介绍电子设备训练机器学习模型的过程。需要说明的是,机器学习算法可以是支持向量机算法,或者其他算法等,本申请实施例不作限定。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,第一获取单元和第二获取单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
为了解释的目的,前面的描述是通过参考具体实施例来进行描述的。然而,上面的示例性的讨论并非意图是详尽的,也并非意图要将本申请限制到所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施例是为了充分阐明本申请的原理及其实际应用,以由此使得本领域的其他技术人员能够充分利用具有适合于所构想的特定用途的各种修改的本申请以及各种实施例。
Claims (17)
1.一种检测漏洞方法,其特征在于,包括:
提取漏洞库中的已知漏洞类型的漏洞文件的联合特征向量,所述联合特征向量包括所述漏洞文件的显性特征向量和隐性特征向量;其中,所述显性特征向量包括与所述漏洞文件的代码相关的显性特征,所述隐性特征向量包括通过卷积神经网络对所述显性特征向量处理得到分类结果的上一层的参数;
基于所述联合特征向量对机器学习模型进行训练;
将待检测文件作为训练之后的机器学习模型的输入,得到第一分类结果Vw;所述第一分类结果Vw中包括所述待检测文件属于每种漏洞类型的概率;
确定所述第一分类结果Vw中概率最大值对应的漏洞类型为所述待检测文件的第一最终漏洞类型。
2.如权利要求1所述的方法,其特征在于,提取漏洞库中的已知漏洞类型的漏洞文件的联合特征向量,包括:
提取所述漏洞文件的显性特征向量,所述显性特征向量包括函数类型向量A和函数结构向量V;所述函数类型向量A包括所述漏洞文件的漏洞类型的相关参数,所述函数结构向量V包括所述漏洞文件中存在的编程语言标准库函数;
根据所述函数结构向量V和所述卷积神经网络,确定隐性特征向量,所述函数类型向量A和所述隐性特征向量构成所述联合特征向量。
3.如权利要求2所述的方法,其特征在于,根据所述函数结构向量V和所述卷积神经网络,确定隐性特征向量,包括:
所述卷积神经网络包括至少一层卷积层,至少一层池化层,至少一层全连接层;
将所述函数结构向量V作为所述卷积神经网络的输入,运行所述卷积神经网络;
将所述卷积神经网络的中所述至少一层全连接层中最后一层全连接层的参数作为所述隐性特征向量。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一分类结果Vw与所述漏洞库中所述第一最终漏洞类型的漏洞文件的函数结构向量V的第一相似度;
若所述第一相似度大于或等于阈值,则确定所述第一最终漏洞文件为所述待检测文件的漏洞类型;
若所述第一相似度小于所述阈值,则确定所述待检测文件不存在漏洞,或者,识别下一个待检测文件的漏洞类型。
6.如权利要求2或3所述的方法,其特征在于,基于所述联合特征向量对机器学习模型进行训练之前,还包括:
根据主成分分析算法从所述隐性特征向量中选择部分参数构成新的隐性特征向量;所述新的隐性特征向量和所述函数类型向量A构成所述联合特征向量。
7.如权利要求1所述的方法,其特征在于,基于所述联合特征向量对机器学习模型进行训练,包括:
将所述联合特征向量作为机器学习模型的输入,得到第二分类结果;所述第二分类结果包括所述联合特征向量中包括的每种漏洞类型的概率;
确定所述第二分类结果中概率最大值对应的漏洞类型为第二最终漏洞类型;
确定所述第二分类结果与所述漏洞库中属于所述第二最终漏洞类型的漏洞文件的漏洞标签B的第二相似度;所述漏洞标签B中包括所述属于所述第二最终漏洞类型的漏洞文件中包括的一种或多个漏洞类型;
若所述第二相似度大于或等于阈值,则训练结束;
若所述第二相似度小于所述阈值,则重新使用所述联合特征向量对所述机器学习模型进行训练。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
多个应用程序;
以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行以下步骤:
提取漏洞库中的已知漏洞类型的漏洞文件的联合特征向量,所述联合特征向量包括所述漏洞文件的显性特征向量和隐性特征向量;其中,所述显性特征向量包括与所述漏洞文件的代码相关的显性特征,所述隐性特征向量包括通过卷积神经网络对所述显性特征向量处理得到分类结果的上一层的参数;
基于所述联合特征向量对机器学习模型进行训练;
将待检测文件作为训练之后的机器学习模型的输入,得到第一分类结果Vw;所述第一分类结果Vw中包括所述待检测文件属于每种漏洞类型的概率;
确定所述第一分类结果Vw中概率最大值对应的漏洞类型为所述待检测文件的第一最终漏洞类型。
10.如权利要求9所述的电子设备,其特征在于,当所述指令被所述电子设备执行时,使得所述电子设备具体执行以下步骤:
提取所述漏洞文件的显性特征向量,所述显性特征向量包括函数类型向量A和函数结构向量V;所述函数类型向量A包括所述漏洞文件的漏洞类型的相关参数,所述函数结构向量V包括所述漏洞文件中存在的编程语言标准库函数;
根据所述函数结构向量V和所述卷积神经网络,确定隐性特征向量,所述函数类型向量A和所述隐性特征向量构成所述联合特征向量。
11.如权利要求10所述的电子设备,其特征在于,当所述指令被所述电子设备执行时,使得所述电子设备具体执行以下步骤:
所述卷积神经网络包括至少一层卷积层,至少一层池化层,至少一层全连接层;
将所述函数结构向量V作为所述卷积神经网络的输入,运行所述卷积神经网络;
将所述卷积神经网络的中所述至少一层全连接层中最后一层全连接层的参数作为所述隐性特征向量。
12.如权利要求9所述的电子设备,其特征在于,当所述指令被所述电子设备执行时,使得所述电子设备还执行以下步骤:
确定所述第一分类结果Vw与所述漏洞库中所述第一最终漏洞类型的漏洞文件的函数结构向量V的第一相似度;
若所述第一相似度大于或等于阈值,则确定所述第一最终漏洞文件为所述待检测文件的漏洞类型;
若所述第一相似度小于所述阈值,则确定所述待检测文件不存在漏洞,或者,识别下一个待检测文件的漏洞类型。
14.如权利要求10或11所述的电子设备,其特征在于,当所述指令被所述电子设备执行时,使得所述电子设备还执行以下步骤:
根据主成分分析算法从所述隐性特征向量中选择部分参数构成新的隐性特征向量;所述新的隐性特征向量和所述函数类型向量A构成所述联合特征向量。
15.如权利要求9所述的电子设备,其特征在于,当所述指令被所述电子设备执行时,使得所述电子设备执行以下步骤:
将所述联合特征向量作为机器学习模型的输入,得到第二分类结果;所述第二分类结果包括所述联合特征向量中包括的每种漏洞类型的概率;
确定所述第二分类结果中概率最大值对应的漏洞类型为第二最终漏洞类型;
确定所述第二分类结果与所述漏洞库中属于所述第二最终漏洞类型的漏洞文件的漏洞标签B的第二相似度;所述漏洞标签B中包括所述属于所述第二最终漏洞类型的漏洞文件中包括的一种或多个漏洞类型;
若所述第二相似度大于或等于阈值,则训练结束;
若所述第二相似度小于所述阈值,则重新使用所述联合特征向量对所述机器学习模型进行训练。
17.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936363.9A CN110866254B (zh) | 2019-09-29 | 2019-09-29 | 一种检测漏洞方法与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936363.9A CN110866254B (zh) | 2019-09-29 | 2019-09-29 | 一种检测漏洞方法与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110866254A CN110866254A (zh) | 2020-03-06 |
CN110866254B true CN110866254B (zh) | 2023-06-30 |
Family
ID=69652585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936363.9A Active CN110866254B (zh) | 2019-09-29 | 2019-09-29 | 一种检测漏洞方法与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866254B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112668013B (zh) * | 2020-12-31 | 2023-04-07 | 西安电子科技大学 | 一种面向Java源码的语句级模式探索的漏洞检测方法 |
CN113742733B (zh) * | 2021-08-09 | 2023-05-26 | 扬州大学 | 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置 |
WO2023092511A1 (en) * | 2021-11-26 | 2023-06-01 | Huawei Technologies Co.,Ltd. | Methods and apparatuses for software vulnerability detection |
CN114329500B (zh) * | 2022-03-09 | 2022-06-17 | 山东卓朗检测股份有限公司 | 基于人工智能的服务器集群安全漏洞检测方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809069A (zh) * | 2015-05-11 | 2015-07-29 | 中国电力科学研究院 | 一种基于集成神经网络的源代码漏洞检测方法 |
US11620471B2 (en) * | 2016-11-30 | 2023-04-04 | Cylance Inc. | Clustering analysis for deduplication of training set samples for machine learning based computer threat analysis |
CN107885999B (zh) * | 2017-11-08 | 2019-12-24 | 华中科技大学 | 一种基于深度学习的漏洞检测方法及*** |
CN108108622B (zh) * | 2017-12-13 | 2021-03-16 | 上海交通大学 | 基于深度卷积网络和控制流图的漏洞检测*** |
CN110008699B (zh) * | 2019-03-19 | 2022-07-01 | 南瑞集团有限公司 | 一种基于神经网络的软件漏洞检测方法及装置 |
CN109977682B (zh) * | 2019-04-01 | 2023-04-07 | 中山大学 | 一种基于深度学习的区块链智能合约漏洞检测方法及装置 |
CN110245496B (zh) * | 2019-05-27 | 2021-04-20 | 华中科技大学 | 一种源代码漏洞检测方法及检测器和其训练方法及*** |
-
2019
- 2019-09-29 CN CN201910936363.9A patent/CN110866254B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110866254A (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113163470B (zh) | 对特定路线上的特定位置进行识别的方法及电子设备 | |
CN110866254B (zh) | 一种检测漏洞方法与电子设备 | |
CN113434288B (zh) | 内存管理的方法及电子设备 | |
WO2021258797A1 (zh) | 图像信息输入方法、电子设备及计算机可读存储介质 | |
CN115333941B (zh) | 获取应用运行情况的方法及相关设备 | |
CN113806469B (zh) | 语句意图识别方法及终端设备 | |
CN115437601B (zh) | 图像排序方法、电子设备、程序产品及介质 | |
CN116052648B (zh) | 一种语音识别模型的训练方法、使用方法及训练*** | |
CN112416984B (zh) | 一种数据处理方法及其装置 | |
CN112527541A (zh) | 一种确定多核处理器中故障计算核的方法及电子设备 | |
CN114942741B (zh) | 数据传输方法及电子设备 | |
CN114666441B (zh) | 一种调用其他设备能力的方法、电子设备、***和存储介质 | |
CN117635466B (zh) | 图像增强方法、装置、电子设备及可读存储介质 | |
CN116522400B (zh) | 图像处理方法和终端设备 | |
CN116795476B (zh) | 一种删除壁纸的方法及电子设备 | |
CN117764853B (zh) | 人脸图像增强方法和电子设备 | |
CN117131213B (zh) | 图像处理方法及相关设备 | |
CN114115772B (zh) | 灭屏显示的方法及装置 | |
CN116301905A (zh) | 数据处理方法以及相关设备 | |
CN117131380A (zh) | 匹配度计算方法及电子设备 | |
CN117972134A (zh) | 音色推荐方法、电子设备和计算机存储介质 | |
CN117130695A (zh) | 一种目标信息的处理方法、装置以及电子设备 | |
CN117708801A (zh) | 一种资源访问方法及电子设备 | |
CN117132984A (zh) | 一种文本识别方法及相关装置 | |
CN118260121A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |