CN115906104A - 一种二次封装后开源组件的安全检测方法及装置 - Google Patents
一种二次封装后开源组件的安全检测方法及装置 Download PDFInfo
- Publication number
- CN115906104A CN115906104A CN202310152319.5A CN202310152319A CN115906104A CN 115906104 A CN115906104 A CN 115906104A CN 202310152319 A CN202310152319 A CN 202310152319A CN 115906104 A CN115906104 A CN 115906104A
- Authority
- CN
- China
- Prior art keywords
- open source
- source component
- similarity
- class
- library
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 40
- 238000009517 secondary packaging Methods 0.000 claims abstract description 132
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000004806 packaging method and process Methods 0.000 claims abstract description 13
- 239000013598 vector Substances 0.000 claims description 249
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000009193 crawling Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提出了一种二次封装后开源组件的安全检测方法及装置,包括:分别建立开源组件漏洞库以及calss文件相似库;获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞,基于该方法,本发明还提出了一种二次封装后开源组件的安全检测装置,实现了经过二次封装后的开源组件安全性的有效检测。
Description
技术领域
本发明涉及组件安全检测领域,尤其是涉及一种二次封装后开源组件的安全检测方法及装置。
背景技术
在微服务、微应用、数据中台、分布式系统中存在很多拆分的服务,在不断迭代升级的过程中,某个技术组件版本升级,依赖包升级导致部分语法或者API(ApplicationProgramming Interface,应用程序编程接口)过期,或者组件修复紧急的漏洞,从而会导致分布式系统下各个服务被动的升级迭代,很容易引发意外的问题。所以对于依赖的框架和组件进行二次封装,可以较大程度降低上述问题的处理成本与风险,同时可以更好的管理和控制技术栈。因此,在系统开发过程中大量的开源组件,会被进行二次封装,然而,针对二次封装后的开源组件安全检测目前存在技术盲点。
现有技术中公开的针对开源组件安全检测的方法一般是,基于java插桩的方法,提取运行系统开源组件特征信息包括版本信息和名称信息,所述将所述特征信息与预设的安全治理规则进行规则匹配分析,得到所述开源组件的安全检测结果,包括:根据所述版本信息和所述名称信息,与预设的安全治理规则中对应的漏洞组件版本信息和漏洞组件名称信息进行匹配,得到漏洞匹配结果;通过所述安全治理规则对所述漏洞匹配结果进行分析,得到漏洞修复建议;但是,此发明只能针对未被二次封装的开源组件,对于经过二次封装后的开源组件(开源组件二次封装后,通过组件名称和版本号无法识别的问题,理论上二次封装的开源组件可以被程序员定义为任何名字)并不能有效检测。
发明内容
本发明为了解决现有技术中存在的问题,创新提出了一种二次封装后开源组件的安全检测方法及装置,有效解决由于现有技术造成无法有效检测二次封装后的开源组件安全性的问题,实现了经过二次封装后的开源组件安全性的有效检测。
本发明第一方面提供了一种二次封装后开源组件的安全检测方法,包括:
分别建立开源组件漏洞库以及calss文件相似库;
获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;
提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
可选地,所述开源组件漏洞库中存储有开源组件信息与漏洞信息之间的对应关系;其中,开源组件信息包括开源组件名称、开源组件版本、开源组件ID;漏洞信息包括国家信息安全漏洞共享平台中漏洞的ID信息、漏洞公开日期、漏洞对应影响产品、漏洞描述、漏洞解决方案、漏洞版本号。
可选地,所述calss文件相似库中存储有开源组件名称、开源组件对应的http地址、在http地址对应下载的开源组件jar文件、开源组件jar文件解压编译后的class文件、解压编译后class文件中的各个语句块的代码块对应的字节码指令的特征向量。
可选地,所述获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件具体是:
获取在运系统的jar文件,对在运系统的jar文件中的配置文件进行解析,得到开源组件清单;
获取开源组件清单中的开源组件名称,根据开源组件名称在已建立的开源组件漏洞库中进行查询;如果在开源组件漏洞库中查询到开源组件名称,提取对应开源组件存在的漏洞;未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件。
可选地,所述提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞具体包括:
提取疑似二次封装开源组件的class文件,基于提取的class文件中字节码指令的执行和跳转情况,获取class文件中各个语句块的代码块对应的字节码指令的特征向量;
基于class文件中各个语句块的代码块对应的字节码指令的特征向量,将转换后的字节码文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
进一步地,所述基于class文件中各个语句块的代码块对应的字节码指令的特征向量,将转换后的字节码文件与已建立的calss文件相似库进行匹配具体包括:
根据特征向量属性的不同,对各个语句块的代码块对应的字节码指令的特征向量进行分类;
将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较;
当特征向量的相似度大于等于预设相似度阈值时,该class文件对应的疑似二次封装开源组件为判定为class文件相似库对应开源组件经过二次打包后的组件。
进一步地,所述分类后的各个语句块的代码块对应的字节码指令的特征向量具体包括:常量值序列向量、函数序列向量、继承类序列向量、调用类序列向量以及代码块序列向量,其中,常量值序列向量为class文件中字节码对应的类中由域类型组成的序列向量;函数序列向量为class文件中字节码对应的类中定义的函数返回值类型组成的序列向量;继承类序列向量为class文件中字节码对应的类所继承的父类名称组成的序列向量;调用类序列向量为class文件中字节码对应的函数调用的被调用的类名、函数名组成的单元组的序列向量;代码块序列向量为class文件中字节码对应的代码块组成的序列向量。
进一步地,所述将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较具体包括:
建立特征向量相似度计算模型,所述特征向量相似度计算模型具体为:
,
其中,S为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中,与class文件相似库中相同类型特征向量中相同的元素数;L为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中,与class文件相似库中相同类型特征向量中不同的元素数;R为class文件相似库中相同类型特征向量,与疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中不同的元素数;V代表两个特征向量的相似度。
进一步地,分别与class文件相似库中对应的特征向量进行相似度比较之后,还包括:
建立特征向量系数,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积,重新定义为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度;其中,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积具体是:
Fsimilarity=(dfvs×vfvs+dmms×vmms+dics×vics+dims×vims+ducs×vucs)×100%×(rfvs×rmms×rics×rims×rucs),
其中,Fsimilarity为重新定义后的疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度;令dfvs为常量值序列向量的权重,vfvs为常量值序列向量的相似度;dmms为函数序列向量的权重,vmms为函数序列向量的相似度;dics为继承类序列向量的权重,vics为继承类序列向量的相似度继承类序列向量;dims为调用类序列向量的权重,vims为调用类序列向量的相似度;ducs为代码块序列向量的权重,vucs为代码块序列向量的相似度;rfvs、rmms、rics、rims、rucs分别为常量值序列向量、函数序列向量、继承类序列向量、调用类序列向量以及代码块序列向量的特征系数。
本发明第二方面提供了一种二次封装后开源组件的安全检测装置,包括:
建立模块,分别建立开源组件漏洞库以及calss文件相似库;
获取模块,获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;
匹配模块,提取疑似二次封装开源组件的class文件,并将class转换为字节码文件,根据转换后的字节码文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
本发明采用的技术方案包括以下技术效果:
1、本发明将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞,有效解决由于现有技术造成无法有效检测二次封装后的开源组件安全性的问题,实现了经过二次封装后的开源组件安全性的有效检测;避免了因为基于漏洞扫描方式的开源组件安全检测方法,使得在生产环境下在运行的业务系统(在运系统)造成可能的宕机、进程假死等问题(基于漏洞的POC观点证明检测,不仅可能会导致在运行系统出现宕机或进程假死等运行故障,而且,在运行环境中的虚拟补丁会主动拦截POC观点证明,在此情况下,会返回无漏洞,但是实际的漏洞依然存在,只是虚拟补丁暂时性屏蔽了漏洞);也避免了因安全措辞限制漏洞扫描的情况下,对二次封装的开源组件进行安全检测,造成漏洞高误报和高漏报(在实际开发过程中配置文件中申明的开源组件版本与实际运行的开源组件版本并不一致,使得误报率和漏报率高)的问题。
2、本发明技术方案中实现了对程序员基于开源组件二次打包情况下,由于继承关系导致漏洞存在的问题,通过字节码文件(class文件)对比,确定二次打包的开源组件属于哪个父系组件(基于哪一个开源组件二次打包获得)及对应的版本;结合父系组件名称和版本号实现对二次打包组件的漏洞发现,弥补了传统漏扫扫描式和版本比对式检测工具无法对二次打包组件的漏洞检测的短板;而且,通过采用字节码文件提取方式,可实现无侵入的情况下对在运行系统的组件漏洞进行预警。
3、本发明技术方案中根据特征向量属性的不同,对各个语句块的代码块对应的字节码指令的特征向量进行分类;将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较;提高了经过二次封装后的开源组件安全性的检测的可靠性。
4、本发明技术方案中分别与class文件相似库中对应的特征向量进行相似度比较之后,还包括:建立特征向量系数,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积,重新定义为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度,进一步地提高了经过二次封装后的开源组件安全性的检测的可靠性。
应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方案中实施例一方法的流程示意图;
图2为本发明方案中实施例一方法中步骤S2的流程示意图;
图3为本发明方案中实施例一方法中步骤S3的流程示意图;
图4为本发明方案中实施例一方法中步骤S32的一流程示意图;
图5为本发明方案中实施例一方法中步骤S32的另一流程示意图;
图6为本发明方案中实施例二装置的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例一
如图1所示,本发明提供了一种二次封装后开源组件的安全检测方法,包括:
S1,分别建立开源组件漏洞库以及calss文件相似库;
S2,获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;
S3,提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
其中,在步骤S1中,建立后的开源组件漏洞库中存储有开源组件信息与漏洞信息之间的对应关系;其中,开源组件信息包括开源组件名称、开源组件版本、开源组件ID;漏洞信息包括国家信息安全漏洞共享平台中漏洞的ID信息、漏洞公开日期、漏洞对应影响产品、漏洞描述、漏洞解决方案、漏洞版本号。
具体地,首先通过爬虫技术采集国家信息安全漏洞共享平台数据;对爬取数据进行格式化处理,包括数据去燥,采集CNVD-ID(国家信息安全漏洞共享平台中漏洞的ID信息)、漏洞公开日期、漏洞对应影响产品、漏洞描述、漏洞解决方案、漏洞版本号。将爬虫采集的漏洞数据格式化后,存入数据库,形成开源组件漏洞库
建立后的calss文件相似库中存储有开源组件名称、开源组件对应的http地址、在http地址对应下载的开源组件jar文件、开源组件jar文件解压编译后的class文件。
具体地,建立class文件相似库主要目的是为了后期将编译后的java源代码得到的class文件与class文件相似库中的代码进行相似度对比时使用。基本方法如下:首先收集常见的java开源组件,可以梳理多个常用的开源组件名称和对应的github网站的http地址;然后使用爬虫对http地址列表进行进行访问并下载开源组件jar文件;然后对下载的jar文件进行自动解压,通过执行批量编译指令获取class文件,得到最终建立的class文件相似库。
其中,如图2所示,步骤S2具体包括:
S21,获取在运系统的jar文件,对在运系统的jar文件中的配置文件进行解析,得到开源组件清单;
S22,获取开源组件清单中的开源组件名称,根据开源组件名称在已建立的开源组件漏洞库中进行查询;
S23,判断在开源组件漏洞库中是否可以查询到开源组件名称,如果判断结果为是,则执行步骤S24;如果判断结果为否,则执行步骤S25;
S24,提取开源组件在开源组件漏洞库中对应存在的漏洞;
S25,将未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件。
其中,在步骤S21-S25中,对在运系统的开源组件进行分析的目的是为识别二次封装的组件做准备,核心是利用class文件相似度分析来判断疑似二次封装开源组件是基于何种开源组件进行二次封装(二次封装前后,漏洞基本一致)。因为class文件相似度分析较耗时,因此要尽量通过组件名称、版本号对开源组件进行识别,最后把不能识别的组件进行class文件相似度分析。具体是:首先拷贝在运系统的jar文件;对在运系统的jar文件(对Maven项目或Gradle项目)中的配置文件进行解析,得到开源组件清单;了解在运系统继承项目(开源组件)父子目录关系和元素中指明需要继承项目的groupId(用户组信息)、artifactId(用户组唯一标识符)和version(版本)信息;将在运系统继承项目(开源组件)父子目录关系和元素中指明需要继承项目的groupId(用户组信息)、artifactId(用户组唯一标识符)和version(版本)信息提取导出成清单;获取开源组件清单中的开源组件名称,根据开源组件名称在已建立的开源组件漏洞库中进行查询;将开源组件清单中组件名称在开源组件漏洞库中进行查询,得到对应开源组件版本存在的漏洞;未能在开源组件漏洞库查询到信息的组件标记为疑似二次封装组件。
其中,如图3所示,步骤S3具体包括:
S31,提取疑似二次封装开源组件的class文件,基于提取的class文件中字节码指令的执行和跳转情况,获取class文件中各个语句块的代码块对应的字节码指令的特征向量;
S32,基于class文件中各个语句块的代码块对应的字节码指令的特征向量,将转换后的字节码文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
其中,在步骤S31中,疑似二次封装开源组件的class文件提取基于java agent技术实现,java agent监视虚拟机ClassLoader(类加载器,用来加载Java类到 Java 虚拟机中的一种加载器)装载字节码过程。JVM虚拟机中ClassLoader通过双亲委派机制(向上委派,向下加载),按照BootstrapClassLoader(启用类加载器)、ExtensionClassLoader(扩展类加载器)、AppClassLoader(应用类加载器或系统类加载器)的层级关系装载字节码文件(class文件),其中AppClassLoader 系统类加载器是直接面向java用户的加载器,它会加载 Classpath(类路径)环境变量里定义的路径中的 jar 包和目录,应用程序代码以及使用的第三方 jar 包通常都是由它来加载的。在java agent技术下,本发明通过JVMTI(Java虚拟机工具接口)接口依附于jvm虚拟机进程之上,监视JVM虚拟机ClassLoader装载字节码过程。通过对findClass、defineClass、defineClassSourceLocation等ClassLoader核心函数的监视,在运行时实时获取到虚拟机装载的类信息包含:类名称、包名称、文件位置等字节码元数据信息,异步去重汇总到分析程序,即可提取得到疑似二次开源封装组件的字节码文件。
通过得到的class文件进行预分析,对疑似二次封装开源组件的class文件中,基于提取的class文件中字节码指令的执行和跳转情况,获取class文件中各个语句块的代码块对应的字节码指令的特征向量。
进一步地,如图4所示,步骤S32中,基于class文件中各个语句块的代码块对应的字节码指令的特征向量,将转换后的字节码文件与已建立的calss文件相似库进行匹配具体包括:
S321,根据特征向量属性的不同,对各个语句块的代码块对应的字节码指令的特征向量进行分类;
S323,将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较;
S325,当特征向量的相似度大于等于预设相似度阈值时,该class文件对应的疑似二次封装开源组件为判定为class文件相似库对应开源组件经过二次打包后的组件。
其中,在步骤S321中,本发明经过实验在综合性能和准确率的前提下对特征向量分为五大类,即分类后的各个语句块的代码块对应的字节码指令的特征向量具体包括:常量值序列向量、函数序列向量、继承类序列向量、调用类序列向量以及代码块序列向量,其中,常量值序列向量为class文件中字节码对应的类中由域类型组成的序列向量;函数序列向量为class文件中字节码对应的类中定义的函数返回值类型组成的序列向量;继承类序列向量为class文件中字节码对应的类所继承的父类名称组成的序列向量;调用类序列向量为class文件中字节码对应的函数调用的被调用的类名、函数名组成的单元组的序列向量;代码块序列向量为class文件中字节码对应的代码块组成的序列向量,代码块序列中包含常见的代码块:if代码块、for循环代码块、while循环代码块、switch代码块等,可以按照代码块在class文件中出现的顺序构成代码块序列向量。
在步骤S323中,将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较具体是:
建立特征向量相似度计算模型,采用树模式匹配对特征向量进行比较,所述特征向量相似度计算模型具体为:
,
其中,S为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中,与class文件相似库中相同类型特征向量中相同的元素数;L为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中,与class文件相似库中相同类型特征向量中不同的元素数;R为class文件相似库中相同类型特征向量,与疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中不同的元素数;V代表两个特征向量的相似度,公式在任何情况下都会得到一个0到1区间的数值,其中V越接近于0,则表示两个特征向量越不相同;当V越接近1,表示两个特征向量越相近。
需要说明的是,本发明实施例中的class文件相似库中也要将收集开源组件解压编译后的class文件中的各个语句块的代码块对应的字节码指令的某一类型的特征向量预先存储在class文件相似库,以便于后期疑似二次封装开源组件class文件中的各个语句块的代码块对应的字节码指令的某一类型的特征向量,与class文件相似库中class文件中的各个语句块的代码块对应的字节码指令的相同类型的特征向量之间,进行相似度对比。
优选地,如图5所示,步骤S323之后,还包括:
S324,建立特征向量系数,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积,重新定义为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度(即特征向量相似度);其中,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积具体是:
Fsimilarity=(dfvs×vfvs+dmms×vmms+dics×vics+dims×vims+ducs×vucs)×100%×(rfvs×rmms×rics×rims×rucs),
其中,Fsimilarity为重新定义后的疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度;令dfvs为常量值序列向量的权重,vfvs为常量值序列向量的相似度;dmms为函数序列向量的权重,vmms为函数序列向量的相似度;dics为继承类序列向量的权重,vics为继承类序列向量的相似度继承类序列向量;dims为调用类序列向量的权重,vims为调用类序列向量的相似度;ducs为代码块序列向量的权重,vucs为代码块序列向量的相似度;rfvs、rmms、rics、rims、rucs分别为常量值序列向量、函数序列向量、继承类序列向量、调用类序列向量以及代码块序列向量的特征系数。
本发明在实验室检测发现可能会出现克隆代码连续的现象,此时需要过滤掉较小的克隆片段。另外对重复特征向量无效的情况下将对class文件相似性产生重大影响,对结果造成失真。因此,本发明引入特征系数,对class文件间相似度乘以特征系数,在向量无效的情况下定义为其权重的倒数,有效时为1。
在步骤S325中,根据实验室多轮测试对比,预设相似度阈值可以为83.29%,即,当疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度,大于等于83.29%时,该class文件对应的疑似二次封装开源组件为判定为class文件相似库对应开源组件经过二次打包后的组件,即二次打包开源组件。此时输出对应的组件名称和版本号,并在开源组件漏洞库中查询是否存在漏洞。
最后,将疑似二次封装开源组件的class文件与class文件相似库中的calss文件进行过滤、合并和聚类操作,当存在漏洞时,生成输出二次打包开源组件的安全检测报告。
本发明将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞,有效解决由于现有技术造成无法有效检测二次封装后的开源组件安全性的问题,实现了经过二次封装后的开源组件安全性的有效检测;避免了因为基于漏洞扫描方式的开源组件安全检测方法,使得在生产环境下在运行的业务系统(在运系统)造成可能的宕机、进程假死等问题(基于漏洞的POC观点证明检测,不仅可能会导致在运行系统出现宕机或进程假死等运行故障,而且,在运行环境中的虚拟补丁会主动拦截POC观点证明,在此情况下,会返回无漏洞,但是实际的漏洞依然存在,只是虚拟补丁暂时性屏蔽了漏洞);也避免了因安全措辞限制漏洞扫描的情况下,对二次封装的开源组件进行安全检测,造成漏洞高误报和高漏报(在实际开发过程中配置文件中申明的开源组件版本与实际运行的开源组件版本并不一致,使得误报率和漏报率高)的问题。
本发明技术方案中实现了对程序员基于开源组件二次打包情况下,由于继承关系导致漏洞存在的问题,通过字节码文件(class文件)对比,确定二次打包的开源组件属于哪个父系组件(基于哪一个开源组件二次打包获得)及对应的版本;结合父系组件名称和版本号实现对二次打包组件的漏洞发现,弥补了传统漏扫扫描式和版本比对式检测工具无法对二次打包组件的漏洞检测的短板;而且,通过采用字节码文件提取方式,可实现无侵入的情况下对在运行系统的组件漏洞进行预警。
本发明技术方案中根据特征向量属性的不同,对各个语句块的代码块对应的字节码指令的特征向量进行分类;将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较;提高了经过二次封装后的开源组件安全性的检测的可靠性。
本发明技术方案中分别与class文件相似库中对应的特征向量进行相似度比较之后,还包括:建立特征向量系数,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积,重新定义为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度,进一步地提高了经过二次封装后的开源组件安全性的检测的可靠性。
实施例二
如图6所示,本发明技术方案还提供了一种二次封装后开源组件的安全检测装置,包括:
建立模块101,分别建立开源组件漏洞库以及calss文件相似库;
获取模块102,获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;
匹配模块103,提取疑似二次封装开源组件的class文件,并将class转换为字节码文件,根据转换后的字节码文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
本发明将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞,有效解决由于现有技术造成无法有效检测二次封装后的开源组件安全性的问题,实现了经过二次封装后的开源组件安全性的有效检测;避免了因为基于漏洞扫描方式的开源组件安全检测方法,使得在生产环境下在运行的业务系统(在运系统)造成可能的宕机、进程假死等问题(基于漏洞的POC观点证明检测,不仅可能会导致在运行系统出现宕机或进程假死等运行故障,而且,在运行环境中的虚拟补丁会主动拦截POC观点证明,在此情况下,会返回无漏洞,但是实际的漏洞依然存在,只是虚拟补丁暂时性屏蔽了漏洞);也避免了因安全措辞限制漏洞扫描的情况下,对二次封装的开源组件进行安全检测,造成漏洞高误报和高漏报(在实际开发过程中配置文件中申明的开源组件版本与实际运行的开源组件版本并不一致,使得误报率和漏报率高)的问题。
本发明技术方案中实现了对程序员基于开源组件二次打包情况下,由于继承关系导致漏洞存在的问题,通过字节码文件(class文件)对比,确定二次打包的开源组件属于哪个父系组件(基于哪一个开源组件二次打包获得)及对应的版本;结合父系组件名称和版本号实现对二次打包组件的漏洞发现,弥补了传统漏扫扫描式和版本比对式检测工具无法对二次打包组件的漏洞检测的短板;而且,通过采用字节码文件提取方式,可实现无侵入的情况下对在运行系统的组件漏洞进行预警。
本发明技术方案中根据特征向量属性的不同,对各个语句块的代码块对应的字节码指令的特征向量进行分类;将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较;提高了经过二次封装后的开源组件安全性的检测的可靠性。
本发明技术方案中分别与class文件相似库中对应的特征向量进行相似度比较之后,还包括:建立特征向量系数,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积,重新定义为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度,进一步地提高了经过二次封装后的开源组件安全性的检测的可靠性。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种二次封装后开源组件的安全检测方法,其特征是,包括:
分别建立开源组件漏洞库以及calss文件相似库;
获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;
提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
2.根据权利要求1所述的一种二次封装后开源组件的安全检测方法,其特征是,所述开源组件漏洞库中存储有开源组件信息与漏洞信息之间的对应关系;其中,开源组件信息包括开源组件名称、开源组件版本、开源组件ID;漏洞信息包括国家信息安全漏洞共享平台中漏洞的ID信息、漏洞公开日期、漏洞对应影响产品、漏洞描述、漏洞解决方案、漏洞版本号。
3.根据权利要求1所述的一种二次封装后开源组件的安全检测方法,其特征是,所述calss文件相似库中存储有开源组件名称、开源组件对应的http地址、在http地址对应下载的开源组件jar文件、开源组件jar文件解压编译后的class文件、解压编译后class文件中的各个语句块的代码块对应的字节码指令的特征向量。
4.根据权利要求1所述的一种二次封装后开源组件的安全检测方法,其特征是,所述获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件具体是:
获取在运系统的jar文件,对在运系统的jar文件中的配置文件进行解析,得到开源组件清单;
获取开源组件清单中的开源组件名称,根据开源组件名称在已建立的开源组件漏洞库中进行查询;如果在开源组件漏洞库中查询到开源组件名称,提取对应开源组件存在的漏洞;未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件。
5.根据权利要求3所述的一种二次封装后开源组件的安全检测方法,其特征是,所述提取疑似二次封装开源组件的class文件,根据提取的class文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞具体包括:
提取疑似二次封装开源组件的class文件,基于提取的class文件中字节码指令的执行和跳转情况,获取class文件中各个语句块的代码块对应的字节码指令的特征向量;
基于class文件中各个语句块的代码块对应的字节码指令的特征向量,将转换后的字节码文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
6.根据权利要求5所述的一种二次封装后开源组件的安全检测方法,其特征是,所述基于class文件中各个语句块的代码块对应的字节码指令的特征向量,将转换后的字节码文件与已建立的calss文件相似库进行匹配具体包括:
根据特征向量属性的不同,对各个语句块的代码块对应的字节码指令的特征向量进行分类;
将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较;
当特征向量的相似度大于等于预设相似度阈值时,该class文件对应的疑似二次封装开源组件为判定为class文件相似库对应开源组件经过二次打包后的组件。
7.根据权利要求6所述的一种二次封装后开源组件的安全检测方法,其特征是,所述分类后的各个语句块的代码块对应的字节码指令的特征向量具体包括:常量值序列向量、函数序列向量、继承类序列向量、调用类序列向量以及代码块序列向量,其中,常量值序列向量为class文件中字节码对应的类中由域类型组成的序列向量;函数序列向量为class文件中字节码对应的类中定义的函数返回值类型组成的序列向量;继承类序列向量为class文件中字节码对应的类所继承的父类名称组成的序列向量;调用类序列向量为class文件中字节码对应的函数调用的被调用的类名、函数名组成的单元组的序列向量;代码块序列向量为class文件中字节码对应的代码块组成的序列向量。
8.根据权利要求7所述的一种二次封装后开源组件的安全检测方法,其特征是,所述将疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的不同类型的特征向量,分别与class文件相似库中对应的特征向量进行相似度比较具体包括:
建立特征向量相似度计算模型,所述特征向量相似度计算模型具体为:
,
其中,S为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中,与class文件相似库中相同类型特征向量中相同的元素数;L为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中,与class文件相似库中相同类型特征向量中不同的元素数;R为class文件相似库中相同类型特征向量,与疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的某一类型的特征向量中不同的元素数;V代表两个特征向量的相似度。
9.根据权利要求8所述的一种二次封装后开源组件的安全检测方法,其特征是,分别与class文件相似库中对应的特征向量进行相似度比较之后,还包括:
建立特征向量系数,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积,重新定义为疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度;其中,获取每一种类型特征向量相似度与每一种类型特征向量系数的乘积,将每一种类型特征向量相似度与每一种类型特征向量系数的乘积具体是:
Fsimilarity=(dfvs×vfvs+dmms×vmms+dics×vics+dims×vims+ducs×vucs)×100%×(rfvs×rmms×rics×rims×rucs),
其中,Fsimilarity为重新定义后的疑似二次封装开源组件的class文件中各个语句块的代码块对应的字节码指令的特征向量,与class文件相似库中对应的特征向量之间的相似度;令dfvs为常量值序列向量的权重,vfvs为常量值序列向量的相似度;dmms为函数序列向量的权重,vmms为函数序列向量的相似度;dics为继承类序列向量的权重,vics为继承类序列向量的相似度继承类序列向量;dims为调用类序列向量的权重,vims为调用类序列向量的相似度;ducs为代码块序列向量的权重,vucs为代码块序列向量的相似度;rfvs、rmms、rics、rims、rucs分别为常量值序列向量、函数序列向量、继承类序列向量、调用类序列向量以及代码块序列向量的特征系数。
10.一种二次封装后开源组件的安全检测装置,其特征是,包括:
建立模块,分别建立开源组件漏洞库以及calss文件相似库;
获取模块,获取开源组件清单,将开源组件清单中开源组件在已建立的开源组件漏洞库中进行查询,未能在开源组件漏洞库查询到的开源组件标记为疑似二次封装开源组件;
匹配模块,提取疑似二次封装开源组件的class文件,并将class转换为字节码文件,根据转换后的字节码文件与已建立的calss文件相似库进行匹配,获取疑似二次封装开源组件对应的二次封装之前的开源组件,以及疑似二次封装开源组件对应的二次封装之前的开源组件的漏洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310152319.5A CN115906104A (zh) | 2023-02-23 | 2023-02-23 | 一种二次封装后开源组件的安全检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310152319.5A CN115906104A (zh) | 2023-02-23 | 2023-02-23 | 一种二次封装后开源组件的安全检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115906104A true CN115906104A (zh) | 2023-04-04 |
Family
ID=86493559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310152319.5A Pending CN115906104A (zh) | 2023-02-23 | 2023-02-23 | 一种二次封装后开源组件的安全检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115906104A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406967A (zh) * | 2023-12-15 | 2024-01-16 | 卓望数码技术(深圳)有限公司 | 组件识别方法、装置、电子设备及存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015936A1 (en) * | 2001-05-22 | 2004-01-22 | Sun Microsystems, Inc. | Dynamic class reloading mechanism |
US20140298472A1 (en) * | 2013-04-01 | 2014-10-02 | The Johns Hopkins University | Method and Apparatus for Automated Vulnerability Detection |
US20150278515A1 (en) * | 2014-03-27 | 2015-10-01 | International Business Machines Corporation | Monitoring an application in a process virtual machine |
CN105338025A (zh) * | 2014-07-21 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 调用组件方法、系统、客户端及集中组件方法和服务器 |
CN109976806A (zh) * | 2019-01-03 | 2019-07-05 | 杭州电子科技大学 | 基于字节码序列匹配的Java语句块克隆检测方法 |
CN112883342A (zh) * | 2021-03-26 | 2021-06-01 | 中国工商银行股份有限公司 | 一种组件管控方法、装置及设备 |
CN112926060A (zh) * | 2021-04-13 | 2021-06-08 | 深圳开源互联网安全技术有限公司 | 一种检测.net项目组件及其漏洞的方法和装置 |
CN113177001A (zh) * | 2021-05-24 | 2021-07-27 | 深圳前海微众银行股份有限公司 | 一种开源组件的漏洞检测方法及装置 |
CN113918956A (zh) * | 2021-10-11 | 2022-01-11 | 广东电力信息科技有限公司 | 一种基于深层分析的开源组件的扫描系统 |
CN113991876A (zh) * | 2021-12-28 | 2022-01-28 | 浙江正泰仪器仪表有限责任公司 | 一种电力终端的监控方法及系统 |
CN114064117A (zh) * | 2021-11-19 | 2022-02-18 | 重庆邮电大学 | 一种基于字节码和神经网络的代码克隆检测方法及系统 |
CN114091031A (zh) * | 2021-10-11 | 2022-02-25 | 奇安信科技集团股份有限公司 | 基于白规则的类加载防护方法及装置 |
CN114385563A (zh) * | 2021-12-31 | 2022-04-22 | 北京北信源软件股份有限公司 | 基于Preload的Hook控制方法及装置 |
CN115080984A (zh) * | 2022-06-30 | 2022-09-20 | Oppo广东移动通信有限公司 | 第三方库文件漏洞检测方法、装置、电子设备及存储介质 |
CN115617395A (zh) * | 2022-10-14 | 2023-01-17 | 浙江工商大学 | 一种融合全局和局部特征的智能合约相似性检测方法 |
-
2023
- 2023-02-23 CN CN202310152319.5A patent/CN115906104A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040015936A1 (en) * | 2001-05-22 | 2004-01-22 | Sun Microsystems, Inc. | Dynamic class reloading mechanism |
US20140298472A1 (en) * | 2013-04-01 | 2014-10-02 | The Johns Hopkins University | Method and Apparatus for Automated Vulnerability Detection |
US20150278515A1 (en) * | 2014-03-27 | 2015-10-01 | International Business Machines Corporation | Monitoring an application in a process virtual machine |
CN105338025A (zh) * | 2014-07-21 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 调用组件方法、系统、客户端及集中组件方法和服务器 |
CN109976806A (zh) * | 2019-01-03 | 2019-07-05 | 杭州电子科技大学 | 基于字节码序列匹配的Java语句块克隆检测方法 |
CN112883342A (zh) * | 2021-03-26 | 2021-06-01 | 中国工商银行股份有限公司 | 一种组件管控方法、装置及设备 |
CN112926060A (zh) * | 2021-04-13 | 2021-06-08 | 深圳开源互联网安全技术有限公司 | 一种检测.net项目组件及其漏洞的方法和装置 |
CN113177001A (zh) * | 2021-05-24 | 2021-07-27 | 深圳前海微众银行股份有限公司 | 一种开源组件的漏洞检测方法及装置 |
CN113918956A (zh) * | 2021-10-11 | 2022-01-11 | 广东电力信息科技有限公司 | 一种基于深层分析的开源组件的扫描系统 |
CN114091031A (zh) * | 2021-10-11 | 2022-02-25 | 奇安信科技集团股份有限公司 | 基于白规则的类加载防护方法及装置 |
CN114064117A (zh) * | 2021-11-19 | 2022-02-18 | 重庆邮电大学 | 一种基于字节码和神经网络的代码克隆检测方法及系统 |
CN113991876A (zh) * | 2021-12-28 | 2022-01-28 | 浙江正泰仪器仪表有限责任公司 | 一种电力终端的监控方法及系统 |
CN114385563A (zh) * | 2021-12-31 | 2022-04-22 | 北京北信源软件股份有限公司 | 基于Preload的Hook控制方法及装置 |
CN115080984A (zh) * | 2022-06-30 | 2022-09-20 | Oppo广东移动通信有限公司 | 第三方库文件漏洞检测方法、装置、电子设备及存储介质 |
CN115617395A (zh) * | 2022-10-14 | 2023-01-17 | 浙江工商大学 | 一种融合全局和局部特征的智能合约相似性检测方法 |
Non-Patent Citations (5)
Title |
---|
KYUNGWOO LEE 等: "Efficient Classloading Strategies for Interprocedural Analyses in the Presence of Dynamic Classloading", <FIFTH INTERNATIONAL WORKSHOP ON DYNAMIC ANALYSIS (WODA \'07)>, pages 281 - 284 * |
吴芳: "一种 Java 字节码保护技术的研究和实现", 《微处理机》, pages 54 - 57 * |
李虎 等: "Java源代码字节码剽窃检测方法及支持系统", 《北京航空航天大学学报》, vol. 36, no. 4, pages 424 - 428 * |
章宗美: "基于 Android 应用的恶意行为检测与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 8, pages 138 - 53 * |
陈芝荣;蒋建峰;姚树春;: "Java类加载器机制与模型", 软件导刊, pages 67 - 68 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117406967A (zh) * | 2023-12-15 | 2024-01-16 | 卓望数码技术(深圳)有限公司 | 组件识别方法、装置、电子设备及存储介质 |
CN117406967B (zh) * | 2023-12-15 | 2024-03-22 | 卓望数码技术(深圳)有限公司 | 组件识别方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108133139B (zh) | 一种基于多运行环境行为比对的安卓恶意应用检测系统 | |
CN105069355B (zh) | webshell变形的静态检测方法和装置 | |
EP3394785B1 (en) | Detecting malicious software | |
US20090133126A1 (en) | Apparatus and method for detecting dll inserted by malicious code | |
US7539978B1 (en) | Method for understanding and testing third party software components | |
US20200012793A1 (en) | System and Method for An Automated Analysis of Operating System Samples | |
CN114500043B (zh) | 基于同源性分析的物联网固件漏洞检测方法及系统 | |
CN111723380B (zh) | 一种检测组件漏洞的方法及装置 | |
CN103778373A (zh) | 病毒检测方法及装置 | |
CN115062309B (zh) | 一种新型电力系统下基于设备固件仿真的漏洞挖掘方法及存储介质 | |
Dai et al. | Behavior-based malware detection on mobile phone | |
CN108509795B (zh) | 一种监控elf文件调用系统函数的方法、装置及存储介质 | |
CN112688966A (zh) | webshell检测方法、装置、介质和设备 | |
CN115906104A (zh) | 一种二次封装后开源组件的安全检测方法及装置 | |
CN105205398A (zh) | 一种基于apk加壳软件动态行为的查壳方法 | |
CN113626823B (zh) | 一种基于可达性分析的组件间交互威胁检测方法及装置 | |
CN114328168B (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
CN114253587A (zh) | 应用程序更新方法、装置、电子设备及可读存储介质 | |
CN111291377A (zh) | 一种应用漏洞的检测方法及系统 | |
CN116305131B (zh) | 脚本静态去混淆方法及系统 | |
US20240054215A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
KR102432649B1 (ko) | 사이버 위협 정보 처리 프로세서, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체 | |
CN115544518A (zh) | 漏洞扫描引擎实现方法、装置、漏洞扫描方法及电子设备 | |
CN114579457A (zh) | 新型电力系统固件运行仿真平台及仿真方法 | |
CN114417347A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230404 |