CN113343222A - Java项目工程安全校验方法、装置、计算机设备及存储介质 - Google Patents

Java项目工程安全校验方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113343222A
CN113343222A CN202110738009.2A CN202110738009A CN113343222A CN 113343222 A CN113343222 A CN 113343222A CN 202110738009 A CN202110738009 A CN 202110738009A CN 113343222 A CN113343222 A CN 113343222A
Authority
CN
China
Prior art keywords
engineering
jar package
jar
dependent
package
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
Application number
CN202110738009.2A
Other languages
English (en)
Other versions
CN113343222B (zh
Inventor
陈仲伟
钟世亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Merchants Finance Technology Co Ltd
Original Assignee
China Merchants Finance Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Merchants Finance Technology Co Ltd filed Critical China Merchants Finance Technology Co Ltd
Priority to CN202110738009.2A priority Critical patent/CN113343222B/zh
Publication of CN113343222A publication Critical patent/CN113343222A/zh
Application granted granted Critical
Publication of CN113343222B publication Critical patent/CN113343222B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/54Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种Java项目工程安全校验方法、装置、计算机设备及存储介质。该方法包括:获取基于Java编译工具开发的Java项目工程;对Java项目工程进行编译处理,获取工程依赖Jar包;基于工程依赖Jar包查询系统Jar包仓,判断是否存在在仓依赖Jar包;若存在在仓依赖Jar包,则执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级;若不存在在仓依赖Jar包,则执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的当前安全等级;基于所有工程依赖Jar包对应的当前安全等级,获取Java项目工程对应的项目安全等级。该方法可保障Java项目工程对应的项目安全等级的全面性和可靠性。

Description

Java项目工程安全校验方法、装置、计算机设备及存储介质
技术领域
本发明涉及信息安全技术领域,尤其涉及一种Java项目工程安全校验方法、装置、计算机设备及存储介质。
背景技术
当前大量企业采用Java编译工具进行产品开发,在利用Java编译工具进行产品开发过程中会不可避免地使用企业内部团队或者第三方企业发布的Jar包,若在产品开发过程中引用到生命周期已经结束的Jar包、生命周期临近结束的Jar包、或者被非法篡改的Jar包、包含致命缺陷或漏洞的Jar包或者多个团队引用的Jar包版本不同,导致开发的Java项目工程无法得到安全保障,影响Java项目工程的开发进度和安全性。
发明内容
本发明实施例提供一种Java项目工程安全校验方法、装置、计算机设备及存储介质,以解决引用Jar包存在生命周期、安全性或一致性问题,而导致Java项目工程的开发进度和安全性无法保障的问题。
一种Java项目工程安全校验方法,包括:
获取基于Java编译工具开发的Java项目工程;
对所述Java项目工程进行编译处理,获取所述Java项目工程对应的工程依赖Jar包;
基于所述工程依赖Jar包查询系统Jar包仓,判断是否存在与所述工程依赖Jar包相对应的在仓依赖Jar包;
若存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
若不存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
基于所有所述工程依赖Jar包对应的当前安全等级,获取所述Java项目工程对应的项目安全等级。
一种Java项目工程安全校验装置,包括:
Java项目工程获取模块,用于获取基于Java编译工具开发的Java项目工程;
工程依赖Jar包获取模块,用于对所述Java项目工程进行编译处理,获取所述Java项目工程对应的工程依赖Jar包;
在仓依赖Jar包判断模块,用于基于所述工程依赖Jar包查询系统Jar包仓,判断是否存在与所述工程依赖Jar包相对应的在仓依赖Jar包;
在仓安全等级校验模块,用于若存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
新增安全等级校验模块,用于若不存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
项目安全等级获取模块,用于基于所有所述工程依赖Jar包对应的当前安全等级,获取所述Java项目工程对应的项目安全等级。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述Java项目工程安全校验方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述Java项目工程安全校验方法。
上述Java项目工程安全校验方法、装置、计算机设备及存储介质,可采用Java项目工程中提取其所依赖的所有工程依赖Jar包,根据系统Jar包仓中是否存在与工程依赖Jar包相对应的在仓依赖Jar包,确定采用在仓校验流程或者新增校验流程对工程依赖Jar包进行安全等级校验,以获取工程依赖Jar包对应的当前安全等级,确保工程依赖Jar包获取的处理效率、准确性和实时性;接着,对所有工程依赖Jar包对应的当前安全等级进行综合评估,以确定Java项目工程对应的项目安全等级,可保障最终确定的Java项目工程对应的项目安全等级的全面性和可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中Java项目工程安全校验方法的一应用环境示意图;
图2是本发明一实施例中Java项目工程安全校验方法的一流程图;
图3是本发明一实施例中Java项目工程安全校验方法的另一流程图;
图4是本发明一实施例中Java项目工程安全校验方法的另一流程图;
图5是本发明一实施例中Java项目工程安全校验方法的另一流程图;
图6是本发明一实施例中Java项目工程安全校验方法的另一流程图;
图7是本发明一实施例中Java项目工程安全校验方法的另一流程图;
图8是本发明一实施例中Java项目工程安全校验方法的另一流程图;
图9是本发明一实施例中Java项目工程安全校验装置的一示意图;
图10是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的Java项目工程安全校验方法,该Java项目工程安全校验方法可应用如图1所示的应用环境中。具体地,该Java项目工程安全校验方法应用在Java项目工程安全校验系统中,该Java项目工程安全校验系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于实现对Java项目工程所引用的所有工程依赖Jar包进行安全等级校验,根据所有Jar包的安全等级校验结果,完全对Java项目工程的安全等级评估,保障开发完成的Java项目工程的安全性和使用寿命。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种Java项目工程安全校验方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S201:获取基于Java编译工具开发的Java项目工程;
S202:对Java项目工程进行编译处理,获取Java项目工程对应的工程依赖Jar包;
S203:基于工程依赖Jar包查询系统Jar包仓,判断是否存在与工程依赖Jar包相对应的在仓依赖Jar包;
S204:若存在与工程依赖Jar包相对应的在仓依赖Jar包,则执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级;
S205:若不存在与工程依赖Jar包相对应的在仓依赖Jar包,则执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的当前安全等级;
S206:基于所有工程依赖Jar包对应的当前安全等级,获取Java项目工程对应的项目安全等级。
其中,Java编译工具是采用Java语言进行编译处理的工具。Java项目工程是采用Java编译工具编译出的可实现特定功能需求的项目工程,具体可以理解为企业开发的特定产品。
作为一示例,步骤S201中,在需要对企业通过Java编译工具开发的某一Java项目工程进行安全校验时,用户可通过客户端向服务器上传基于Java编译工具开发的Java项目工程,使服务器可获取基于Java编译工具开发的Java项目工程,并对该Java项目工程进行安全校验。
其中,工程依赖Jar包是指在Java项目工程中引用到的Jar包,该工程依赖Jar包可以为企业内部团队自主开发的Jar包,也可以为第三方企业开发的Jar包。
作为一示例,步骤S202中,服务器在获取到基于Java编译工具开发的Java项目工程之后,需先对Java项目工程进行编译处理,从Java项目工程中,提取到该Java项目工程所引用的N个工程依赖Jar包,N为Java项目工程所引用的工程依赖Jar包的数量,N≥1。本示例中,服务器在获取到Java项目工程所引用的N个工程依赖Jar包,每一工程依赖Jar包对应一Jar包开发信息。该Jar包开发信息是用于记录工程依赖Jar包对应的Jar包版本号、开发时间、开发团队、主要功能或者其他与工程依赖Jar包相关的信息。
其中,系统Jar包仓是与服务器相连的用于存储已经经过新增安全等级校验的在仓依赖Jar包的仓库。
作为一示例,步骤S203中,服务器基于工程依赖Jar包查询系统Jar包仓,判断是否存在与工程依赖Jar包相对应的在仓依赖Jar包,以确定该工程依赖Jar包是否为已经经过新增安全等级校验并存储在系统Jar包仓中的Jar包。本示例中,服务器可基于工程依赖Jar包对应的Jar包开发信息与系统Jar包仓中所有在仓依赖Jar包的Jar包开发信息进行匹配处理,例如,基于Jar包版本号进行匹配处理,以确定系统Jar包仓中是否存在与工程依赖Jar包相对应的在仓依赖Jar包。
其中,在仓校验流程是系统预先配置的用于对存在对应的在仓依赖Jar包的工程依赖Jar包进行安全校验的处理流程。当前安全等级是指系统当前时刻对工程依赖Jar包进行安全校验所确定的安全等级。
作为一示例,步骤S204中,服务器在查询系统Jar包仓,确定系统Jar包仓存在与工程依赖Jar包相对应的在仓依赖Jar包时,可执行预先配置的在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级,此处的当前安全等级是指采用在仓校验流程对工程依赖Jar包进行安全校验所确定的安全等级。可理解地,由于系统Jar包仓是与服务器相连的用于存储已经经过新增安全等级校验的在仓依赖Jar包的仓库,也即系统Jar包仓中存储的所有在仓依赖Jar包均已经过新增校验流程校验,在系统当前时刻可采用在仓校验流程进行补充校验,有助于进一步保障工程依赖Jar包的当前安全等级确定的实时性和准确性,避免在在仓依赖Jar包存储到系统Jar包仓至系统当前时间这一段时间内,发生影响工程依赖Jar包安全性的事件,进而影响当前安全等级确定的准确性。
其中,新增校验流程是系统预先配置的用于对不存在对应的在仓依赖Jar包的工程依赖Jar包进行安全校验的处理流程。
作为一示例,步骤S205中,服务器在查询系统Jar包仓,确定系统Jar包仓不存在与工程依赖Jar包相对应的在仓依赖Jar包时,可执行预先配置的新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的当前安全等级,此处的当前安全等级是指采用新增校验流程对工程依赖Jar包进行安全校验所确定的安全等级。可理解地,服务器执行新增校验流程进行工程依赖Jar包进行全面安全校验,在新增校验流程校验确定工程依赖Jar包的当前安全等级为校验通过时,可将工程依赖Jar包存储到系统Jar包仓中,以便后续作为在仓依赖Jar包,对系统当前时间以后接收到的Java项目工程中的工程依赖Jar包进行匹配处理。
作为一示例,步骤S206中,服务器需获取Java项目工程对应的N个工程依赖Jar包对应的当前安全等级,基于所有工程依赖Jar包对应的当前安全等级进行综合判断,获取Java项目工程对应的项目安全等级。本示例中,服务器可采用预先配置的综合评估逻辑,对所有工程依赖Jar包对应的当前安全等级进行综合判断,以确定每种当前安全等级的Jar包数量,根据每一种当前安全等级及其对应的数量进行综合评估,以确定Java项目工程对应的项目安全等级。可理解地,Java项目工程对应的项目安全等级与所有工程依赖Jar包的当前安全等级相关联,可保障最终确定的Java项目工程对应的项目安全等级的全面性和可靠性。
本实施例所提供的Java项目工程安全校验方法中,可采用Java项目工程中提取其所依赖的所有工程依赖Jar包,根据系统Jar包仓中是否存在与工程依赖Jar包相对应的在仓依赖Jar包,确定采用在仓校验流程或者新增校验流程对工程依赖Jar包进行安全等级校验,以获取工程依赖Jar包对应的当前安全等级,确保工程依赖Jar包获取的处理效率、准确性和实时性;接着,对所有工程依赖Jar包对应的当前安全等级进行综合评估,以确定Java项目工程对应的项目安全等级,可保障最终确定的Java项目工程对应的项目安全等级的全面性和可靠性。
在一实施例中,如图3所示,步骤S202,即对Java项目工程进行编译处理,获取Java项目工程对应的工程依赖Jar包,包括:
S301:生成Java项目工程对应的洁净编译环境;
S302:在洁净编译环境中,对Java项目工程进行编译,将Java项目工程对应的工程依赖Jar包下载到洁净编译环境对应的缓存目录,将工程依赖Jar包对应的Jar包开发信息存储到缓存目录对应的Jar包依赖树中。
其中,洁净编译环境是指系统当前时刻没有Jar包缓存在其中的编译环境。该Jar包开发信息是用于记录工程依赖Jar包对应的Jar包版本号、开发时间、开发团队、主要功能或者其他与工程依赖Jar包相关的信息。Jar包依赖树是在洁净编译环境中创建的以树状形式存储Jar包开发信息的结构。
作为一示例,步骤S301中,服务器在获取到基于Java编译工具开发的Java项目工程之后,需生成创建与该Java项目工程相对应的洁净编译环境,以便后续在该洁净编译环境中对Java项目工程进行编译,保障所获取到的Java项目工程对应的工程依赖Jar包没有受到其他在先缓存的其他Java项目工程对应的工程依赖Jar包的干扰,有助于保障获取到的Java项目工程对应的工程依赖Jar包的可靠性。
作为一示例,步骤S302中,服务器在生成该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项目工程进行安全校验的效率。
在一实施例中,如图4所示,步骤S204,即执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级,包括:
S401:基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的初始生命周期,根据初始生命周期和系统当前时间,获取工程依赖Jar包对应的生命周期评估结果;
S402:基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的Jar包开发信息,根据Jar包开发信息判断工程依赖Jar包是否为优化依赖Jar包,获取工程依赖Jar包对应的优化评估结果;
S403:对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
S404:对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
S405:基于工程依赖Jar包触发内部评审请求,基于内部评审请求,获取工程依赖Jar包对应的内部评审结果;
S406:对工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取工程依赖Jar包对应的当前安全等级。
其中,Jar包数据表是预先设置的用于存储在仓依赖Jar包的相关信息的数据表。初始生命周期是指预先存储的在仓依赖Jar包的生命周期,包括起始时间Tb和结束时间Te,是指起始时间Tb与结束时间Te之间的时间周期。生命周期评估结果是系统当前时间对工程依赖Jar包进行生命周期评估的结果。
作为一示例,步骤S401中,服务器可基于工程依赖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包。
作为一示例,步骤S402中,服务器可基于工程依赖Jar包查询系统预先存储的用于记录所有在仓依赖Jar包相关信息的Jar包数据表,从Jar包数据表中获取工程依赖Jar包对应的Jar包开发信息,以便根据该Jar包开发信息判断工程依赖Jar包是否为最新经过优化改进的优化依赖Jar包,从而获取工程依赖Jar包对应的优化评估结果,该优化评估结果包括为优化依赖Jar包和不为优化依赖Jar包两种。
作为一示例,步骤S403中,服务器可基于工程依赖Jar包的Jar包版本号进行来源检测,以便从依据Jar包版本号从相应的官方网络下载相应的官方版本Jar包;基于工程依赖Jar包和官方版本Jar包进行比较处理,以确定工程依赖Jar包是否为官方发布的Jar包;若工程依赖Jar包为官方版本Jar包,则获取来源合法的来源检测结果;若工程依赖Jar包不为官方版本Jar包,则获取来源非法的来源检测结果。本示例中,服务器在获取到的来源检测结果为来源非法时,还可向Java项目工程对应的开发终端发送内部来源评审请求,获取开发终端反馈的来源评审结果,进而将来源检测结果为来源非法的工程依赖Jar包,进一步划分为来源非法且内部评审通过的来源检测结果,或者获取来源非法且内部评估不通过的来源检测结果。
作为一示例,步骤S404中,服务器可采用Jar包漏洞检测工具,包括但不限于Dependency-Check、NVD和CVSS等,对工程依赖Jar包进行安全检测,可快速获取工程依赖Jar包对应的安全检测结果。该工程依赖Jar包对应的安全检测结果包括无已知缺陷或漏洞、以及有已知缺陷或漏洞两种情况。本示例中,服务器在获取到的安全检测结果为有已知缺陷或漏洞时,还可向Java项目工程对应的开发终端发送内部安全评审请求,获取开发终端反馈的安全评审结果,进而将安全检测结果为有已知缺陷或漏洞的工程依赖Jar包进一步划分为如下三种情况:其一为有已知缺陷或漏洞,且需要禁止使用的安全检测结果;其二为有已知缺陷或漏洞,但可有限使用的安全检测结果;其三为有已知缺陷或漏洞,但不影响使用的安全检测结果。
其中,内部评审请求是用于查询企业内部或者其他对工程依赖Jar包的内部评估的请求。
作为一示例,步骤S405中,服务器基于工程依赖Jar包的Jar包开发信息中的Jar包版本号,生成内部评审请求,将内部评审请求发送给Java项目工程对应的开发终端,获取开发终端反馈的工程依赖Jar包对应的内部评审结果,该内部评审结果是用于反映是否需要对工程依赖Jar包进行安全等级升级或降级处理的结果。
作为一示例,步骤S406中,服务器可基于工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,具体基于工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果,查询系统预先配置的安全等级对照表,从安全等级对照表中,将与工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果相匹配的配置安全等级,确定工程依赖Jar包对应的当前安全等级。
该安全等级对照表为预先记录不同配置安全等级对应的评级条件的数据表。本示例中,配置安全等级包括禁用安全等级、慎选安全等级、可选安全等级和优选安全等级这四种。其中,禁用安全等级是指禁止使用相应的Jar包的安全等级。慎选安全等级是指安全风险较大需要谨慎使用的安全等级。可选安全等级是指安全风险较小可以使用的安全等级。优选安全等级是指安全风险基本可忽略不计的安全等级。评级条件是用于评估满足配置安全等级的条件。
例如,若生命周期评估结果为生命周期已结束或者生命周期临近结束(即剩余生命周期Tm<第一时间阈值T1)、来源检测结果为来源非法且内部评估不通过、安全检测结果为有已知缺陷或漏洞且需要禁止使用、或者内部评审结果为需要禁止使用等评估条件中的至少一个,即可确定该工程依赖Jar包对应的当前安全等级为禁用安全等级。
例如,若生命周期评估结果为生命周期距离结束时间较近(即若第一时间阈值T1≤剩余生命周期Tm<第二时间阈值T2)、来源检测结果为来源非法且内部评审通过、安全检测结果为有已知缺陷或漏洞但可有限使用、或者内部评审结果为需要谨慎使用等评估条件中的至少一个,即可确定该工程依赖Jar包对应的当前安全等级为慎选安全等级。
例如,若生命周期评估结果为生命周期距离结束时间较近(即若第二时间阈值T2≤剩余生命周期Tm<第三时间阈值T3)、来源检测结果为来源非法且内部评审通过、安全检测结果为有已知缺陷或漏洞但不影响使用、且内部评审结果为可以选择使用等评估条件时,即可确定该工程依赖Jar包对应的当前安全等级为可选安全等级。
例如,若生命周期评估结果为生命周期较长(即若剩余生命周期Tm≥第三时间阈值T3)、内部评审结果为优先选择使用、优化评估结果为不为优化依赖Jar包等评估条件时,即可确定该工程依赖Jar包对应的当前安全等级为优选安全等级。
本实施例所提供的Java项目工程安全校验方法,分别获取对工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果,然后根据所有评估结果进行综合评估,可保障获取到的工程依赖Jar包的准确性、全面性和有效性,有助于保障基于所有工程依赖Jar包形成的Java项目工程的质量,避免因工程依赖Jar包影响Java项目工程的开发进度和质量。
在一实施例中,如图5所示,步骤S205,即执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的当前安全等级,包括:
S501:对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
S502:对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
S503:对工程依赖Jar包进行性能检测,获取工程依赖Jar包对应的性能检测结果;
S504:对工程依赖Jar包进行功能检测,获取工程依赖Jar包对应的功能检测结果;
S505:对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的当前安全等级。
作为一示例,步骤S501中,服务器可基于工程依赖Jar包的Jar包版本号进行来源检测,以便从依据Jar包版本号从相应的官方网络下载相应的官方版本Jar包;基于工程依赖Jar包和官方版本Jar包进行比较处理,以确定工程依赖Jar包是否为官方发布的Jar包;若工程依赖Jar包为官方版本Jar包,则获取来源合法的来源检测结果;若工程依赖Jar包不为官方版本Jar包,则获取来源非法的来源检测结果。本示例中,服务器在获取到的来源检测结果为来源非法时,还可向Java项目工程对应的开发终端发送内部来源评审请求,获取开发终端反馈的来源评审结果,进而将来源检测结果为来源非法的工程依赖Jar包,进一步划分为来源非法且内部评审通过的来源检测结果,或者获取来源非法且内部评估不通过的来源检测结果。
作为一示例,步骤S502中,服务器可采用Jar包漏洞检测工具,包括但不限于Dependency-Check、NVD和CVSS等,对工程依赖Jar包进行安全检测,可快速获取工程依赖Jar包对应的安全检测结果。该工程依赖Jar包对应的安全检测结果包括无已知缺陷或漏洞、以及有已知缺陷或漏洞两种情况。本示例中,服务器在获取到的安全检测结果为有已知缺陷或漏洞时,还可向Java项目工程对应的开发终端发送内部安全评审请求,获取开发终端反馈的安全评审结果,进而将安全检测结果为有已知缺陷或漏洞的工程依赖Jar包进一步划分为如下三种情况:其一为有已知缺陷或漏洞,且需要禁止使用的安全检测结果;其二为有已知缺陷或漏洞,但可有限使用的安全检测结果;其三为有已知缺陷或漏洞,但不影响使用的安全检测结果。可理解地,在工程依赖Jar包的安全检测结果为有已知缺陷或漏洞时,还可记录已知缺陷或漏洞的数量和严重等级,以便后续根据该数量和严重等级进行综合评分。
作为一示例,步骤S503中,服务器对工程依赖Jar包进行性能检测,获取工程依赖Jar包对应的性能检测结果,具体检测工程依赖Jar包是否满足特定的性能场景,即检测其能否满足Java项目工程中限定的性能场景,如CPU资源或者网络资源限定的特定场景,以获取性能检测结果。性能检测结果包括检测通过和检测不通过两种。
作为一示例,步骤S504中,服务器对工程依赖Jar包进行功能检测,以检测该工程依赖Jar包是否能够满足其需要实现特定功能,获取工程依赖Jar包对应的功能检测结果,该功能检测结果包括检测通过和检测不通过两种。
作为一示例,步骤S505中,服务器对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,具体可以将来源检测结果、安全检测结果、性能检测结果和功能检测结果,与系统预先配置的安全等级对照表进行匹配处理,将与来源检测结果、安全检测结果、性能检测结果和功能检测结果相匹配的评估条件对应的配置安全等级,确定为工程依赖Jar包对应的当前安全等级,其处理过程与步骤S406类似,为避免重复,此处不一一赘述。
本实施例所提供的Java项目工程安全校验方法,分别获取工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果,然后根据所有检测结果进行综合评估,可保障获取到的工程依赖Jar包的准确性、全面性和有效性,有助于保障基于所有工程依赖Jar包形成的Java项目工程的质量,避免因工程依赖Jar包影响Java项目工程的开发进度和质量。
在一实施例中,如图6,步骤S505之后,即在对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的当前安全等级之后,Java项目工程安全校验方法还包括:
S601:对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的综合评分分值;
S602:根据工程依赖Jar包对应的综合评分分值查询评分等级对照表,将综合评分分值对应的配置安全等级,确定为工程依赖Jar包对应的当前安全等级。
作为一示例,步骤S601中,服务器可以依据来源检测结果、安全检测结果、性能检测结果和功能检测结果,查询检测评分表,获取来源检测结果、安全检测结果、性能检测结果和功能检测结果这几个检测结果对应的当前检测评分,再将所有检测结果对应的当前检测评分与其预先配置的预设检测权重进行加权计算,确定综合评分分值。该检测评分表是用于反映不同检测结果对应的检测评分的对照表
其中,评分等级对照表是用于反映不同综合评分分值与对应的配置安全等级之间对应关系的对照表。
作为一示例,步骤S602中,服务器可基于工程依赖Jar包对应的综合评分分值,查询系统预先配置的评分等级对照表,将评分等级对照表中与综合评分分值相匹配的配置安全等级,确定为工程依赖Jar包的当前安全等级,以保障当前安全等级与综合评分分值相匹配,保障当前安全等级的准确性。
在一实施例中,在步骤S602之后,即在根据工程依赖Jar包对应的综合评分分值查询评分等级对照表,将综合评分分值对应的配置安全等级,确定为工程依赖Jar包对应的当前安全等级之后,Java项目工程安全校验方法还包括:(1)根据工程依赖Jar包对应的综合评分分值查询评分周期对照表,获取综合评分分值对应的配置生命周期,根据配置生命周期,确定工程依赖Jar包对应的初始生命周期;(2)将工程依赖Jar包对应的当前安全等级确定为初始安全等级,将工程依赖Jar包对应的Jar包开发信息、初始生命周期和初始安全等级,确定为工程依赖Jar包对应的Jar包汇总数据,将Jar汇总数据存储到系统数据库中。
其中,评分周期对照表是用于反映不同综合评分分值与对应的配置生命周期之间对应的关系的对照表。
作为一示例,服务器可基于工程依赖Jar包对应的综合评分分值查询系统预先设置的评分周期对照表,获取该综合评分分值对应的配置生命周期,再基于配置生命周期,确定工程依赖Jar包对应的初始生命周期。例如,可将工程依赖Jar包存储到系统Jar包仓中的系统当前时间确定为该工程依赖Jar包的起始时间Tb,将起始时间Tb与配置生命周期之和,确定为工程依赖Jar包的结束时间Te,从而可确定工程依赖Jar包对应的初始生命周期,以便将工程依赖Jar包存储到系统Jar包仓之后,可基于该初始生命周期进行生命周期评估。
作为一示例,服务器在将工程依赖Jar包对应的当前安全等级确定为初始安全等级,将工程依赖Jar包对应的Jar包开发信息、初始生命周期和初始安全等级,确定为工程依赖Jar包对应的Jar包汇总数据,将Jar汇总数据存储到系统数据库中,以便在系统当前时间之后,可基于该工程依赖Jar包对应的初始生命周期和初始安全等级,对工程依赖Jar包进行溯源,从而保障工程依赖Jar包的安全可追溯性。
在一实施例中,如图7所示,步骤S206,即基于所有工程依赖Jar包对应的当前安全等级,获取Java项目工程对应的项目安全等级,包括:
S701:对所有工程依赖Jar包对应的当前安全等级进行统计,确定每一种当前安全等级对应的Jar包数量;
S702:基于每一种当前安全等级对应的Jar包数量查询目标安全等级检视表,获取Java项目工程对应的项目安全等级。
其中,目标安全等级检视表是本次安全校验过程中用于反映当前安全等级对应的Jar包数量及其对应的项目安全等级之间对应关系的数据表。项目安全等级是用于评估Java项目工程的安全程度的等级,该项目安全等级可以为无风险等级、低风险等级、一般风险等级和高风险等级中的任一个。
作为一示例,步骤S701中,服务器可获取所有工程依赖Jar包对应的当前安全等级,此处的当前安全等级可以为禁用安全等级、慎选安全等级、可选安全等级和优选安全等级中的任一个;然后,服务器可统计每一种当前安全等级对应的Jar包数量,以便根据每一种当前安全等级对应的Jar包数量综合评估包括N个工程依赖Jar包的Java项目工程的项目安全等级。
作为一示例,步骤S702中,服务器可基于每一种当前安全等级对应的Jar包数量查询系统预先配置的目标安全等级检视表,获取与不同当前安全等级对应的Jar包数量相匹配的项目安全等级。例如,若所有工程依赖Jar包的当前安全等级均为优选安全等级,即优选安全等级的Jar包数量为N,则获取Java项目工程的项目安全等级为无风险等级。又例如,若所有工程依赖Jar包的当前安全等级均为优选安全等级或可选安全等级,且存在K个工程依赖Jar包的当前安全等级为可选安全等级,即可选安全等级的Jar包数量为K,优选安全等级的Jar包数量为N-K,则获取Java项目工程的项目安全等级为低风险等级。又例如,若不多于10%*N个工程依赖Jar包的当前安全等级为慎选安全等级,且0个工程依赖Jar包的当前安全等级为禁用安全等级,则获取Java项目工程的项目安全等级为一般风险等级。又例如,若多于10%*N个工程依赖Jar包的当前安全等级为慎选安全等级,且0个工程依赖Jar包的当前安全等级为禁用安全等级,则获取Java项目工程的项目安全等级为高风险等级。或者有至少一个工程依赖Jar包的当前安全等级为禁用安全等级,则Java项目工程的项目安全等级为高风险等级。
在一示例中,服务器在执行基于每一种当前安全等级对应的Jar包数量查询目标安全等级检视表,获取Java项目工程对应的项目安全等级之前,还执行如下步骤:(1)查询系统数据库,判断系统数据库是否存在自定义安全等级检视表。该自定义安全等级检视表是用户自定义的用于反映不同安全等级对应的Jar包数量及其对应的项目安全等级之间的对应关系的数据表。(2)若系统数据库中存在自定义安全等级检视表,则将该自定义安全等级检视表,确定为目标安全等级检视表,以使确定的目标安全等级检视表可有效反映安全等级评估的自主性,使其更容易满足用户的需求。(3)若系统数据库中不存在自定义安全等级检视表,则将默认安全等级检视表,确定为目标安全等级检视表,以保障目标安全等级检视表的获取效率。该默认安全等级检视表是系统默认设置的用于反映不同安全等级对应的Jar包数量及其对应的项目安全等级之间的对应关系的数据表。
在一实施例中,如图8所示,步骤S206之后,即基于所有工程依赖Jar包对应的当前安全等级,获取Java项目工程对应的项目安全等级之后,Java项目工程安全校验方法还包括:
S801:若工程依赖Jar包对应的当前安全等级为禁用安全等级或者慎选安全等级,则基于工程依赖Jar包查询系统Jar包仓,获取与工程依赖Jar包功能相同的推荐依赖Jar包,推荐依赖Jar包的当前安全等级为可选安全等级或者优选安全等级;
S802:基于Java项目工程对应的项目安全等级和推荐依赖Jar包,形成Java项目工程对应的综合分析报告,将综合分析报告发送给开发终端。
其中,推荐依赖Jar包为与工程依赖Jar包功能相同但其安全等级较好的Jar包。
作为一示例,步骤S801中,服务器在每一工程依赖Jar包对应的当前安全等级为禁用安全等级或者慎选安全等级时,认定工程依赖Jar包应用到Java项目工程的风险较大,此时,需基于工程依赖Jar包的Jar包开发信息查询系统Jar包仓,从系统Jar包仓中获取与工程依赖Jar包相匹配的推荐依赖Jar包,该推荐依赖Jar包为与工程依赖Jar包功能相同但其当前安全等级为可选安全等级或者优选安全等级,相比而言,推荐依赖Jar包更安全。
作为一示例,步骤S802中,服务器可基于Java项目工程对应的项目安全等级和推荐依赖Jar包,采用预先配置的分析报告模板,对项目安全等级和推荐依赖Jar包进行处理,以形成综合分析报告,以将综合分析报告发送到开发Java项目工程对应的开发人员所在的开发终端,以使开发人员及时了解Java项目工程的安全等级以及决定是否需要采用推荐依赖Jar包替换当前安全等级为禁用安全等级或者慎选安全等级的工程依赖Jar包,以保障Java项目工程的安全性以及开发效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种Java项目工程安全校验装置,该Java项目工程安全校验装置与上述实施例中Java项目工程安全校验方法一一对应。如图9所示,该Java项目工程安全校验装置包括Java项目工程获取模块901、工程依赖Jar包获取模块902、在仓依赖Jar包判断模块903、在仓安全等级校验模块904、新增安全等级校验模块905和项目安全等级获取模块906。各功能模块详细说明如下:
Java项目工程获取模块901,用于获取基于Java编译工具开发的Java项目工程;
工程依赖Jar包获取模块902,用于对Java项目工程进行编译处理,获取Java项目工程对应的工程依赖Jar包;
在仓依赖Jar包判断模块903,用于基于工程依赖Jar包查询系统Jar包仓,判断是否存在与工程依赖Jar包相对应的在仓依赖Jar包;
在仓安全等级校验模块904,用于若存在与工程依赖Jar包相对应的在仓依赖Jar包,则执行在仓校验流程,对工程依赖Jar包进行在仓安全等级校验,获取工程依赖Jar包对应的当前安全等级;
新增安全等级校验模块905,用于若不存在与工程依赖Jar包相对应的在仓依赖Jar包,则执行新增校验流程,对工程依赖Jar包进行新增安全等级校验,获取工程依赖Jar包对应的当前安全等级;
项目安全等级获取模块906,用于基于所有工程依赖Jar包对应的当前安全等级,获取Java项目工程对应的项目安全等级。
优选地,工程依赖Jar包获取模块902,包括:
洁净编译环境生成单元,用于生成Java项目工程对应的洁净编译环境;
工程依赖Jar包缓存单元,用于在洁净编译环境中,对Java项目工程进行编译,将Java项目工程对应的工程依赖Jar包下载到洁净编译环境对应的缓存目录,将工程依赖Jar包对应的Jar包开发信息存储到缓存目录对应的Jar包依赖树中。
优选地,在仓安全等级校验模块904,包括:
生命周期评估结果获取单元,用于基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的初始生命周期,根据初始生命周期和系统当前时间,获取工程依赖Jar包对应的生命周期评估结果;
优化评估结果获取单元,用于基于工程依赖Jar包查询Jar包数据表,获取工程依赖Jar包对应的Jar包开发信息,根据Jar包开发信息判断工程依赖Jar包是否为优化依赖Jar包,获取工程依赖Jar包对应的优化评估结果;
来源检测结果获取单元,用于对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
安全检测结果获取单元,用于对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
内部评审结果获取单元,用于基于工程依赖Jar包触发内部评审请求,基于内部评审请求,获取工程依赖Jar包对应的内部评审结果;
第一综合评估处理单元,用于对工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取工程依赖Jar包对应的当前安全等级。
优选地,新增安全等级校验模块905,包括:
来源检测结果获取单元,用于对工程依赖Jar包进行来源检测,获取工程依赖Jar包对应的来源检测结果;
安全检测结果获取单元,用于对工程依赖Jar包进行安全检测,获取工程依赖Jar包对应的安全检测结果;
性能检测结果获取单元,用于对工程依赖Jar包进行性能检测,获取工程依赖Jar包对应的性能检测结果;
功能检测结果获取单元,用于对工程依赖Jar包进行功能检测,获取工程依赖Jar包对应的功能检测结果;
第二综合评估处理单元,用于对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的当前安全等级。
优选地,第二综合评估处理单元,包括:
综合评分分值获取子单元,用于对工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取工程依赖Jar包对应的综合评分分值;
当前安全等级获取子单元,用于根据工程依赖Jar包对应的综合评分分值查询评分等级对照表,将综合评分分值对应的配置安全等级,确定为工程依赖Jar包对应的当前安全等级。
优选地,项目安全等级获取模块906,包括:
Jar包数量统计单元,用于对所有工程依赖Jar包对应的当前安全等级进行统计,确定每一种当前安全等级对应的Jar包数量;
项目安全等级获取单元,用于基于每一种当前安全等级对应的Jar包数量查询目标安全等级检视表,获取Java项目工程对应的项目安全等级。
优选地,Java项目工程安全校验装置还包括:
推荐依赖Jar包获取单元,用于若工程依赖Jar包对应的当前安全等级为禁用安全等级或者慎选安全等级,则基于工程依赖Jar包查询系统Jar包仓,获取与工程依赖Jar包功能相同的推荐依赖Jar包,推荐依赖Jar包的当前安全等级为可选安全等级或者优选安全等级;
综合分析报告发送单元,用于基于Java项目工程对应的项目安全等级和推荐依赖Jar包,形成Java项目工程对应的综合分析报告,将综合分析报告发送给开发终端。
关于Java项目工程安全校验装置的具体限定可以参见上文中对于Java项目工程安全校验方法的限定,在此不再赘述。上述Java项目工程安全校验装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行Java项目工程安全校验方法过程中采用或生成的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Java项目工程安全校验方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中Java项目工程安全校验方法,例如图2所示S201-S206,或者图3至图8中所示,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现Java项目工程安全校验装置这一实施例中的各模块/单元的功能,例如图9所示的Java项目工程获取模块901、工程依赖Jar包获取模块902、在仓依赖Jar包判断模块903、在仓安全等级校验模块904、新增安全等级校验模块905和项目安全等级获取模块906的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中Java项目工程安全校验方法,例如图2所示S201-S206,或者图3至图8中所示,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述Java项目工程安全校验装置这一实施例中的各模块/单元的功能,例如图9所示的Java项目工程获取模块901、工程依赖Jar包获取模块902、在仓依赖Jar包判断模块903、在仓安全等级校验模块904、新增安全等级校验模块905和项目安全等级获取模块906的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (10)

1.一种Java项目工程安全校验方法,其特征在于,包括:
获取基于Java编译工具开发的Java项目工程;
对所述Java项目工程进行编译处理,获取所述Java项目工程对应的工程依赖Jar包;
基于所述工程依赖Jar包查询系统Jar包仓,判断是否存在与所述工程依赖Jar包相对应的在仓依赖Jar包;
若存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
若不存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
基于所有所述工程依赖Jar包对应的当前安全等级,获取所述Java项目工程对应的项目安全等级。
2.如权利要求1所述的Java项目工程安全校验方法,其特征在于,所述对所述Java项目工程进行编译处理,获取所述Java项目工程对应的工程依赖Jar包,包括:
生成所述Java项目工程对应的洁净编译环境;
在所述洁净编译环境中,对所述Java项目工程进行编译,将所述Java项目工程对应的工程依赖Jar包下载到所述洁净编译环境对应的缓存目录,将所述工程依赖Jar包对应的Jar包开发信息存储到所述缓存目录对应的Jar包依赖树中。
3.如权利要求1所述的Java项目工程安全校验方法,其特征在于,所述执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级,包括:
基于所述工程依赖Jar包查询Jar包数据表,获取所述工程依赖Jar包对应的初始生命周期,根据所述初始生命周期和系统当前时间,获取所述工程依赖Jar包对应的生命周期评估结果;
基于所述工程依赖Jar包查询Jar包数据表,获取所述工程依赖Jar包对应的Jar包开发信息,根据所述Jar包开发信息判断所述工程依赖Jar包是否为优化依赖Jar包,获取所述工程依赖Jar包对应的优化评估结果;
对所述工程依赖Jar包进行来源检测,获取所述工程依赖Jar包对应的来源检测结果;
对所述工程依赖Jar包进行安全检测,获取所述工程依赖Jar包对应的安全检测结果;
基于所述工程依赖Jar包触发内部评审请求,基于所述内部评审请求,获取所述工程依赖Jar包对应的内部评审结果;
对所述工程依赖Jar包对应的生命周期评估结果、优化评估结果、来源检测结果、安全检测结果和内部评审结果进行综合评估,获取所述工程依赖Jar包对应的当前安全等级。
4.如权利要求1所述的Java项目工程安全校验方法,其特征在于,所述执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的当前安全等级,包括:
对所述工程依赖Jar包进行来源检测,获取所述工程依赖Jar包对应的来源检测结果;
对所述工程依赖Jar包进行安全检测,获取所述工程依赖Jar包对应的安全检测结果;
对所述工程依赖Jar包进行性能检测,获取所述工程依赖Jar包对应的性能检测结果;
对所述工程依赖Jar包进行功能检测,获取所述工程依赖Jar包对应的功能检测结果;
对所述工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取所述工程依赖Jar包对应的当前安全等级。
5.如权利要求4所述的Java项目工程安全校验方法,其特征在于,所述对所述工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取所述工程依赖Jar包对应的当前安全等级,包括:
对所述工程依赖Jar包对应的来源检测结果、安全检测结果、性能检测结果和功能检测结果进行综合评估,获取所述工程依赖Jar包对应的综合评分分值;
根据所述工程依赖Jar包对应的综合评分分值查询评分等级对照表,将所述综合评分分值对应的配置安全等级,确定为所述工程依赖Jar包对应的当前安全等级。
6.如权利要求1所述的Java项目工程安全校验方法,其特征在于,所述基于所有所述工程依赖Jar包对应的当前安全等级,获取所述Java项目工程对应的项目安全等级,包括:
对所有所述工程依赖Jar包对应的当前安全等级进行统计,确定每一种当前安全等级对应的Jar包数量;
基于每一种当前安全等级对应的Jar包数量查询目标安全等级检视表,获取所述Java项目工程对应的项目安全等级。
7.如权利要求1所述的Java项目工程安全校验方法,其特征在于,所述基于所有所述工程依赖Jar包对应的当前安全等级,获取所述Java项目工程对应的项目安全等级之后,所述Java项目工程安全校验方法还包括:
若所述工程依赖Jar包对应的当前安全等级为禁用安全等级或者慎选安全等级,则基于所述工程依赖Jar包查询系统Jar包仓,获取与所述工程依赖Jar包功能相同的推荐依赖Jar包,所述推荐依赖Jar包的当前安全等级为可选安全等级或者优选安全等级;
基于所述Java项目工程对应的项目安全等级和所述推荐依赖Jar包,形成所述Java项目工程对应的综合分析报告,将所述综合分析报告发送给开发终端。
8.一种Java项目工程安全校验装置,其特征在于,包括:
Java项目工程获取模块,用于获取基于Java编译工具开发的Java项目工程;
工程依赖Jar包获取模块,用于对所述Java项目工程进行编译处理,获取所述Java项目工程对应的工程依赖Jar包;
在仓依赖Jar包判断模块,用于基于所述工程依赖Jar包查询系统Jar包仓,判断是否存在与所述工程依赖Jar包相对应的在仓依赖Jar包;
在仓安全等级校验模块,用于若存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行在仓校验流程,对所述工程依赖Jar包进行在仓安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
新增安全等级校验模块,用于若不存在与所述工程依赖Jar包相对应的在仓依赖Jar包,则执行新增校验流程,对所述工程依赖Jar包进行新增安全等级校验,获取所述工程依赖Jar包对应的当前安全等级;
项目安全等级获取模块,用于基于所有所述工程依赖Jar包对应的当前安全等级,获取所述Java项目工程对应的项目安全等级。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述Java项目工程安全校验方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述Java项目工程安全校验方法。
CN202110738009.2A 2021-06-30 2021-06-30 Java项目工程安全校验方法、装置、计算机设备及存储介质 Active CN113343222B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110738009.2A CN113343222B (zh) 2021-06-30 2021-06-30 Java项目工程安全校验方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110738009.2A CN113343222B (zh) 2021-06-30 2021-06-30 Java项目工程安全校验方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113343222A true CN113343222A (zh) 2021-09-03
CN113343222B CN113343222B (zh) 2022-08-02

Family

ID=77481841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110738009.2A Active CN113343222B (zh) 2021-06-30 2021-06-30 Java项目工程安全校验方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113343222B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104676A (zh) * 2019-12-06 2020-05-05 携程旅游信息技术(上海)有限公司 第三方组件的安全检测方法、系统、设备及可读存储介质
CN111783103A (zh) * 2020-07-03 2020-10-16 Oppo广东移动通信有限公司 基于Maven的依赖管理方法、装置、电子装置及存储介质
CN112115473A (zh) * 2020-09-15 2020-12-22 四川长虹电器股份有限公司 一种用于Java开源组件安全检测的方法
CN112118251A (zh) * 2020-09-15 2020-12-22 四川长虹电器股份有限公司 一种基于maven插件的Java项目开源组件的漏洞检测方法
CN112800430A (zh) * 2021-02-01 2021-05-14 苏州棱镜七彩信息科技有限公司 适用于开源组件的安全与合规治理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104676A (zh) * 2019-12-06 2020-05-05 携程旅游信息技术(上海)有限公司 第三方组件的安全检测方法、系统、设备及可读存储介质
CN111783103A (zh) * 2020-07-03 2020-10-16 Oppo广东移动通信有限公司 基于Maven的依赖管理方法、装置、电子装置及存储介质
CN112115473A (zh) * 2020-09-15 2020-12-22 四川长虹电器股份有限公司 一种用于Java开源组件安全检测的方法
CN112118251A (zh) * 2020-09-15 2020-12-22 四川长虹电器股份有限公司 一种基于maven插件的Java项目开源组件的漏洞检测方法
CN112800430A (zh) * 2021-02-01 2021-05-14 苏州棱镜七彩信息科技有限公司 适用于开源组件的安全与合规治理方法

Also Published As

Publication number Publication date
CN113343222B (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
EP3693874B1 (en) Continuous vulnerability management for modern applications
US10120778B1 (en) Security validation of software delivered as a service
US10346282B2 (en) Multi-data analysis based proactive defect detection and resolution
US9910743B2 (en) Method, system and device for validating repair files and repairing corrupt software
CN110730107B (zh) 测试数据生成方法、装置、计算机设备和存储介质
US20160110547A1 (en) Systems and methods for analysis of cross-site scripting vulnerabilities
US20180075233A1 (en) Systems and methods for agent-based detection of hacking attempts
KR101507469B1 (ko) 소스 코드 분석 서비스 제공 방법
Luo et al. Time does not heal all wounds: A longitudinal analysis of security-mechanism support in mobile browsers
CN108400978B (zh) 漏洞检测方法、装置、计算机设备和存储介质
CN109255240B (zh) 一种漏洞处理方法和装置
IL265518B2 (en) Management of security vulnerabilities
US11726896B2 (en) Application monitoring using workload metadata
US11836258B2 (en) Detecting exploitable paths in application software that uses third-party libraries
US11695793B2 (en) Vulnerability scanning of attack surfaces
CN113343223B (zh) Jar包安全监控方法、装置、计算机设备及存储介质
CN110990249B (zh) 代码扫描结果处理方法、装置、计算机设备及存储介质
CN113343222B (zh) Java项目工程安全校验方法、装置、计算机设备及存储介质
CN116992438A (zh) 基于代码疫苗的实时漏洞修复的方法、装置、设备及介质
CN116541847A (zh) 一种应用程序的安全检测方法及装置
CN114386047A (zh) 应用漏洞检测方法、装置、电子设备及存储介质
RU2696951C1 (ru) Способ защиты программного обеспечения от недекларированных возможностей, содержащихся в получаемых обновлениях
Wu et al. Framework for assessing cloud trustworthiness
CN115544465B (zh) 一种用于软件构建的第三方组件的安全管控方法及装置
CN116415244A (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