CN116383835A - 基于多安全工具的软件漏洞监测方法、装置、设备及介质 - Google Patents
基于多安全工具的软件漏洞监测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116383835A CN116383835A CN202310658675.4A CN202310658675A CN116383835A CN 116383835 A CN116383835 A CN 116383835A CN 202310658675 A CN202310658675 A CN 202310658675A CN 116383835 A CN116383835 A CN 116383835A
- Authority
- CN
- China
- Prior art keywords
- codes
- vulnerability
- vulnerability analysis
- tool
- analysis result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012544 monitoring process Methods 0.000 title claims abstract description 22
- 238000012038 vulnerability analysis Methods 0.000 claims abstract description 67
- 238000012549 training Methods 0.000 claims abstract description 45
- 238000012360 testing method Methods 0.000 claims abstract description 38
- 238000004458 analytical method Methods 0.000 claims abstract description 33
- 230000003068 static effect Effects 0.000 claims abstract description 17
- 238000012806 monitoring device Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 239000012634 fragment Substances 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000011835 investigation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- TVYLLZQTGLZFBW-ZBFHGGJFSA-N (R,R)-tramadol Chemical compound COC1=CC=CC([C@]2(O)[C@H](CCCC2)CN(C)C)=C1 TVYLLZQTGLZFBW-ZBFHGGJFSA-N 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于多安全工具的软件漏洞监测方法、装置、设备及介质,涉及软件监测技术领域,包括采集存在漏洞的代码,并获取人工分析后得到真实漏洞描述结果;将全部存在漏洞的代码随机划分为训练集和测试集;以生成对抗网络搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;执行预设的安全事件的触发规则,由动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果,本发明用于解决现有技术中随着安全工具的增多,安全工具的部署、使用、维护成为一个所耗费的时间成本和精力成本较高的技术问题。
Description
技术领域
本发明涉及软件监测技术领域,具体而言,涉及一种基于多安全工具的软件漏洞监测方法、装置、设备及介质。
背景技术
安全工具可对系统进行全方面的扫描和检测,其发现潜在的漏洞,并提供修复漏洞的合规性建议,让用户能够快速采取行动来避免更大的损失,对保护系统和应用程序免受安全威胁和攻击方面发挥着重要的作用。但是由于安全工具的功能单一,一个安全工具只会解决一个问题,而随着系统规模的不断扩大,系统潜在问题就会越来越多。为了防止这些问题在未来造成不可预估的损失,就需要随着进程不断地引入各种各样的安全工具,随着安全工具的增多,安全工具的部署、使用、维护成为一个非常耗费时间和精力的工作,甚至会超过系统本身所投入的成本。
发明内容
本发明的目的在于提供一种基于多安全工具的软件漏洞监测方法、装置、设备及介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
第一方面,本申请提供了一种基于多安全工具的软件漏洞监测方法,包括:
采集存在漏洞的代码,并发送存在漏洞的代码到人工端,并获取人工分析后得到真实漏洞描述结果;
将全部存在漏洞的代码随机划分为训练集和测试集,其中,存在漏洞的代码作为输入标签,代码对应的真实漏洞描述结果作为输出标签;
以生成对抗网络搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;
执行预设的安全事件的触发规则,由工具库中的动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;
由工具库中的组件成分分析工具调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果。
第二方面,本申请还提供了一种基于多安全工具的软件漏洞监测方法,包括:
人工标记模块:用于采集存在漏洞的代码,并发送存在漏洞的代码到人工端,并获取人工分析后得到真实漏洞描述结果;
划分模块:用于将全部存在漏洞的代码随机划分为训练集和测试集,其中,存在漏洞的代码作为输入标签,代码对应的真实漏洞描述结果作为输出标签;
模型训练模块:用于以生成对抗网络搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;
扫描模块:用于执行预设的安全事件的触发规则,由工具库中的动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;
分析模块:用于由工具库中的组件成分分析工具调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果。
第三方面,本申请还提供了一种基于多安全工具的软件漏洞监测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述基于多安全工具的软件漏洞监测方法的步骤。
第四方面,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于多安全工具的软件漏洞监测方法的步骤。
本发明的有益效果为:
本发明采用简单的技术手段将多种不同类型的安全工具集成起来,统一管理应用程序的安全状态,减少安全工具的接入成本、降低安全管理的复杂度、提升系统整体的安全性。而对于使用工作人员来说,降低了操作难度和技术要求。
本发明通过构建软件漏洞分析模型,利用所述软件漏洞分析模型对第三方组件进行漏洞排查和分析,自动化输出漏洞分析结果,降低了排查难度,提升了系统的排查能力。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例中所述的基于多安全工具的软件漏洞监测方法流程示意图;
图2为本发明实施例中安全工具的分类示意图;
图3为本发明实施例中应用程序的扫描和分析结果图;
图4为本发明实施例中所述的基于多安全工具的软件漏洞监测装置结构示意图;
图5为本发明实施例中所述的基于多安全工具的软件漏洞监测设备结构示意图。
图中标记:
800、基于多安全工具的软件漏洞监测设备;801、处理器;802、存储器;803、多媒体组件;804、I/O接口;805、通信组件。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1:
本实施例提供了一种基于多安全工具的软件漏洞监测方法。
参见图1,图中示出了本方法包括:
S1.采集存在漏洞的代码,并发送存在漏洞的代码到人工端,并获取人工分析后得到真实漏洞描述结果;
具体的,对采集到的代码进行编号、命名、标记出真实漏洞描述结果,所述漏洞描述结果包括漏洞评分、攻击复杂度、描述文本以及修复建议;
其中采集到的代码包括了自身的属性信息,如:影响范围、影响版本、语言类型以及引用信息。
请参阅表1,表中示出了一部分存在漏洞的代码,在实际操作中,采集到的代码数量越多越好,最少不低于5千条代码:
表1
漏洞编号 | 漏洞名称 | 漏洞评分 | 攻击复杂度 | 描述文本 | 修复建议 |
CWE-120;CWE-119 | Rdist权限许可和访问控制漏洞 | 8.4 | Low | Rdist存在缓冲区溢出漏洞。本地用户可以借助expstr()函数获取根权限。 | freebsd没有固定版本。 |
CWE-120;CWE-119 | FreeBSDseyon 安全漏洞 | 5.9 | Low | FreeBSD是FreeBSD基金会的一套类Unix操作系统。 FreeBSDseyon 存在安全漏洞。该漏洞借助HOME环境变量、-emulator参数、-modems参数或者GUI。 | freebsd没有固定版本。 |
CWE-400 | FreeBSD TCPRST拒绝服务漏洞 | 5.3 | Low | FreeBSD上的TCP RST存在拒绝服务漏洞。 | freebsd没有固定版本。 |
CWE-120;CWE-119 | FreeBSDxmindpath缓冲区溢出漏洞 | 5.9 | Low | FreeBSDxmindpath存在缓冲区溢出漏洞。本地用户可以通过-f参数获得权限。 | freebsd没有固定版本。 |
CWE-94 | 多个供应商Amanda 'runtar'许可漏洞 | 8.4 | Low | 基于多种UNIX操作系统Amanda备份系统的runtar执行具有根权限的tar时存在漏洞。用户可以通过向runtar提供目标文件重写或读取任意文件。 | freebsd没有固定版本。 |
CWE-255 | BSD内核asynchronous I/O设备命令执行漏洞 | 4 | Low | 4.4BSD内核的asynchronous I/O设备设置I/O通知接受者时不检查用户证书,本地用户可以利用该漏洞通过使用某些ioctl和fcntl请求将信号发送至任意进程的ID。 | freebsd没有固定版本。 |
基于以上实施例,本方法还包括:
S2.将全部存在漏洞的代码随机划分为训练集和测试集,其中,存在漏洞的代码作为输入标签,代码对应的真实漏洞描述结果作为输出标签;
本实施例中,将75%的代码划分训练集,将25%的代码划分为测试集,输出标签还应该包括代码编号、代码名称以及代码的属性信息。
基于以上实施例,本方法还包括:
S3.以生成对抗网络(GAN)搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;
具体的,所述步骤S3包括:
S31.由生成器和鉴别器构成初始模型,具体的,采用LSTM作为生成器,采用CNN作为所述鉴别器,所述生成器用于句子编码,对每个特征映射的句子进行最大池化运算。
S32.将训练集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第一漏洞分析结果;
S33.将训练集中代码的真实漏洞分析结果输入至鉴别器,鉴别器对真实漏洞分析结果进行学习后,判断第一漏洞分析结果是否为真;
若判断为真,则所述初始模型训练完成;
否则,所述生成器重新对输入的代码进行学习,直到鉴别器将所述第一漏洞分析结果判断为真,所述判断原理为:
式中,为鉴别器,/>为生成器,/>为生成器根据输入的随机噪声z生成的结果,/>为鉴别器对真实数据集中的数据所产生的判别结果,/>为鉴别器对生成数据产生的判别结果,/>为真实数据集中Y的数学期望,Y为生成器的输入,/>为输入随机噪声中z的数学期望。
当不变时,通过调整/>的参数值使得价值函数V最大,即令/>趋于1,趋于0,即鉴别器将真实漏洞分析结果判断为真,预测漏洞分析结果则判断为假,进行真假二分类。若判断为假,则返回生成器,并进行参数调整,优化后重新生成漏洞分析结果;若判断为真,则将生成的预测漏洞分析结果进行输出。
也说明生成器训练完成。
S34.将测试集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第二漏洞分析结果;
S35.对第二漏洞分析结果与测试集中对应的真实漏洞分析结果进行语义分析,得到第二漏洞分析结果与真实漏洞分析结果的语义差值;
具体的,所述步骤S35包括:
S351.将真实漏洞分析结果作为匹配文本和第二漏洞分析结果作为对照文本;
S352.按照语序遍历匹配文本中的每个词语,并获取每个词语对应的拼音字符串和对应的id,以构建第一索引字符串;
S353.依次将每个词语对应的第一索引字符串插入前缀树中,并记录每个词语的插入次数,得到第一前缀树;
S354.按照语序遍历对照文本的每个词语,并为每个词语建立第二索引字符串,并记录每个词语的出现次数;
S355.在第一前缀树中查找与第二索引字符串匹配的第一索引字符串;
S356.根据相互匹配的第一索引字符串的插入次数和第二索引字符串的出现次数计算得到语义差值。
具体的,所述语义差值的计算方法为:
S36.所述语义差值大于预设值,则初始模型测试完成,得到软件漏洞分析模型,本实施例中,所述预设值设置为0.8。
基于以上实施例,本方法还包括:
S4.执行预设的安全事件的触发规则,由工具库中的动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;
具体的,所述预设的安全事件的触发规则包括:
1)时间触发调用,配置一个应用在特定的时间段执行或特定的时间点定时进行执行;也可配置在每个小时(天、周、月、年)的特定时间循环执行;
2)为接口触发调用,在系统内配置应用所对应的持续构建工具的地址,系统即可自动检测应用的构建行为,当应用进行构建的时候,就会触发安全工具的执行;
3)舆情监测,系统内定时获取各大安全厂商、各个舆情平台的舆情数据,当监测到漏洞爆发的时候,立即触发安全工具的扫描来确保应用的安全。
具体的,所述工具库的建立方法为:
收集若干个安全工具,具体的,所述安全工具包括开源的安全工具(开源静态代码检测工具、开源安全组件成分分析工具、开源API接口渗透测试工具等)和商业化的安全检测工具(奇安信代码卫士、奇安信开源卫士等);
判断安全工具是否为自定义工具,其中所述自定义工具通过自定义脚本来实现不同工具的集成,提供一定程度的自动化,脚本可以基于特定的场景、特定的需求,整合特定的工具和特定的系统;
若否,则获取安全工具的分类和调用地址,并将其存入工具库中,其中,分类类别至少包括静态代码扫描工具、动态程序安全扫描工具以及组件成分分析工具;
若是,则获取安全工具的参数信息,所述参数信息包括代码仓库地址、代码分支、代码管理人信息、代码托管令牌、系统接口URL、静态文件配置、扫描策略以及扫描目标路径等等,根据安全工具的参数信息将安全工具进行分类,并将其存入工具库中,请参阅图2。
具体的,所述步骤S4包括:
S41.调用动态程序安全扫描工具和静态代码扫描工具对应用程序进行扫描,得到第一扫描结果和第二扫描结果;
具体的,如图所示3,所述第一扫描结果包括扫描接口、扫描系统信息、扫描构造参数、扫描初始值、期望值、命中值、调用栈等。
所述第二扫描结果包括代码编辑人、代码编辑时间、代码文件路径、代码文件名称等;
S42.获取第一扫描结果中的应用程序接口,根据应用程序接口关联到对应的代码文件;
S43.构造代码文件的语法树,根据所述语法树关联到第二扫描结果中的起始行、终止行、起始列、终止列,从而确定代码片段;
S44.根据代码片段得到所引用的第三方组件;
本实施例中,首先使用动态检测系统,扫描出应用接口可能存在漏洞的接口URL,接口的URL在代码中表现为一个函数。这时候通过静态代码检测系统,通过代码的语法检测,构造出URL和函数的映射关系,同时构造出代码的语法树。而通过代码语法树,可以获取到代码调用栈,从而依次确定代码片段和第三方组件。具体的,数据的关联路径为:应用程序接口URL => 接口URL对应代码文件 => 代码文件的起始行、终止行、起始列、终止列 =>代码片段所使用或引用的第三方组件 => 第三方组件以及嵌套组件的访问路径;
基于以上实施例,本方法还包括:
S5.由工具库中的组件成分分析工具调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果;
得到漏洞分析结果之后,还需要将第一扫描结果、第二扫描结果以及漏洞分析结果进行数据格式的转换和映射,共同存放在预设的数据结构中,请参阅图3。具体的,根据场景不同,所采用的存储方式不同,对于大数据量,存在较大分析潜力的数据,采用结构化数据库,本实施例所使用的结构化数据库为MongoDB。对于数据量较小、层级较低的数据,使用JSON文件直接于服务器进行保存。其中,结构化服务器的数据更容易进行分析,JSON文件数据更容易进行读取和保存。
对于数据的展现的处理,本实施例使用块状管理,每一个块,都可表现为一个图表,数据来自于存储后的数据。操作人员通过不同的块状配置的拖动,即可配置不同图表的的展示。
实施例2:
如图4所示,本实施例提供了一种基于多安全工具的软件漏洞监测装置,所述装置包括:
码到人工端,并获取人工分析后得到真实漏洞描述结果;
划分模块:用于将全部存在漏洞的代码随机划分为训练集和测试集,其中,存在漏洞的代码作为输入标签,代码对应的真实漏洞描述结果作为输出标签;
模型训练模块:用于以生成对抗网络搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;
扫描模块:用于执行预设的安全事件的触发规则,由工具库中的动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;
分析模块:用于由工具库中的组件成分分析工具调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果。
基于实施例, 模型训练模块包括:
模型构成单元:用于由生成器和鉴别器构成初始模型;
第一生成单元:用于将训练集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第一漏洞分析结果;
判别单元:用于将训练集中代码的真实漏洞分析结果输入至鉴别器,鉴别器对真实漏洞分析结果进行学习后,判断第一漏洞分析结果是否为真;
若判断为真,则所述初始模型训练完成;
否则,所述生成器重新对输入的代码进行学习,直到鉴别器将所述第一漏洞分析结果判断为真。
基于实施例, 模型训练模块还包括:
第二生成单元:用于将测试集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第二漏洞分析结果;
分析单元:用于对第二漏洞分析结果与测试集中对应的真实漏洞分析结果进行语义分析,得到第二漏洞分析结果与真实漏洞分析结果的语义差值;
判断单元:用于所述语义差值大于预设值,则初始模型测试完成,得到软件漏洞分析模型。
基于实施例,分析单元包括:
设置单元:用于将真实漏洞分析结果作为匹配文本和第二漏洞分析结果作为对照文本;
第一构建单元:用于按照语序遍历匹配文本中的每个词语,并获取每个词语对应的拼音字符串和对应的id,以构建第一索引字符串;
插入单元:用于依次将每个词语对应的第一索引字符串插入前缀树中,并记录每个词语的插入次数,得到第一前缀树;
第二构建单元:用于按照语序遍历对照文本的每个词语,并为每个词语建立第二索引字符串,并记录每个词语的出现次数;
查找单元:用于在第一前缀树中查找与第二索引字符串匹配的第一索引字符串;
计算单元:用于根据相互匹配的第一索引字符串的插入次数和第二索引字符串的出现次数计算得到语义差值。
基于实施例,扫描模块包括:
扫描单元:用于调用动态程序安全扫描工具和静态代码扫描工具对应用程序进行扫描,得到第一扫描结果和第二扫描结果;
关联单元:用于获取第一扫描结果中的应用程序接口,根据应用程序接口关联到对应的代码文件;
构造单元:用于构造代码文件的语法树,根据所述语法树关联到第二扫描结果中的起始行、终止行、起始列、终止列,从而确定代码片段;
获取单元:用于根据代码片段得到所引用的第三方组件。
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
实施例3:
相应于上面的方法实施例,本实施例中还提供了一种基于多安全工具的软件漏洞监测设备,下文描述的一种基于多安全工具的软件漏洞监测设备与上文描述的一种基于多安全工具的软件漏洞监测方法可相互对应参照。
图5是根据示例性实施例示出的一种基于多安全工具的软件漏洞监测设备800的框图。如图5所示,该基于多安全工具的软件漏洞监测设备800可以包括:处理器801,存储器802。该基于多安全工具的软件漏洞监测设备800还可以包括多媒体组件803, I/O接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该基于多安全工具的软件漏洞监测设备800的整体操作,以完成上述的基于多安全工具的软件漏洞监测方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该基于多安全工具的软件漏洞监测设备800的操作,这些数据例如可以包括用于在该基于多安全工具的软件漏洞监测设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该基于多安全工具的软件漏洞监测设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,基于多安全工具的软件漏洞监测设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital SignalProcessing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于多安全工具的软件漏洞监测方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的基于多安全工具的软件漏洞监测方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由基于多安全工具的软件漏洞监测设备800的处理器801执行以完成上述的基于多安全工具的软件漏洞监测方法。
实施例4:
相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种基于多安全工具的软件漏洞监测方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的基于多安全工具的软件漏洞监测方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于多安全工具的软件漏洞监测方法,其特征在于,包括:
采集存在漏洞的代码,并发送存在漏洞的代码到人工端,并获取人工分析后得到真实漏洞描述结果;
将全部存在漏洞的代码随机划分为训练集和测试集,其中,存在漏洞的代码作为输入标签,代码对应的真实漏洞描述结果作为输出标签;
以生成对抗网络搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;
执行预设的安全事件的触发规则,由工具库中的动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;
由工具库中的组件成分分析工具调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果。
2.根据权利要求1所述的基于多安全工具的软件漏洞监测方法,其特征在于, 以生成对抗网络搭建初始模型,利用训练集对所述初始模型进行训练,包括:
由生成器和鉴别器构成初始模型;
将训练集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第一漏洞分析结果;
将训练集中代码的真实漏洞分析结果输入至鉴别器,鉴别器对真实漏洞分析结果进行学习后,判断第一漏洞分析结果是否为真;
若判断为真,则所述初始模型训练完成;
否则,所述生成器重新对输入的代码进行学习,直到鉴别器将所述第一漏洞分析结果判断为真。
3.根据权利要求2所述的基于多安全工具的软件漏洞监测方法,其特征在于,利用测试集对所述初始模型进行测试,得到软件漏洞分析模型,包括:
将测试集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第二漏洞分析结果;
对第二漏洞分析结果与测试集中对应的真实漏洞分析结果进行语义分析,得到第二漏洞分析结果与真实漏洞分析结果的语义差值;
所述语义差值大于预设值,则初始模型测试完成,得到软件漏洞分析模型。
4.根据权利要求3所述的基于多安全工具的软件漏洞监测方法,其特征在于,对第二漏洞分析结果与测试集中对应的真实漏洞分析结果进行语义分析,得到第二漏洞分析结果与真实漏洞分析结果的语义差值,包括:
将真实漏洞分析结果作为匹配文本和第二漏洞分析结果作为对照文本;
按照语序遍历匹配文本中的每个词语,并获取每个词语对应的拼音字符串和对应的id,以构建第一索引字符串;
依次将每个词语对应的第一索引字符串插入前缀树中,并记录每个词语的插入次数,得到第一前缀树;
按照语序遍历对照文本的每个词语,并为每个词语建立第二索引字符串,并记录每个词语的出现次数;
在第一前缀树中查找与第二索引字符串匹配的第一索引字符串;
根据相互匹配的第一索引字符串的插入次数和第二索引字符串的出现次数计算得到语义差值。
5.根据权利要求1所述的基于多安全工具的软件漏洞监测方法,其特征在于,动态程序安全扫描工具和静态代码扫描工具对应用程序进行扫描确定应用程序中的第三方组件,包括:
调用动态程序安全扫描工具和静态代码扫描工具对应用程序进行扫描,得到第一扫描结果和第二扫描结果;
获取第一扫描结果中的应用程序接口,根据应用程序接口关联到对应的代码文件;
构造代码文件的语法树,根据所述语法树关联到第二扫描结果中的起始行、终止行、起始列、终止列,从而确定代码片段;
根据代码片段得到所引用的第三方组件。
6.一种基于多安全工具的软件漏洞监测装置,其特征在于,包括:
人工标记模块:用于采集存在漏洞的代码,并发送存在漏洞的代码到人工端,并获取人工分析后得到真实漏洞描述结果;
划分模块:用于将全部存在漏洞的代码随机划分为训练集和测试集,其中,存在漏洞的代码作为输入标签,代码对应的真实漏洞描述结果作为输出标签;
模型训练模块:用于以生成对抗网络搭建初始模型,利用训练集和测试集对所述初始模型进行训练和测试,得到软件漏洞分析模型;
扫描模块:用于执行预设的安全事件的触发规则,由工具库中的动态程序安全扫描工具和静态代码扫描工具分别对应用程序进行扫描,确定应用程序中的第三方组件;
分析模块:用于由工具库中的组件成分分析工具调用软件漏洞分析模型对第三方组件进行分析,得到漏洞分析结果。
7.根据权利要求6所述的基于多安全工具的软件漏洞监测装置,其特征在于,所述模型训练模块包括:
模型构成单元:用于由生成器和鉴别器构成初始模型;
第一生成单元:用于将训练集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第一漏洞分析结果;
判别单元:用于将训练集中代码的真实漏洞分析结果输入至鉴别器,鉴别器对真实漏洞分析结果进行学习后,判断第一漏洞分析结果是否为真;
若判断为真,则所述初始模型训练完成;
否则,所述生成器重新对输入的代码进行学习,直到鉴别器将所述第一漏洞分析结果判断为真。
8.根据权利要求7所述的基于多安全工具的软件漏洞监测装置,其特征在于,所述模型训练模块还包括:
第二生成单元:用于将测试集中的代码依次输入至生成器,所述生成器对输入的代码进行学习后,依次生成与代码对应的第二漏洞分析结果;
分析单元:用于对第二漏洞分析结果与测试集中对应的真实漏洞分析结果进行语义分析,得到第二漏洞分析结果与真实漏洞分析结果的语义差值;
判断单元:用于所述语义差值大于预设值,则初始模型测试完成,得到软件漏洞分析模型。
9.一种基于多安全工具的软件漏洞监测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述基于多安全工具的软件漏洞监测方法的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于多安全工具的软件漏洞监测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310658675.4A CN116383835B (zh) | 2023-06-06 | 2023-06-06 | 基于多安全工具的软件漏洞监测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310658675.4A CN116383835B (zh) | 2023-06-06 | 2023-06-06 | 基于多安全工具的软件漏洞监测方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116383835A true CN116383835A (zh) | 2023-07-04 |
CN116383835B CN116383835B (zh) | 2023-09-19 |
Family
ID=86971660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310658675.4A Active CN116383835B (zh) | 2023-06-06 | 2023-06-06 | 基于多安全工具的软件漏洞监测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116383835B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116720197A (zh) * | 2023-08-09 | 2023-09-08 | 北京比瓴科技有限公司 | 一种对漏洞优先级排列的方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814053A (zh) * | 2010-03-29 | 2010-08-25 | 中国人民解放军信息工程大学 | 一种基于功能模型的二进制代码漏洞发现方法 |
CN102542201A (zh) * | 2011-12-26 | 2012-07-04 | 北京奇虎科技有限公司 | 一种网页中恶意代码的检测方法及系统 |
US20190370473A1 (en) * | 2018-05-30 | 2019-12-05 | Nvidia Corporation | Detecting vulnerabilities to fault injection in computer code using machine learning |
CN111832019A (zh) * | 2020-06-10 | 2020-10-27 | 国家计算机网络与信息安全管理中心 | 基于生成对抗网络的恶意代码检测方法 |
US20210099483A1 (en) * | 2019-07-17 | 2021-04-01 | Jayant Shukla | Runtime detection of injection attacks on web applications via static and dynamic analysis |
CN115525900A (zh) * | 2022-09-23 | 2022-12-27 | 国网山西省电力公司 | 一种代码安全漏洞检查方法、装置、设备及介质 |
CN115577364A (zh) * | 2022-09-22 | 2023-01-06 | 中国电子科技网络信息安全有限公司 | 一种多静态分析工具结果融合的漏洞挖掘方法 |
CN115730309A (zh) * | 2022-11-17 | 2023-03-03 | 软安科技有限公司 | 一种多类型扫描工具源码指标统计方法、存储介质及终端 |
CN116049831A (zh) * | 2022-12-27 | 2023-05-02 | 天翼云科技有限公司 | 一种基于静态分析和动态分析的软件漏洞检测方法 |
-
2023
- 2023-06-06 CN CN202310658675.4A patent/CN116383835B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814053A (zh) * | 2010-03-29 | 2010-08-25 | 中国人民解放军信息工程大学 | 一种基于功能模型的二进制代码漏洞发现方法 |
CN102542201A (zh) * | 2011-12-26 | 2012-07-04 | 北京奇虎科技有限公司 | 一种网页中恶意代码的检测方法及系统 |
US20190370473A1 (en) * | 2018-05-30 | 2019-12-05 | Nvidia Corporation | Detecting vulnerabilities to fault injection in computer code using machine learning |
US20210099483A1 (en) * | 2019-07-17 | 2021-04-01 | Jayant Shukla | Runtime detection of injection attacks on web applications via static and dynamic analysis |
CN111832019A (zh) * | 2020-06-10 | 2020-10-27 | 国家计算机网络与信息安全管理中心 | 基于生成对抗网络的恶意代码检测方法 |
CN115577364A (zh) * | 2022-09-22 | 2023-01-06 | 中国电子科技网络信息安全有限公司 | 一种多静态分析工具结果融合的漏洞挖掘方法 |
CN115525900A (zh) * | 2022-09-23 | 2022-12-27 | 国网山西省电力公司 | 一种代码安全漏洞检查方法、装置、设备及介质 |
CN115730309A (zh) * | 2022-11-17 | 2023-03-03 | 软安科技有限公司 | 一种多类型扫描工具源码指标统计方法、存储介质及终端 |
CN116049831A (zh) * | 2022-12-27 | 2023-05-02 | 天翼云科技有限公司 | 一种基于静态分析和动态分析的软件漏洞检测方法 |
Non-Patent Citations (1)
Title |
---|
李韵;黄辰林;王中锋;袁露;王晓川;: "基于机器学习的软件漏洞挖掘方法综述", 软件学报, no. 07 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116720197A (zh) * | 2023-08-09 | 2023-09-08 | 北京比瓴科技有限公司 | 一种对漏洞优先级排列的方法及装置 |
CN116720197B (zh) * | 2023-08-09 | 2023-11-03 | 北京比瓴科技有限公司 | 一种对漏洞优先级排列的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116383835B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11709854B2 (en) | Artificial intelligence based smart data engine | |
EP4124975A1 (en) | Discovering cyber-attack process model based on analytical attack graphs | |
US20190058719A1 (en) | System and a method for detecting anomalous activities in a blockchain network | |
US20130246290A1 (en) | Machine-Assisted Legal Assessments | |
WO2018235252A1 (ja) | 分析装置、ログの分析方法及び記録媒体 | |
Gomez et al. | A recommender system of buggy app checkers for app store moderators | |
CN108491326B (zh) | 测试行为重组方法、装置及存储介质 | |
CN116383835B (zh) | 基于多安全工具的软件漏洞监测方法、装置、设备及介质 | |
CN105431859A (zh) | 指示恶意软件的信号标记 | |
CN113778864A (zh) | 一种测试用例的生成方法和装置、电子设备和存储介质 | |
CN113051183A (zh) | 一种测试数据的推荐方法、系统、电子设备及存储介质 | |
WO2016188334A1 (zh) | 一种用于处理应用访问数据的方法与设备 | |
CN115803734A (zh) | 使用动作解释的自然语言丰富 | |
US20170302516A1 (en) | Entity embedding-based anomaly detection for heterogeneous categorical events | |
CN114661290A (zh) | 一种脚本错误的处理方法、装置、设备及存储介质 | |
CN114356747A (zh) | 显示内容的测试方法、装置、设备、存储介质及程序产品 | |
CN112817877A (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN113837210A (zh) | 小程序分类方法、装置、设备及计算机可读存储介质 | |
WO2020252880A1 (zh) | 反向图灵验证方法及装置、存储介质、电子设备 | |
US10720073B2 (en) | Dynamic response entry | |
CN114153954A (zh) | 测试用例推荐方法、装置、电子设备及存储介质 | |
CN111598159B (zh) | 机器学习模型的训练方法、装置、设备及存储介质 | |
WO2024116316A1 (en) | Recommending apparatus, recommending method, and non-transitory computer-readable storage medium | |
WO2024116314A1 (en) | Recommending apparatus, recommending method, and non-transitory computer-readable storage medium | |
CN117290890B (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 |