CN112118251A - 一种基于maven插件的Java项目开源组件的漏洞检测方法 - Google Patents
一种基于maven插件的Java项目开源组件的漏洞检测方法 Download PDFInfo
- Publication number
- CN112118251A CN112118251A CN202010967039.6A CN202010967039A CN112118251A CN 112118251 A CN112118251 A CN 112118251A CN 202010967039 A CN202010967039 A CN 202010967039A CN 112118251 A CN112118251 A CN 112118251A
- Authority
- CN
- China
- Prior art keywords
- open source
- source component
- maven
- component
- plug
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于maven插件的Java项目开源组件的漏洞检测方法,包括云端从maven仓库同步开源组件信息,并对开源组件进行安全风险等级标注,得到开源组件的安全状态;客户端构建maven插件,maven插件用于采集项目中引用的开源组件的坐标信息,maven插件得到开源组件的坐标信息,达到maven插件的漏洞检测触发条件时,maven插件调用云端存储的开源组件的安全状态进行对比分析,得到开源组件的安全状态。本发明采用maven插件的方式获取项目开发中引用的开源组件,调用云端存储的组件安全状态,确定组件安全性,组件采集准确,实时性高,通过maven插件方式不存在误报。
Description
技术领域
本发明涉及网络安全技术领域,具体的说,是一种基于maven插件的Java项目开源组件的漏洞检测方法。
背景技术
当前互联网上发生的大部分攻击事件,大多跟程序组件漏洞相关的,因此及时发现组件漏洞并修复能减少网络安全事件的发生,显得非常重要。通常的解决方法是在项目开发完成后进行包扫描进行检测,如引入扫描器在项目发布的时候进行扫描,这种方式存在缺点:1)扫描器采用指纹识别存在误报;2)项目开发完成再修复相关组件漏洞对项目整体影响较大,包括组件升级和组件替换的过程中造成组件不兼容问题,从而造成项目代码大幅改动。
发明内容
本发明的目的在于提供一种基于maven插件的Java项目开源组件的漏洞检测方法,用于解决现有技术中在项目发布时进行漏洞检测,检测不及时以及修复漏洞需要大幅改动项目代码的问题。
本发明通过下述技术方案解决上述问题:
一种基于maven插件的Java项目开源组件的漏洞检测方法,包括:
步骤S100:云端从maven仓库同步开源组件信息,包括开源组件的三个坐标信息:groupId、artifactId和version;并按照设定的安全策略对开源组件进行安全风险等级标注,得到开源组件的安全状态;
步骤S200:客户端构建maven插件,maven插件用于采集项目中引用的开源组件的坐标信息,maven插件通过解析开源组件的pom.xml文件,获取<dependency>节点中的值得到开源组件的坐标信息,
步骤S300:达到maven插件的漏洞检测触发条件时,maven插件根据获取的开源组件信息,调用云端存储的组件安全信息的接口获取开源组件的安全状态进行对比分析,得到项目中引用的开源组件的安全状态,若存在风险,则提示用户更换安全的开源组件。
采用maven插件的方式获取项目开发中引用的开源组件,并通过接口调用云端存储的相关组件安全状态,确定组件安全性;采用maven插件的方式,实时地进行组件安全性判断,组件采集准确,实时性高;通过maven插件方式不存在误报。
为了保证检测的实时性,所述maven插件的漏洞检测触发条件包括:
A:当监听到项目中引用的开源组件配置文件pom.xml文件的md5值变化时触发;如可采用定时任务每隔1分钟计算pom.xml文件的md5值,将md5值与前一次的md5值进行对比,若md5值发生变化则触发。
B:运行maven编译或打包命令触发。
本发明与现有技术相比,具有以下优点及有益效果:
本发明采用maven插件的方式获取项目开发中引用的开源组件,并通过接口调用云端存储的相关组件安全状态,确定组件安全性;实时地进行组件安全性判断,组件采集准确,实时性高,通过maven插件方式不存在误报。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
一种基于maven插件的Java项目开源组建的漏洞检测方法,包括:
1.云端平台从maven仓库中同步所有java开源组件信息,主要包括开源组件的三个坐标信息:groupId、artifactId、version,这三个坐标信息能唯一确定一个组件;
2.根据步骤1中获取的相关的开源组件,通过手动填报组件风险信息和自动发现组件风险两种方式标识开源组件的安全性。开源组件的安全性分为四种:高危风险,中危风险,低危风险,无风险。采用爬虫的方式从国家信息安全漏洞库、国家信息安全漏洞共享平台等获取开源组件的安全状态,并将结果存到数据库中。如果开源组件存在高危风险的漏洞则标记为高危风险,不存在高危风险,存在中危风险的漏洞则标记为中危风险,以此类推,并按照组件漏洞的最高风险等级标记组件的安全风险等级;
3.客户端maven插件构建,maven插件被配置为采集项目所引用的开源组件坐标信息。
maven插件构建方式:通过java代码继承AbstractMojo类,通过重写execute方法实现maven插件功能,最后在pom.xml中通过如下方式引入:
采集坐标的具体过程:读取项目中的pom.xml文件,并用xml的方式解析pom.xml中的内容,找到<dependencies>节点,并获取其中的<groupId>节点的值为maven坐标的groupId,<artifactId>节点的值为maven坐标的artifactId,<version>节点的值为maven坐标中的version。
4.maven插件获取到的开源组件信息,调用云端存储的组件安全信息的接口获取组件安全状态,并对存在漏洞的组件提示错误信息或者提示用户更换安全性高的开源组件。
本专利方案能够很好的解决java项目开发中引用组件存在漏洞的问题,从而避免项目上线被黑客利用组件漏洞进行攻击。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (3)
1.一种基于maven插件的Java项目开源组件的漏洞检测方法,其特征在于,包括:
步骤S100:云端从maven仓库同步开源组件信息,包括开源组件的三个坐标信息:groupId、artifactId和version;并按照设定的安全策略对开源组件进行安全风险等级标注,得到开源组件的安全状态;
步骤S200:客户端构建maven插件,maven插件用于采集项目中引用的开源组件的坐标信息,maven插件通过解析开源组件的pom.xml文件,获取<dependency>节点中的值得到开源组件的坐标信息,
步骤S300:达到maven插件的漏洞检测触发条件时,maven插件根据获取的开源组件信息,调用云端存储的组件安全信息的接口获取开源组件的安全状态进行对比分析,得到项目中引用的开源组件的安全状态,若存在风险,则提示用户更换安全的开源组件。
2.根据权利要求1所述的一种基于maven插件的Java项目开源组件的漏洞检测方法,其特征在于,所述maven插件的漏洞检测触发条件包括:
A:当监听到项目中引用的开源组件配置文件pom.xml文件的md5值变化时触发;
B:运行maven编译或打包命令触发。
3.根据权利要求2所述的一种基于maven插件的Java项目开源组件的漏洞检测方法,其特征在于,所述A采用定时任务每隔1分钟计算pom.xml文件的md5值,将md5值与前一次的md5值进行对比,若md5值发生变化则触发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010967039.6A CN112118251A (zh) | 2020-09-15 | 2020-09-15 | 一种基于maven插件的Java项目开源组件的漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010967039.6A CN112118251A (zh) | 2020-09-15 | 2020-09-15 | 一种基于maven插件的Java项目开源组件的漏洞检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112118251A true CN112118251A (zh) | 2020-12-22 |
Family
ID=73802242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010967039.6A Pending CN112118251A (zh) | 2020-09-15 | 2020-09-15 | 一种基于maven插件的Java项目开源组件的漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112118251A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343222A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | Java项目工程安全校验方法、装置、计算机设备及存储介质 |
CN113343223A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | Jar包安全监控方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232279A (zh) * | 2019-06-06 | 2019-09-13 | 深圳前海微众银行股份有限公司 | 一种漏洞检测方法及装置 |
US20200042712A1 (en) * | 2018-07-31 | 2020-02-06 | Veracode, Inc. | Open-source software vulnerability analysis |
CN110806978A (zh) * | 2019-10-31 | 2020-02-18 | 吉林亿联银行股份有限公司 | 一种第三方组件的缺陷管理方法及装置 |
CN111625839A (zh) * | 2020-05-29 | 2020-09-04 | 深圳前海微众银行股份有限公司 | 第三方组件漏洞检测方法、装置、设备及计算机存储介质 |
-
2020
- 2020-09-15 CN CN202010967039.6A patent/CN112118251A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200042712A1 (en) * | 2018-07-31 | 2020-02-06 | Veracode, Inc. | Open-source software vulnerability analysis |
CN110232279A (zh) * | 2019-06-06 | 2019-09-13 | 深圳前海微众银行股份有限公司 | 一种漏洞检测方法及装置 |
CN110806978A (zh) * | 2019-10-31 | 2020-02-18 | 吉林亿联银行股份有限公司 | 一种第三方组件的缺陷管理方法及装置 |
CN111625839A (zh) * | 2020-05-29 | 2020-09-04 | 深圳前海微众银行股份有限公司 | 第三方组件漏洞检测方法、装置、设备及计算机存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343222A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | Java项目工程安全校验方法、装置、计算机设备及存储介质 |
CN113343223A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | Jar包安全监控方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273751B (zh) | 基于多模式匹配的安全漏洞在线发现方法 | |
Chen et al. | Tokenscope: Automatically detecting inconsistent behaviors of cryptocurrency tokens in ethereum | |
CN109063421B (zh) | 一种开源许可证合规性分析与冲突性检测方法 | |
Ray et al. | Detecting and characterizing semantic inconsistencies in ported code | |
Pashchenko et al. | Vuln4real: A methodology for counting actually vulnerable dependencies | |
CN112182588B (zh) | 基于威胁情报的操作系统漏洞分析检测方法及系统 | |
Martinez et al. | Automatically extracting instances of code change patterns with ast analysis | |
CN112118251A (zh) | 一种基于maven插件的Java项目开源组件的漏洞检测方法 | |
CN112434305B (zh) | 基于补丁的漏洞检测方法、装置、存储介质和电子设备 | |
CN109255240B (zh) | 一种漏洞处理方法和装置 | |
CN115794629A (zh) | 软件成分检测方法、电子设备及计算机可读存储介质 | |
CN110851352A (zh) | 一种模糊测试系统及终端设备 | |
CN108446224B (zh) | 移动端上应用程序的性能分析方法、存储介质 | |
CN110457220A (zh) | 基于安卓系统的模拟器检测方法、智能终端及存储介质 | |
CN115033894A (zh) | 一种基于知识图谱的软件组件供应链安全检测方法及装置 | |
CN116383833A (zh) | 软件程序代码的测试方法及其装置、电子设备、存储介质 | |
CN109815697A (zh) | 误报行为处理方法及装置 | |
Huang et al. | Characterizing and detecting configuration compatibility issues in android apps | |
Marchand-Melsom et al. | Automatic repair of OWASP Top 10 security vulnerabilities: A survey | |
Peters et al. | How does migrating to kotlin impact the run-time efficiency of android apps? | |
CN114860573A (zh) | 软件成分的分析方法、装置、电子设备及存储介质 | |
Ufuktepe et al. | Tracking code bug fix ripple effects based on change patterns using markov chain models | |
CN113901459B (zh) | 固件内部二进制程序脆弱性发现方法及装置 | |
CN115033892A (zh) | 一种组件漏洞分析方法、装置、电子设备及存储介质 | |
CN116010963A (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 |
Application publication date: 20201222 |
|
RJ01 | Rejection of invention patent application after publication |