一种用于Java开源组件安全检测的方法技术

技术编号:26791610 阅读:31 留言:0更新日期:2020-12-22 17:06
本发明专利技术公开了一种用于Java开源组件安全检测的方法,包括采用Maven搭建私有仓库,对私有仓库存储的开源组件标注安全风险等级,存储为第一开源组件;上传系统工程文件,通过在maven工程pom文件中配置maven依赖包信息提取插件解析系统工程文件,获取工程文件依赖的第二开源组件的列表;从第一开源组件查找出与第二开源组件分别对应的第三开源组件,将第二开源组件与第三开源组件对比,生成安全报告。本发明专利技术定义开源组件库,通过四个安全维度对开源组件进行安全标注,并对上传系统工程文件引用的开源组件进行检测,发现存在安全风险的开源组件,提高系统工程文件的安全性。

【技术实现步骤摘要】
一种用于Java开源组件安全检测的方法
本专利技术涉及网络安全
,具体的说,是一种用于Java开源组件安全检测的方法。
技术介绍
随着社会信息化的不断加深,计算机软件系统越来越复杂,软件功能越来越复杂,源代码越来越大,导致程序的正确性难以保证。软件开发过程中引入的大量缺陷,是产生软件漏洞的重要原因之一。系统攻击者可以借助软件安全漏洞轻易的绕过软件安全认证,对信息系统实施攻击和入侵,获取非法的系统用户权限,执行一系列非法操作和恶意攻击。在互联网的大潮中,越来越多的互联网公司正在逐步加大软件研发力度,提升相关产品的软件技术含量。在这过程中会涉及众多的开源组件和开源软件的使用与二次开发,因此急需对开源组件和开源软件进行安全检测,而现有技术中尚没有这样对开源组件和开源软件进行安全检测的方法。
技术实现思路
本专利技术的目的在于提供一种用于Java开源组件安全检测的方法,用于解决现有技术中尚没有对开源组件进行安全检测方法的问题。本专利技术通过下述技术方案解决上述问题:一种用于Java开源组件安全检测的方法,包括:步骤S100:采用Maven搭建私有仓库,对私有仓库存储的开源组件标注安全风险等级,存储为第一开源组件;步骤S200:上传系统工程文件,通过在maven工程pom文件中配置maven依赖包信息提取插件解析系统工程文件,获取工程文件依赖的第二开源组件的列表;步骤S300:从第一开源组件查找出与第二开源组件分别对应的第三开源组件,将第二开源组件与第三开源组件对比,生成安全报告。所述步骤S200具体包括:步骤S210:为待检测的maven代码工程文件建立基线;步骤S220:从源码库摘取对应基线版本的源代码;步骤S230:编译源代码工程文件,下载工程文件依赖的依赖包;步骤S240:在maven工程pom文件中配置maven依赖包信息提取插件,并执行相应的maven命令,生成当前工程文件的maven依赖包信息数据文件。所述步骤S300具体包括:步骤S310:上传maven依赖包信息数据文件;步骤S320:查询maven开源依赖包安全数据库,逐一对比maven依赖包信息,生成安全报告。所述步骤S100中的安全风险等级采用三个维度进行标注,三个个维度分别是授权许可验证、病毒木马检测和安全漏洞检测;所述授权许可验证的方法为:获取开源组件的授权许可信息,根据授权许可信息进行安全风险分类;所述病毒木马检测的方法为:通过集成现有病毒木马检测接口,对开源组件进行病毒木马检测;所述安全漏洞检测的方法为:通过集成现有安全漏洞扫描软件接口,对开源组件进行漏洞检测。所述步骤S300生成安全报告之前,还需要进行文件防篡改验证并将验证结果添加到安全报告中,所述文件防篡改验证的方法为:对第二开源组件与第三开源组件分别进行MD5、SHA1和SHA256匹配,确定文件篡改风险等级。私有仓库还存储有开源软件,对开源软件的安全检测与开源组件的检测方法相同。本专利技术与现有技术相比,具有以下优点及有益效果:本专利技术定义了完整的开源组件库和开源软件库,通过授权许可(License)验证、病毒木马检测、文件防篡改验证和安全漏洞检测四个安全维度对开源组件和软件进行安全性标准,并对上传系统工程文件引用的开源组件和软件进行检测,以便发现其中存在安全风险的开源组件和软件,并提供整改建议,提高系统工程文件的安全性。附图说明图1为本专利技术的流程图。具体实施方式下面结合实施例对本专利技术作进一步地详细说明,但本专利技术的实施方式不限于此。实施例:结合附图1所示,一种用于Java开源组件安全检测的方法,包括:步骤S100:采用Maven搭建私有仓库,对私有仓库存储的开源组件标注安全风险等级,存储为第一开源组件;步骤S200:上传系统工程文件,通过在maven工程pom文件中配置maven依赖包信息提取插件解析系统工程文件,获取工程文件依赖的第二开源组件的列表;所述步骤S200具体包括:步骤S210:配置管理员为待检测的maven代码工程文件建立基线;步骤S220:开发人员现场从源码库摘取对应基线版本的源代码;步骤S230:开发人员编译源代码工程文件,下载工程文件依赖的依赖包到本地;步骤S240:开发人员在maven工程pom文件中配置maven依赖包信息提取插件,并执行相应的maven命令,生成当前工程文件的maven依赖包信息数据文件。插件坐标及配置如下:配置插件:获取坐标:mvncom.changhong.cloud:osc-sd-maven-plugin:1.0.0:detect\-Ddetect.projectCode=codeXXX-Ddetect.projectName=nameXXX\-Ddetect.email=somebody@changhong.com\-Ddetect.serviceUrl=http://oscsd.changhong.io/v1安全检查人员从开发单位拷贝得到maven依赖包信息数据文件。提取Java组件信息命令如下:windows系统./osc-sd-tool_windows_amd64.exelinux系统./osc-sd-tool_linux_amd64MacOS系统./osc-sd-tool_darwin_amd64安全检查人员上传maven依赖包信息数据文件。后台程序查询maven开源依赖包安全数据库,逐一对比maven依赖包信息,并生成安全报告。后台执行安全检测任务:mvncom.changhong.cloud:osc-sd-maven-plugin:1.0.0:detectmvncom.changhong.cloud:osc-sd-maven-plugin:1.0.0:detect\-Ddetect.projectCode=codeXXX-Ddetect.projectName=nameXXX\-Ddetect.email=somebody@changhong.com\-Ddetect.serviceUrl=http://oscsd.changhong.io/v1安全检查人员将安全报告反馈给开发人员。实施例2:更进一步的,所述步骤S100中的安全风险等级采用三个维度进行标注,三个个维度分别是授权许可验证、病毒木马检测和安全漏洞检测;所述授权许可(License)验证的方法为:获取开源组件的授权许可信息,根据授权许可信息进行安全风险分类;风险分类如下:MIT-低危风险-程序的开发者在修改后的源代码中保留原作者的许可信息;Apache1.0-中危风险-开本文档来自技高网...

