CN113343223B - Jar包安全监控方法、装置、计算机设备及存储介质 - Google Patents
Jar包安全监控方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113343223B CN113343223B CN202110739203.2A CN202110739203A CN113343223B CN 113343223 B CN113343223 B CN 113343223B CN 202110739203 A CN202110739203 A CN 202110739203A CN 113343223 B CN113343223 B CN 113343223B
- Authority
- CN
- China
- Prior art keywords
- jar package
- engineering
- jar
- package
- safety
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种Jar包安全监控方法、装置、计算机设备及存储介质。该方法包括:执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断当前状态数据是否满足安全监控条件;若满足安全监控条件,则执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级;基于工程依赖Jar包查询系统数据库,获取工程依赖Jar包对应的初始安全等级和Jar包开发信息;若工程依赖Jar包的当前安全等级低于初始安全等级,则生成追溯提醒消息,将追溯提醒消息发送给Jar包开发信息对应的开发终端。该方法可保障保障安全等级校验的处理效率,及时提醒更新应用所述工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种Jar包安全监控方法、装置、计算机设备及存储介质。
背景技术
当前大量企业采用Java编译工具进行产品开发,在利用Java编译工具进行产品开发过程中会不可避免地使用企业内部团队或者第三方企业发布的Jar包,若在产品开发过程中引用到生命周期已经结束的Jar包、生命周期临近结束的Jar包、或者被非法篡改的Jar包、包含致命缺陷或漏洞的Jar包或者多个团队引用的Jar包版本不同,导致开发的Java项目工程无法得到安全保障。当前Java项目工程开发和应用过程中,存在部分工程依赖Jar包在开发时较安全,但在Java项目工程开发完成并上线应用之后,存在特殊原因或者发生的致命缺陷或漏洞,导致Java项目工程中引用的工程依赖Jar包的风险较高,此时,需人工排查所有应用到该工程依赖Jar包的Java项目工程,费时费力且容易出现遗漏,不利于及时排查风险较高的工程依赖Jar包,进而保障Java项目工程的安全有效性。
发明内容
本发明实施例提供一种Jar包安全监控方法、装置、计算机设备及存储介质,以解决现有技术中无法及时有效排除风险较高的工程依赖Jar包所存在的问题。
一种Jar包安全监控方法,包括:
执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断所述当前状态数据是否满足安全监控条件;
若所述当前状态数据满足所述安全监控条件,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
基于所述工程依赖Jar包查询系统数据库,获取所述工程依赖Jar包对应的Jar包汇总数据,所述Jar包汇总数据包括初始安全等级和Jar包开发信息;
若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则生成追溯提醒消息,将所述追溯提醒消息发送给所述Jar包开发信息对应的开发终端。
一种Jar包安全监控装置,包括:
Jar包监听处理模块,用于执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断所述当前状态数据是否满足安全监控条件;
当前安全等级获取模块,用于若所述当前状态数据满足所述安全监控条件,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
Jar包汇总数据获取模块,用于基于所述工程依赖Jar包查询系统数据库,获取所述工程依赖Jar包对应的Jar包汇总数据,所述Jar包汇总数据包括初始安全等级和Jar包开发信息;
追溯提醒消息发送模块,用于若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则生成追溯提醒消息,将所述追溯提醒消息发送给所述Jar包开发信息对应的开发终端。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述Jar包安全监控方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述Jar包安全监控方法。
上述Jar包安全监控方法、装置、计算机设备及存储介质,只在监听到工程依赖Jar包对应的当前状态数据满足安全监控条件时,才需要进行安全等级校验,避免频繁进行安全等级校验,有助于保障安全等级校验的处理效率;可根据工程依赖Jar包查询系统数据库中的Jar包汇总数据,提取初始安全等级和Jar包开发信息,只有在当前安全等级低于初始安全等级时,说明工程依赖Jar包的安全风险由低变高,才生成追溯提醒消息,以提醒开发终端对应的开发人员及时更新应用工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中Jar包安全监控方法的一应用环境示意图;
图2是本发明一实施例中Jar包安全监控方法的一流程图;
图3是本发明一实施例中Jar包安全监控方法的另一流程图;
图4是本发明一实施例中Jar包安全监控方法的另一流程图;
图5是本发明一实施例中Jar包安全监控方法的另一流程图;
图6是本发明一实施例中Jar包安全监控方法的另一流程图;
图7是本发明一实施例中Jar包安全监控方法的另一流程图;
图8是本发明一实施例中Jar包安全监控方法的另一流程图;
图9是本发明一实施例中Jar包安全监控装置的一示意图;
图10是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的Jar包安全监控方法,该Jar包安全监控方法可应用如图1所示的应用环境中。具体地,该Jar包安全监控方法应用在Jar包安全监控系统中,该Jar包安全监控系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于实现对工程依赖Jar包进行安全等级监控,可及时排查风险较高的工程依赖Jar包,进而保障Java项目工程的安全有效性。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种Jar包安全监控方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S201:执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断当前状态数据是否满足安全监控条件;
S202:若当前状态数据满足安全监控条件,则执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级;
S203:基于工程依赖Jar包查询系统数据库,获取工程依赖Jar包对应的Jar包汇总数据,Jar包汇总数据包括初始安全等级和Jar包开发信息;
S204:若工程依赖Jar包的当前安全等级低于初始安全等级,则生成追溯提醒消息,将追溯提醒消息发送给Jar包开发信息对应的开发终端。
其中,Jar包监听事件是系统预先配置的用于实现监听功能的事件。工程依赖Jar包是指在Java项目工程中引用到的Jar包,该工程依赖Jar包可以为企业内部团队自主开发的Jar包,也可以为第三方企业开发的Jar包。系统Jar包仓是与服务器相连的用于存储工程依赖Jar包的仓库。当前状态数据是Jar包监听事件实时监听到的数据。安全监控条件是指预先配置的用于评估是否需要对工程依赖Jar包进行安全监控的条件。
作为一示例,步骤S201中,服务器可执行预先配置的Jar包监听事件,实时监听系统Jar包仓中存储的每一工程依赖Jar包对应的当前状态数据,以便基于该当前状态数据判断是否满足预先配置的安全监控条件;若当前状态数据满足安全监控条件,则服务器可执行后续步骤S202;若当前状态数据不满足安全监控条件,则服务器无需继续执行后续步骤。
例如,服务器可执行定时Jar包监听事件,定时监听系统Jar包仓中每一工程依赖Jar包的当前间隔时间这一当前状态数据,将当前间隔时间与目标间隔时间;若当前间隔时间大于目标间隔时间,则认定当前状态数据满足安全监控条件;若当前间隔时间不大于目标间隔时间,则认定当前状态数据不满足安全监控条件。其中,当前间隔时间是系统当前时间与上一次安全监控时间或者Jar包入仓时间的时间差。上一次安全监控时间是指系统当前时间之前最近一次进行安全监控的时间。Jar包入仓时间是指工程依赖Jar包存储到系统Jar包仓的时间。目标间隔时间是系统预先配置的用于评估是否需要重新进行安全监控的时间。可理解地,在当前间隔时间大于目标间隔时间时,认定当前状态数据满足安全监控条件,以便后续对该工程依赖Jar包进行安全监控,有助于保障工程依赖Jar包安全监控的时效性。
例如,服务器可执行在线Jar包监听事件,在线监听系统Jar包仓中每一工程依赖Jar包对应的官方网站是否发布工程依赖Jar包对应的安全漏洞更新事件,若监听到安全漏洞更新事件,则认定当前状态数据满足安全监控条件;若没有监听到安全漏洞更新事件,则认定当前状态数据不满足安全监控条件。
其中,在仓校验流程是系统预先配置的用于对工程依赖Jar包进行安全校验的处理流程。当前安全等级是指系统当前时刻对工程依赖Jar包进行安全校验所确定的安全等级。当前安全等级可以为禁用安全等级、慎选安全等级、可选安全等级和优选安全等级中的任一种。其中,禁用安全等级是指禁止使用相应的Jar包的安全等级。慎选安全等级是指安全风险较大需要谨慎使用的安全等级。可选安全等级是指安全风险较小可以使用的安全等级。优选安全等级是指安全风险基本可忽略不计的安全等级。评级条件是用于评估满足配置安全等级的条件。
作为一示例,服务器在监听到当前状态数据满足安全监控条件时,可执行预先配置的在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级,此处的当前安全等级是指采用在仓校验流程对工程依赖Jar包进行安全校验所确定的安全等级。可理解地,在系统当前时刻可采用在仓校验流程对工程依赖Jar包进行安全校验,可保障工程依赖Jar包的当前安全等级确定的实时性和准确性,避免在在仓依赖Jar包存储到系统Jar包仓至系统当前时间这一段时间内,发生影响工程依赖Jar包安全性的事件,进而影响当前安全等级确定的准确性。
其中,Jar包汇总数据是系统当前时间之前预先存储在系统数据库中的与工程依赖Jar包相关的数据。Jar包汇总数据包括工程依赖Jar包对应的Jar包开发信息、初始生命周期和初始安全等级等数据。初始安全等级是系统当前时间之前最近一次评估工程依赖Jar包的安全等级。初始安全等级可以为禁用安全等级、慎选安全等级、可选安全等级和优选安全等级中的任一种。初始生命周期是指系统当前时间之前评估确定工程依赖Jar包对应的生命周期。该Jar包开发信息是用于记录工程依赖Jar包对应的Jar包版本号、开发时间、开发团队、主要功能或者其他与工程依赖Jar包相关的信息。
作为一示例,步骤S203中,服务器基于工程依赖Jar包查询系统数据库,获取工程依赖Jar包对应的Jar包汇总数据,从Jar包汇总数据中提取出初始安全等级和Jar包开发信息,以便基于初始安全等级进行风险等级评估,并基于Jar包开发信息进行溯源提醒。
作为一示例,步骤S204中,服务器可将从系统数据库中的Jar包汇总数据中提取出的初始安全等级,与采用在仓校验流程校验出的当前安全等级进行比较;若工程依赖Jar包的当前安全等级低于其对应的初始安全等级,说明工程依赖Jar包的安全风险由低变高,此时,需生成追溯提醒消息,将追溯提醒消息发送给Jar包开发信息对应的开发终端,以提醒开发终端对应的开发人员及时更新应用工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。Java项目工程是采用Java编译工具编译出的可实现特定功能需求的项目工程,具体可以理解为企业开发的特定产品。
例如,服务器在工作依赖Jar包的初始安全等级为可选安全等级,变更为其当前安全等级为慎选安全等级时,需采用慎选安全等级对应的慎选消息提醒模板,生成慎选追溯提醒消息,将慎选追溯提醒消息发送给Jar包开发信息对应的开发终端,以提醒开发终端对应的开发人员及时更新应用工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。
又例如,服务器在工作依赖Jar包的初始安全等级为可选安全等级,变更为其当前安全等级为禁用安全等级时,需采用禁用安全等级对应的禁用消息提醒模板,生成禁用追溯提醒消息,将禁用追溯提醒消息发送给Jar包开发信息对应的开发终端,以提醒开发终端对应的开发人员及时更新应用工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。
本实施例所提供的Jar包安全监控方法,只在监听到工程依赖Jar包对应的当前状态数据满足安全监控条件时,才需要进行安全等级校验,避免频繁进行安全等级校验,有助于保障安全等级校验的处理效率;可根据工程依赖Jar包查询系统数据库中的Jar包汇总数据,提取初始安全等级和Jar包开发信息,只有在当前安全等级低于初始安全等级时,说明工程依赖Jar包的安全风险由低变高,才生成追溯提醒消息,以提醒开发终端对应的开发人员及时更新应用工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。
在一实施例中,如图3所示,步骤S302,即执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级,包括:
S301:基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的初始生命周期,根据初始生命周期和系统当前时间,获取工程依赖Jar包对应的生命周期评估结果;
S302:基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的Jar包开发信息,根据Jar包开发信息判断工程依赖Jar包是否为优化依赖Jar包,获取工程依赖Jar包对应的优化评估结果;
S303:对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
S304:对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
S305:基于工程依赖Jar包触发内部评审请求,基于内部评审请求,获取工程依赖Jar包对应的内部评审结果;
S306:对工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取工程依赖Jar包对应的当前安全等级。
其中,Jar包数据表是预先设置的用于存储在仓依赖Jar包的相关信息的数据表。初始生命周期是指预先存储的在仓依赖Jar包的生命周期,包括起始时间Tb和结束时间Te,是指起始时间Tb与结束时间Te之间的时间周期。生命周期评估结果是系统当前时间对工程依赖Jar包进行生命周期评估的结果。
作为一示例,步骤S301中,服务器可基于工程依赖Jar包查询系统预先存储的用于记录所有在仓依赖Jar包相关信息的Jar包数据表,从Jar包数据表中获取工程依赖Jar包对应的初始生命周期,即获取起始时间Tb和结束时间Te。然后,服务器将系统当前时间Ts与结束时间Te进行比较;若系统当前时间Ts大于结束时间Te,则说明该工程依赖Jar包的生命周期已经结束,获取生命周期已结束的生命周期评估结果;若系统当前时间Ts不大于结束时间Te,则根据结束时间Te与系统当前时间Ts,计算两者的差值,确定为生成剩余生命周期Tm。接着,服务器可将剩余生命周期Tm与系统预先配置的至少一个时间阈值进行比较,根据剩余生命周期Tm与至少一个时间阈值的比较结果,获取生命周期评估结果。例如,可设置至少一个时间阈值包括第一时间阈值T1(如6个月)、第二时间阈值T2(如1年)和第三时间阈值T3(2年);若剩余生命周期Tm<第一时间阈值T1(如6个月),则获取生命周期临近结束的生命周期评估结果;若第一时间阈值T1(如6个月)≤剩余生命周期Tm<第二时间阈值T2(如1年),则获取生命周期距离结束时间较近的生命周期评估结果;若第二时间阈值T2(如1年)≤剩余生命周期Tm<第三时间阈值T3(2年),则获取生命周期距离结束时间较久的生命周期评估结果;若剩余生命周期Tm≥第三时间阈值T3(2年),则获取生命周期较长的生命周期评估结果。
Jar包开发信息是与在仓依赖Jar包的开发相关的信息。优化依赖Jar包是指对初始版本Jar包进行优化改进之后的依赖Jar包。
作为一示例,步骤S302中,服务器可基于工程依赖Jar包查询系统预先存储的用于记录所有在仓依赖Jar包相关信息的Jar包数据表,从Jar包数据表中获取工程依赖Jar包对应的Jar包开发信息,以便根据该Jar包开发信息判断工程依赖Jar包是否为最新经过优化改进的优化依赖Jar包,从而获取工程依赖Jar包对应的优化评估结果,该优化评估结果包括为优化依赖Jar包和不为优化依赖Jar包两种。
作为一示例,步骤S303中,服务器可基于工程依赖Jar包的Jar包版本号进行来源检测,以便从依据Jar包版本号从相应的官方网络下载相应的官方版本Jar包;基于工程依赖Jar包和官方版本Jar包进行比较处理,以确定工程依赖Jar包是否为官方发布的Jar包;若工程依赖Jar包为官方版本Jar包,则获取来源合法的来源检测结果;若工程依赖Jar包不为官方版本Jar包,则获取来源非法的来源检测结果。本示例中,服务器在获取到的来源检测结果为来源非法时,还可向Java项目工程对应的开发终端发送内部来源评审请求,获取开发终端反馈的来源评审结果,进而将来源检测结果为来源非法的工程依赖Jar包,进一步划分为来源非法且内部评审通过的来源检测结果,或者获取来源非法且内部评估不通过的来源检测结果。
作为一示例,步骤S304中,服务器可采用Jar包漏洞检测工具,包括但不限于Dependency-Check、NVD和CVSS等,对工程依赖Jar包进行安全检测,可快速获取工程依赖Jar包对应的安全检测结果。该工程依赖Jar包对应的安全检测结果包括无已知缺陷或漏洞、以及有已知缺陷或漏洞两种情况。本示例中,服务器在获取到的安全检测结果为有已知缺陷或漏洞时,还可向Java项目工程对应的开发终端发送内部安全评审请求,获取开发终端反馈的安全评审结果,进而将安全检测结果为有已知缺陷或漏洞的工程依赖Jar包进一步划分为如下三种情况:其一为有已知缺陷或漏洞,且需要禁止使用的安全检测结果;其二为有已知缺陷或漏洞,但可有限使用的安全检测结果;其三为有已知缺陷或漏洞,但不影响使用的安全检测结果。
其中,内部评审请求是用于查询企业内部或者其他对工程依赖Jar包的内部评估的请求。
作为一示例,步骤S305中,服务器基于工程依赖Jar包的Jar包开发信息中的Jar包版本号,生成内部评审请求,将内部评审请求发送给Java项目工程对应的开发终端,获取开发终端反馈的工程依赖Jar包对应的内部评审结果,该内部评审结果是用于反映是否需要对工程依赖Jar包进行安全等级升级或降级处理的结果。
作为一示例,步骤S306中,服务器可基于工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,具体基于工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果,查询系统预先配置的安全等级对照表,从安全等级对照表中,将与工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果相匹配的配置安全等级,确定工程依赖Jar包对应的当前安全等级。
该安全等级对照表为预先记录不同配置安全等级对应的评级条件的数据表。本示例中,配置安全等级包括禁用安全等级、慎选安全等级、可选安全等级和优选安全等级这四种。其中,禁用安全等级是指禁止使用相应的Jar包的安全等级。慎选安全等级是指安全风险较大需要谨慎使用的安全等级。可选安全等级是指安全风险较小可以使用的安全等级。优选安全等级是指安全风险基本可忽略不计的安全等级。评级条件是用于评估满足配置安全等级的条件。
例如,若生命周期评估结果为生命周期已结束或者生命周期临近结束(即剩余生命周期Tm<第一时间阈值T1)、来源检测结果为来源非法且内部评估不通过、安全检测结果为有已知缺陷或漏洞且需要禁止使用、或者内部评审结果为需要禁止使用等评估条件中的至少一个,即可确定该工程依赖Jar包对应的当前安全等级为禁用安全等级。
例如,若生命周期评估结果为生命周期距离结束时间较近(即若第一时间阈值T1≤剩余生命周期Tm<第二时间阈值T2)、来源检测结果为来源非法且内部评审通过、安全检测结果为有已知缺陷或漏洞但可有限使用、或者内部评审结果为需要谨慎使用等评估条件中的至少一个,即可确定该工程依赖Jar包对应的当前安全等级为慎选安全等级。
例如,若生命周期评估结果为生命周期距离结束时间较近(即若第二时间阈值T2≤剩余生命周期Tm<第三时间阈值T3)、来源检测结果为来源非法且内部评审通过、安全检测结果为有已知缺陷或漏洞但不影响使用、且内部评审结果为可以选择使用等评估条件时,即可确定该工程依赖Jar包对应的当前安全等级为可选安全等级。
例如,若生命周期评估结果为生命周期较长(即若剩余生命周期Tm≥第三时间阈值T3)、内部评审结果为优先选择使用、优化评估结果为不为优化依赖Jar包等评估条件时,即可确定该工程依赖Jar包对应的当前安全等级为优选安全等级。
本实施例所提供的Jar包安全监控方法,分别获取对工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果,然后根据所有评估结果进行综合评估,可保障获取到的工程依赖Jar包的准确性、全面性和有效性,有助于保障基于所有工程依赖Jar包形成的Java项目工程的质量,避免因工程依赖Jar包影响Java项目工程的开发进度和质量。
在一实施例中,如图4所示,步骤S204,即若工程依赖Jar包的当前安全等级低于初始安全等级,则生成追溯提醒消息,包括:
S401:若工程依赖Jar包的当前安全等级低于初始安全等级,则基于工程依赖Jar包查询系统数据库,确定引用工程依赖Jar包的Java项目工程;
S402:获取Java项目工程对应的项目当前状态;
S403:若Java项目工程对应的项目当前状态为在用状态,则生成追溯提醒消息;
S404:若Java项目工程对应的项目当前状态为停用状态,则无需生成追溯提醒消息。
作为一示例,步骤S401中,服务器在工程依赖Jar包的当前安全等级低于其对应的初始安全等级时,认定工程依赖Jar包的安全风险由低变高,此时,需基于工程依赖Jar包查询系统数据库,即基于工程依赖Jar包的Jar包开发信息查询系统数据库,从系统数据库中获取引用该工程依赖Jar包的的Java项目工程,以便确定是否需要对相应的Java项目工程进行追溯提醒。
作为一示例,步骤S402中,服务器在确定引用当前安全等级低于初始安全等级的工程依赖Jar包的Java项目工程之后,需查询该Java项目工程的项目当前状态,具体可通过查询该Java项目工程对应的官方网站获取相应的项目当前状态。该项目当前状态是用于反映Java项目工程当前是否处于在用状态。一般来说,项目当前状态可以为在用状态和停用状态。在用状态是指某一Java项目工程处于正常使用的状态。停用状态是指某一Java项目工程处于停止使用的状态。
作为一示例,步骤S403中,服务器在某一Java项目工程对应的项目当前状态为在用状态时,认定当前有用户正在使用该Java项目工程,如不及时更新调整该Java项目工程中引用的当前安全等级低于初始安全等级的工程依赖Jar包,可能会导致严重的安全问题,因此,需生成追溯提醒消息,将追溯提醒消息发送给Jar包开发信息对应的开发终端,以提醒开发终端对应的开发人员及时更新应用工程依赖Jar包的Java项目工程,保障Java项目工程的安全可靠性。
作为一示例,步骤S404中,服务器在某一Java项目工程对应的项目当前状态为停用状态时,认定当前没有用户使用该Java项目工程时,不会出现因引用当前安全等级低于初始安全等级的工程依赖Jar包而导致的安全问题,因此,可无需生成追溯提醒消息,以达到节省处理时间和简化处理过程的目的。
在一实施例中,如图5所示,步骤S204,即若工程依赖Jar包的当前安全等级低于初始安全等级,则生成追溯提醒消息,包括:
S501:若工程依赖Jar包的当前安全等级低于初始安全等级,则基于工程依赖Jar包查询系统Jar包仓,获取与工程依赖Jar包功能相同的推荐依赖Jar包,推荐依赖Jar包的当前安全等级为可选安全等级或者优选安全等级;
S502:基于推荐依赖Jar包,生成追溯提醒消息。
其中,推荐依赖Jar包为与工程依赖Jar包功能相同但其安全等级较好的Jar包。
作为一示例,步骤S501中,服务器在工程依赖Jar包的当前安全等级低于初始安全等级,认定工程依赖Jar包的安全风险由低变高,例如,工程依赖Jar包的初始安全等级为可选安全等级或者优选安全等级中的任一个,而工程依赖Jar包的当前安全等级为禁用安全等级或者慎选安全等级中的任一个时,需基于工程依赖Jar包的Jar包开发信息查询系统Jar包仓,从系统Jar包仓中获取与工程依赖Jar包相匹配的推荐依赖Jar包,该推荐依赖Jar包为与工程依赖Jar包功能相同但其当前安全等级为可选安全等级或者优选安全等级,相比而言,推荐依赖Jar包更安全。
作为一示例,步骤S502中,服务器可基于推荐依赖Jar包,采用预先配置的提醒消息模板,对推荐依赖Jar包进行处理,以形成追溯提醒消息,以将追溯提醒消息发送到开发Java项目工程对应的开发人员所在的开发终端,以使开发人员及时了解Java项目工程的中的某一工程依赖Jar包的当前安全等级低于初始安全等级的情况,并决定是否需要采用安全等级较高的推荐依赖Jar包替换安全等级较低的工程依赖Jar包,以保障Java项目工程的安全性以及追溯更新效率。
在一实施例中,如图6所示,步骤S201之前,即执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断当前状态数据是否满足安全监控条件之前,Jar包安全监控方法还包括:
S601:获取基于Java编译工具开发的Java项目工程;
S602:对Java项目工程进行编译处理,获取Java项目工程对应的工程依赖Jar包和工程依赖Jar包对应的Jar包开发信息;
S603:执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的初始安全等级和初始生命周期;
S604:将工程依赖Jar包存储在系统Jar包仓,将Jar包开发信息、初始安全等级和初始生命周期确定为Jar包汇总数据,将Jar包汇总数据存储到系统数据库中。
作为一示例,步骤S601中,企业在通过Java编译工具开发的某一Java项目工程后,均需通过客户端向服务器上传基于Java编译工具开发的Java项目工程,使服务器可获取基于Java编译工具开发的Java项目工程,对该Java项目工程进行安全校验,并提取该Java项目工程所引用的工程依赖Jar包,以便后续根据工程依赖Jar包进行安全校验的校验结果,对Java项目工程进行及时追溯处理,以保障Java项目工程的安全性。
作为一示例,步骤S602中,服务器在获取到基于Java编译工具开发的Java项目工程之后,需先对Java项目工程进行编译处理,从Java项目工程中,提取到该Java项目工程所引用的N个工程依赖Jar包,N为Java项目工程所引用的工程依赖Jar包的数量,N≥1。本示例中,服务器在获取到Java项目工程所引用的N个工程依赖Jar包,每一工程依赖Jar包对应一Jar包开发信息。
本示例中,步骤S602,即对Java项目工程进行编译处理,获取Java项目工程对应的工程依赖Jar包,包括:
(1)生成Java项目工程对应的洁净编译环境。其中,洁净编译环境是指系统当前时刻没有Jar包缓存在其中的编译环境。本示例中,服务器在获取到基于Java编译工具开发的Java项目工程之后,需生成创建与该Java项目工程相对应的洁净编译环境,以便后续在该洁净编译环境中对Java项目工程进行编译,保障所获取到的Java项目工程对应的工程依赖Jar包没有受到其他在先缓存的其他Java项目工程对应的工程依赖Jar包的干扰,有助于保障获取到的Java项目工程对应的工程依赖Jar包的可靠性。
(2)在洁净编译环境中,对Java项目工程进行编译,将Java项目工程对应的工程依赖Jar包下载到洁净编译环境对应的缓存目录,将工程依赖Jar包对应的Jar包开发信息存储到缓存目录对应的Jar包依赖树中。服务器在生成该Java项目工程对应的洁净编译环境之后,可在该洁净编译环境中对Java项目工程进行编译,以将Java项目工程对应的工程依赖Jar包下载到洁净编译环境对应的缓存目录,并将每一工程依赖Jar包对应的Jar包开发信息存储到缓存目录对应的Jar包依赖树中,以便根据Jar包依赖树,可快速准确地钻取到所有工程依赖Jar包对应的Jar包开发信息,以便利用工程依赖Jar包对应的Jar包开发信息进行安全校验。本示例中,Java编译工具可以为但不限于ant、maven、gradle或者make中的任一种,在创建好的洁净编译环境中对Java项目工程进行编译,其编译过程中都会下载Java项目工程中所有的工程依赖Jar包到该洁净编译环境的缓存目录,并将工程依赖Jar包对应的Jar包开发信息缓存到Jar包依赖树中,以便后续根据该Jar包依赖树,可以轻易地钻取到所有工程依赖Jar包对应的Jar包开发信息,保障Jar包开发信息的获取效率,有助于提高对Java项目工程进行安全校验的效率。
作为一示例,步骤S603中,服务器在查询系统Jar包仓,确定系统Jar包仓不存在与工程依赖Jar包相对应的在仓依赖Jar包时,执行预先配置的新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的初始安全等级。然后,根据工程依赖Jar包对应的初始安全等级,查询相应的对照表,获取工程依赖Jar包对应的初始生命周期。此处的初始安全等级是指采用新增校验流程对工程依赖Jar包进行安全校验所确定的安全等级。可理解地,服务器执行新增校验流程进行工程依赖Jar包进行全面安全校验,在新增校验流程校验确定工程依赖Jar包的初始安全等级为校验通过时,例如,其初始安全等级为可选安全等级或者优化安全等级时时,可将工程依赖Jar包存储到系统Jar包仓中,以便后续作为在仓依赖Jar包,对系统当前时间以后接收到的Java项目工程中的工程依赖Jar包进行匹配处理。
作为一示例,步骤S604中,服务器需将工程依赖Jar包存储在系统Jar包仓,其存储过程具体包括:判断工程依赖Jar包为系统Jar包仓中已存储的在仓依赖Jar包;若工程依赖Jar包为在仓依赖Jar包,则无需重复存储;若工程依赖Jar包不为在仓依赖Jar包,则将工程依赖Jar包存储到系统Jar包仓中,以实现对所有工程依赖Jar包进行统一管理,以保障后续对工程依赖Jar包进行安全监控的有效性。
作为一示例,步骤S604中,服务器在将工程依赖Jar包存储在系统Jar包仓之后,还需将Jar包开发信息、初始安全等级和初始生命周期确定为Jar包汇总数据,将Jar包汇总数据存储到系统数据库中。可理解地,服务器将工程依赖Jar包对应的Jar包开发信息、初始生命周期和初始安全等级,确定为工程依赖Jar包对应的Jar包汇总数据,将Jar包汇总数据存储到系统数据库中,以便在系统当前时间之后,可基于该工程依赖Jar包对应的初始生命周期和初始安全等级,对工程依赖Jar包进行溯源,从而保障工程依赖Jar包的安全可追溯性。
在一实施例中,如图7所示,步骤S603,即执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的初始安全等级,包括:
S701:对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
S702:对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
S703:对工程依赖Jar包进行性能检测,获取工程依赖Jar包对应的性能检测结果;
S704:对工程依赖Jar包进行功能检测,获取工程依赖Jar包对应的功能检测结果;
S705:对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的初始安全等级和初始生命周期。
作为一示例,步骤S701中,服务器可基于工程依赖Jar包的Jar包版本号进行来源检测,以便从依据Jar包版本号从相应的官方网络下载相应的官方版本Jar包;基于工程依赖Jar包和官方版本Jar包进行比较处理,以确定工程依赖Jar包是否为官方发布的Jar包;若工程依赖Jar包为官方版本Jar包,则获取来源合法的来源检测结果;若工程依赖Jar包不为官方版本Jar包,则获取来源非法的来源检测结果。本示例中,服务器在获取到的来源检测结果为来源非法时,还可向Java项目工程对应的开发终端发送内部来源评审请求,获取开发终端反馈的来源评审结果,进而将来源检测结果为来源非法的工程依赖Jar包,进一步划分为来源非法且内部评审通过的来源检测结果,或者获取来源非法且内部评估不通过的来源检测结果。
作为一示例,步骤S702中,服务器可采用Jar包漏洞检测工具,包括但不限于Dependency-Check、NVD和CVSS等,对工程依赖Jar包进行安全检测,可快速获取工程依赖Jar包对应的安全检测结果。该工程依赖Jar包对应的安全检测结果包括无已知缺陷或漏洞、以及有已知缺陷或漏洞两种情况。本示例中,服务器在获取到的安全检测结果为有已知缺陷或漏洞时,还可向Java项目工程对应的开发终端发送内部安全评审请求,获取开发终端反馈的安全评审结果,进而将安全检测结果为有已知缺陷或漏洞的工程依赖Jar包进一步划分为如下三种情况:其一为有已知缺陷或漏洞,且需要禁止使用的安全检测结果;其二为有已知缺陷或漏洞,但可有限使用的安全检测结果;其三为有已知缺陷或漏洞,但不影响使用的安全检测结果。可理解地,在工程依赖Jar包的安全检测结果为有已知缺陷或漏洞时,还可记录已知缺陷或漏洞的数量和严重等级,以便后续根据该数量和严重等级进行综合评分。
作为一示例,步骤S703中,服务器对工程依赖Jar包进行性能检测,获取工程依赖Jar包对应的性能检测结果,具体检测工程依赖Jar包是否满足特定的性能场景,即检测其能否满足Java项目工程中限定的性能场景,如CPU资源或者网络资源限定的特定场景,以获取性能检测结果。性能检测结果包括检测通过和检测不通过两种。
作为一示例,步骤S704中,服务器对工程依赖Jar包进行功能检测,以检测该工程依赖Jar包是否能够满足其需要实现特定功能,获取工程依赖Jar包对应的功能检测结果,该功能检测结果包括检测通过和检测不通过两种。
作为一示例,步骤S705中,服务器对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,具体可以将来源检测结果、安全检测结果、性能检测结果和功能检测结果,与系统预先配置的安全等级对照表进行匹配处理,将与来源检测结果、安全检测结果、性能检测结果和功能检测结果相匹配的评估条件对应的配置安全等级,确定为工程依赖Jar包对应的初始安全等级,其处理过程与步骤S306类似,为避免重复,此处不一一赘述。然后,根据工程依赖Jar包对应的初始安全等级,查询预先配置的等级生命周期对照表,获取初始安全等级对应的初始生命周期。
本实施例所提供的Jar包安全监控方法,分别获取工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果,然后根据所有检测结果进行综合评估,可保障获取到的工程依赖Jar包的准确性、全面性和有效性,有助于保障基于所有工程依赖Jar包形成的Java项目工程的质量,避免因工程依赖Jar包影响Java项目工程的开发进度和质量。
在一实施例中,如图8所示,步骤S705,即对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的初始安全等级和初始生命周期,包括:
S801:对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的综合评分分值;
S802:根据工程依赖Jar包对应的综合评分分值查询评分等级对照表,将综合评分分值对应的配置安全等级,确定为工程依赖Jar包对应的初始安全等级;
S803:根据工程依赖Jar包对应的综合评分分值查询评分周期对照表,获取综合评分分值对应的配置生命周期,根据配置生命周期,确定工程依赖Jar包对应的初始生命周期。
作为一示例,步骤801中,服务器可以依据来源检测结果、安全检测结果、性能检测结果和功能检测结果,查询检测评分表,获取来源检测结果、安全检测结果、性能检测结果和功能检测结果这几个检测结果对应的当前检测评分,再将所有检测结果对应的当前检测评分与其预先配置的预设检测权重进行加权计算,确定综合评分分值。该检测评分表是用于反映不同检测结果对应的检测评分的对照表
其中,评分等级对照表是用于反映不同综合评分分值与对应的配置安全等级之间对应关系的对照表。
作为一示例,步骤S802中,服务器可基于工程依赖Jar包对应的综合评分分值,查询系统预先配置的评分等级对照表,将评分等级对照表中与综合评分分值相匹配的配置安全等级,确定为工程依赖Jar包的初始安全等级,以保障初始安全等级与综合评分分值相匹配,保障初始安全等级的准确性。
其中,评分周期对照表是用于反映不同综合评分分值与对应的配置生命周期之间对应的关系的对照表。
作为一示例,步骤S803中,服务器可基于工程依赖Jar包对应的综合评分分值查询系统预先设置的评分周期对照表,获取该综合评分分值对应的配置生命周期,再基于配置生命周期,确定工程依赖Jar包对应的初始生命周期。例如,可将工程依赖Jar包存储到系统Jar包仓中的系统当前时间确定为该工程依赖Jar包的起始时间Tb,将起始时间Tb与配置生命周期之和,确定为工程依赖Jar包的结束时间Te,从而可确定工程依赖Jar包对应的初始生命周期,以便将工程依赖Jar包存储到系统Jar包仓之后,可基于该初始生命周期进行生命周期评估,以便后续对工程依赖Jar包进行安全监控,进而保障引用该工程依赖Jar包的Java项目工程的安全性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种Jar包安全监控装置,该Jar包安全监控装置与上述实施例中Jar包安全监控方法一一对应。如图9所示,该Jar包安全监控装置包括Jar包监听处理模块901、当前安全等级获取模块902、Jar包汇总数据获取模块903和追溯提醒消息发送模块904。各功能模块详细说明如下:
Jar包监听处理模块901,用于执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断当前状态数据是否满足安全监控条件;
当前安全等级获取模块902,用于若当前状态数据满足安全监控条件,则执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级;
Jar包汇总数据获取模块903,用于基于工程依赖Jar包查询系统数据库,获取工程依赖Jar包对应的Jar包汇总数据,Jar包汇总数据包括初始安全等级和Jar包开发信息;
追溯提醒消息发送模块904,用于若工程依赖Jar包的当前安全等级低于初始安全等级,则生成追溯提醒消息,将追溯提醒消息发送给Jar包开发信息对应的开发终端。
优选地,当前安全等级获取模块902,包括:
生命周期评估结果获取单元,用于基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的初始生命周期,根据初始生命周期和系统当前时间,获取工程依赖Jar包对应的生命周期评估结果;
优化评估结果获取单元,用于基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的Jar包开发信息,根据Jar包开发信息判断工程依赖Jar包是否为优化依赖Jar包,获取工程依赖Jar包对应的优化评估结果;
来源检测结果获取单元,用于对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
安全检测结果获取单元,用于对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
内部评审结果获取单元,用于基于工程依赖Jar包触发内部评审请求,基于内部评审请求,获取工程依赖Jar包对应的内部评审结果;
当前安全等级获取单元,用于对工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取工程依赖Jar包对应的当前安全等级。
优选地,追溯提醒消息发送模块904,包括:
Java项目工程确定单元,用于若工程依赖Jar包的当前安全等级低于初始安全等级,则基于工程依赖Jar包查询系统数据库,确定引用工程依赖Jar包的Java项目工程;
项目当前状态获取单元,用于获取Java项目工程对应的项目当前状态;
在用状态处理单元,用于若Java项目工程对应的项目当前状态为在用状态,则生成追溯提醒消息;
停用状态处理单元,用于若Java项目工程对应的项目当前状态为停用状态,则无需生成追溯提醒消息。
优选地,追溯提醒消息发送模块904,包括:
推荐依赖Jar包获取单元,用于若工程依赖Jar包的当前安全等级低于初始安全等级,则基于工程依赖Jar包查询系统Jar包仓,获取与工程依赖Jar包功能相同的推荐依赖Jar包,推荐依赖Jar包的当前安全等级为可选安全等级或者优选安全等级;
追溯提醒消息生成单元,用于基于推荐依赖Jar包,生成追溯提醒消息。
优选地,Jar包安全监控装置还包括:
Java项目工程获取模块,用于获取基于Java编译工具开发的Java项目工程;
Java项目工程编译模块,用于对Java项目工程进行编译处理,获取Java项目工程对应的工程依赖Jar包和工程依赖Jar包对应的Jar包开发信息;
Jar包新增校验模块,用于执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的初始安全等级和初始生命周期;
Jar包存储处理模块,用于将工程依赖Jar包存储在系统Jar包仓,将Jar包开发信息、初始安全等级和初始生命周期确定为Jar包汇总数据,将Jar包汇总数据存储到系统数据库中。
优选地,Jar包新增校验模块,包括:
来源检测结果获取单元,用于对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
安全检测结果获取单元,用于对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
性能检测结果获取单元,用于对工程依赖Jar包进行性能检测,获取工程依赖Jar包对应的性能检测结果;
功能检测结果获取单元,用于对工程依赖Jar包进行功能检测,获取工程依赖Jar包对应的功能检测结果;
综合评估处理单元,用于对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的初始安全等级和初始生命周期。
优选地,综合评估处理单元,包括:
综合评分分值获取子单元,用于对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的综合评分分值;
初始安全等级获取子单元,用于根据工程依赖Jar包对应的综合评分分值查询评分等级对照表,将综合评分分值对应的配置安全等级,确定为工程依赖Jar包对应的初始安全等级;
初始生命周期获取子单元,用于根据工程依赖Jar包对应的综合评分分值查询评分周期对照表,获取综合评分分值对应的配置生命周期,根据配置生命周期,确定工程依赖Jar包对应的初始生命周期。
关于Jar包安全监控装置的具体限定可以参见上文中对于Jar包安全监控方法的限定,在此不再赘述。上述Jar包安全监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行Jar包安全监控方法过程中采用或生成的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Jar包安全监控方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中Jar包安全监控方法,例如图2所示S201-S204,或者图3至图8中所示,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现Jar包安全监控装置这一实施例中的各模块/单元的功能,例如图9所示的Jar包监听处理模块901、当前安全等级获取模块902、Jar包汇总数据获取模块903和追溯提醒消息发送模块904的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中Jar包安全监控方法,例如图2所示S201-S204,或者图3至图8中所示,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述Jar包安全监控装置这一实施例中的各模块/单元的功能,例如图9所示的Jar包监听处理模块901、当前安全等级获取模块902、Jar包汇总数据获取模块903和追溯提醒消息发送模块904的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种Jar包安全监控方法,其特征在于,包括:
执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断所述当前状态数据是否满足安全监控条件;
若所述当前状态数据满足所述安全监控条件,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
基于所述工程依赖Jar包查询系统数据库,获取所述工程依赖Jar包对应的Jar包汇总数据,所述Jar包汇总数据包括初始安全等级和Jar包开发信息;
若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则生成追溯提醒消息,将所述追溯提醒消息发送给所述Jar包开发信息对应的开发终端;
其中,所述执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级,包括:
基于所述工程依赖Jar包查询Jar包数据表,获取所述工程依赖Jar包对应的初始生命周期,根据所述初始生命周期和系统当前时间,获取所述工程依赖Jar包对应的生命周期评估结果;
基于所述工程依赖Jar包查询Jar包数据表,获取所述工程依赖Jar包对应的Jar包开发信息,根据所述Jar包开发信息判断所述工程依赖Jar包是否为优化依赖Jar包,获取所述工程依赖Jar包对应的优化评估结果;
对所述工程依赖Jar包进行来源检测,获取所述工程依赖Jar包对应的来源检测结果;
对所述工程依赖Jar包进行安全检测,获取所述工程依赖Jar包对应的安全检测结果;
基于所述工程依赖Jar包触发内部评审请求,基于所述内部评审请求,获取所述工程依赖Jar包对应的内部评审结果;
对所述工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取所述工程依赖Jar包对应的当前安全等级。
2.如权利要求1所述的Jar包安全监控方法,其特征在于,所述若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则生成追溯提醒消息,包括:
若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则基于所述工程依赖Jar包查询系统数据库,确定引用所述工程依赖Jar包的Java项目工程;
获取所述Java项目工程对应的项目当前状态;
若所述Java项目工程对应的项目当前状态为在用状态,则生成追溯提醒消息;
若所述Java项目工程对应的项目当前状态为停用状态,则无需生成追溯提醒消息。
3.如权利要求1所述的Jar包安全监控方法,其特征在于,所述若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则生成追溯提醒消息,包括:
若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则基于所述工程依赖Jar包查询系统Jar包仓,获取与所述工程依赖Jar包功能相同的推荐依赖Jar包,所述推荐依赖Jar包的当前安全等级为可选安全等级或者优选安全等级;
基于所述推荐依赖Jar包,生成追溯提醒消息。
4.如权利要求1所述的Jar包安全监控方法,其特征在于,在所述执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断所述当前状态数据是否满足安全监控条件之前,所述Jar包安全监控方法还包括:
获取基于Java编译工具开发的Java项目工程;
对所述Java项目工程进行编译处理,获取所述Java项目工程对应的工程依赖Jar包和所述工程依赖Jar包对应的Jar包开发信息;
执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的初始安全等级和初始生命周期;
将所述工程依赖Jar包存储在系统Jar包仓,将所述Jar包开发信息、所述初始安全等级和所述初始生命周期确定为Jar包汇总数据,将所述Jar包汇总数据存储到系统数据库中。
5.如权利要求4所述的Jar包安全监控方法,其特征在于,所述执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的初始安全等级和初始生命周期,包括:
对所述工程依赖Jar包进行来源检测,获取所述工程依赖Jar包对应的来源检测结果;
对所述工程依赖Jar包进行安全检测,获取所述工程依赖Jar包对应的安全检测结果;
对所述工程依赖Jar包进行性能检测,获取所述工程依赖Jar包对应的性能检测结果;
对所述工程依赖Jar包进行功能检测,获取所述工程依赖Jar包对应的功能检测结果;
对所述工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取所述工程依赖Jar包对应的初始安全等级和初始生命周期。
6.如权利要求5所述的Jar包安全监控方法,其特征在于,所述对所述工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取所述工程依赖Jar包对应的初始安全等级和初始生命周期,包括:
对所述工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取所述工程依赖Jar包对应的综合评分分值;
根据所述工程依赖Jar包对应的综合评分分值查询评分等级对照表,将所述综合评分分值对应的配置安全等级,确定为所述工程依赖Jar包对应的初始安全等级;
根据所述工程依赖Jar包对应的综合评分分值查询评分周期对照表,获取所述综合评分分值对应的配置生命周期,根据所述配置生命周期,确定所述工程依赖Jar包对应的初始生命周期。
7.一种Jar包安全监控装置,其特征在于,包括:
Jar包监听处理模块,用于执行Jar包监听事件,监听系统Jar包仓中的工程依赖Jar包对应的当前状态数据,判断所述当前状态数据是否满足安全监控条件;
当前安全等级获取模块,用于若所述当前状态数据满足所述安全监控条件,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
Jar包汇总数据获取模块,用于基于所述工程依赖Jar包查询系统数据库,获取所述工程依赖Jar包对应的Jar包汇总数据,所述Jar包汇总数据包括初始安全等级和Jar包开发信息;
追溯提醒消息发送模块,用于若所述工程依赖Jar包的当前安全等级低于所述初始安全等级,则生成追溯提醒消息,将所述追溯提醒消息发送给所述Jar包开发信息对应的开发终端;
其中,所述当前安全等级获取模块,包括:
生命周期评估结果获取单元,用于基于所述工程依赖Jar包查询Jar包数据表,获取所述工程依赖Jar包对应的初始生命周期,根据所述初始生命周期和系统当前时间,获取所述工程依赖Jar包对应的生命周期评估结果;
优化评估结果获取单元,用于基于所述工程依赖Jar包查询Jar包数据表,获取所述工程依赖Jar包对应的Jar包开发信息,根据所述Jar包开发信息判断所述工程依赖Jar包是否为优化依赖Jar包,获取所述工程依赖Jar包对应的优化评估结果;
来源检测结果获取单元,用于对所述工程依赖Jar包进行来源检测,获取所述工程依赖Jar包对应的来源检测结果;
安全检测结果获取单元,用于对所述工程依赖Jar包进行安全检测,获取所述工程依赖Jar包对应的安全检测结果;
内部评审结果获取单元,用于基于所述工程依赖Jar包触发内部评审请求,基于所述内部评审请求,获取所述工程依赖Jar包对应的内部评审结果;
当前安全等级获取单元,用于对所述工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取所述工程依赖Jar包对应的当前安全等级。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述Jar包安全监控方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述Jar包安全监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110739203.2A CN113343223B (zh) | 2021-06-30 | 2021-06-30 | Jar包安全监控方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110739203.2A CN113343223B (zh) | 2021-06-30 | 2021-06-30 | Jar包安全监控方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343223A CN113343223A (zh) | 2021-09-03 |
CN113343223B true CN113343223B (zh) | 2022-08-02 |
Family
ID=77482043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110739203.2A Active CN113343223B (zh) | 2021-06-30 | 2021-06-30 | Jar包安全监控方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343223B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117192343B (zh) * | 2023-11-08 | 2024-01-23 | 珠海芯业测控有限公司 | 基于辅助系统的芯片测试方法、电子设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764776A (zh) * | 2019-09-24 | 2020-02-07 | 中信百信银行股份有限公司 | 依赖组件管控方法和装置 |
CN111104676A (zh) * | 2019-12-06 | 2020-05-05 | 携程旅游信息技术(上海)有限公司 | 第三方组件的安全检测方法、系统、设备及可读存储介质 |
CN112118251A (zh) * | 2020-09-15 | 2020-12-22 | 四川长虹电器股份有限公司 | 一种基于maven插件的Java项目开源组件的漏洞检测方法 |
CN112115473A (zh) * | 2020-09-15 | 2020-12-22 | 四川长虹电器股份有限公司 | 一种用于Java开源组件安全检测的方法 |
CN112434305B (zh) * | 2020-12-07 | 2024-03-08 | 北京中科微澜科技有限公司 | 基于补丁的漏洞检测方法、装置、存储介质和电子设备 |
-
2021
- 2021-06-30 CN CN202110739203.2A patent/CN113343223B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113343223A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481498B2 (en) | Continuous vulnerability management for modern applications | |
US10678672B1 (en) | Security validation of software delivered as a service | |
US10346282B2 (en) | Multi-data analysis based proactive defect detection and resolution | |
US11086983B2 (en) | System and method for authenticating safe software | |
US20180075233A1 (en) | Systems and methods for agent-based detection of hacking attempts | |
CN111193609B (zh) | 应用异常的反馈方法、装置及应用异常的监控系统 | |
US20200153850A1 (en) | Centralized trust authority for web application components | |
CN110995825B (zh) | 一种智能合约的发布方法、智能节点设备及存储介质 | |
US20220030008A1 (en) | Determining exploit prevention using machine learning | |
CN108400978B (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
WO2021121382A1 (en) | Security management of an autonomous vehicle | |
CN113343223B (zh) | Jar包安全监控方法、装置、计算机设备及存储介质 | |
Micskei et al. | Robustness testing techniques and tools | |
US11055416B2 (en) | Detecting vulnerabilities in applications during execution | |
US11695793B2 (en) | Vulnerability scanning of attack surfaces | |
CN110990249B (zh) | 代码扫描结果处理方法、装置、计算机设备及存储介质 | |
CN116992438A (zh) | 基于代码疫苗的实时漏洞修复的方法、装置、设备及介质 | |
CN113343222B (zh) | Java项目工程安全校验方法、装置、计算机设备及存储介质 | |
CN116541847A (zh) | 一种应用程序的安全检测方法及装置 | |
US20230122784A1 (en) | Browser-level runtime supply chain security and attack detection | |
US20200244461A1 (en) | Data Processing Method and Apparatus | |
CN115544465B (zh) | 一种用于软件构建的第三方组件的安全管控方法及装置 | |
US11693651B1 (en) | Static and dynamic correlation of software development pipeline events | |
Vasileiadis et al. | Revealing malicious remote engineering attempts on Android apps with magic numbers | |
RU2696951C1 (ru) | Способ защиты программного обеспечения от недекларированных возможностей, содержащихся в получаемых обновлениях |
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 |