【技术保护点】
1.一种用于Java开源组件安全检测的方法,其特征在于,包括:/n步骤S100:采用Maven搭建私有仓库,对私有仓库存储的开源组件标注安全风险等级,存储为第一开源组件;/n步骤S200:上传系统工程文件,通过在maven工程pom文件中配置maven依赖包信息提取插件解析系统工程文件,获取工程文件依赖的第二开源组件的列表;/n步骤S300:从第一开源组件查找出与第二开源组件分别对应的第三开源组件,将第二开源组件与第三开源组件对比,生成安全报告。/n

【技术特征摘要】
1.一种用于Java开源组件安全检测的方法,其特征在于,包括:
步骤S100:采用Maven搭建私有仓库,对私有仓库存储的开源组件标注安全风险等级,存储为第一开源组件;
步骤S200:上传系统工程文件,通过在maven工程pom文件中配置maven依赖包信息提取插件解析系统工程文件,获取工程文件依赖的第二开源组件的列表;
步骤S300:从第一开源组件查找出与第二开源组件分别对应的第三开源组件,将第二开源组件与第三开源组件对比,生成安全报告。


2.根据权利要求1所述的一种用于Java开源组件安全检测的方法,其特征在于,所述步骤S200具体包括:
步骤S210:为待检测的maven代码工程文件建立基线;
步骤S220:从源码库摘取对应基线版本的源代码;
步骤S230:编译源代码工程文件,下载工程文件依赖的依赖包;
步骤S240:在maven工程pom文件中配置maven依赖包信息提取插件,并执行相应的maven命令,生成当前工程文件的maven依赖包信息数据文件。


3.根据权利要求2所述的一种用于Java开源组件安...

【专利技术属性】
技术研发人员:廖雷李书红林正勇龙长春
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1