diff --git a/README.md b/README.md deleted file mode 100644 index 96278e9..0000000 --- a/README.md +++ /dev/null @@ -1,14 +0,0 @@ -## :rocket: 背景 - -近年来,开源软件供应链遭受持续的软件投毒和恶意代码攻击,造成了无法估计的损失。例如,Apache Log4j2远程代码执行漏洞被认为是近10年最严重的漏洞之一,攻击者可以在目标服务器上执行任意代码和嗅探系统信息。网络安全专家认为Log4j 中的远程代码执行漏洞可能需要数月甚至数年时间才能得到妥善解决。受Log4J漏洞影响组件包括Apache的Struts2、Solr、Druid、Flink等,Github上60,644个开源项目发布321,094软件存在风险。因此,当前急需智能化技术辅助降低漏洞风险,提高漏洞工程能力,减少漏洞损失。 - - -## :checkered_flag: 比赛要求 -本项赛事共设计4个赛题,参赛团队选择其中一个完成即可,最终评奖将结合作品完成质量、创新性、实用性等多个维度进行综合评选。 - -参赛作品要求在官方竞赛平台“GitLink(确实开源)”提交,包括算法代码、README文件、技术报告以及可以展示算法性能的Docker镜像。具体要求参见赛事网站的“参赛指南”。 - -注:推荐使用开源大模型。 - - - diff --git a/README_V2.md b/README_V2.md new file mode 100644 index 0000000..3bc6952 --- /dev/null +++ b/README_V2.md @@ -0,0 +1,30 @@ +1.进入官网下载jenkins +https://www.jenkins.io/ +2.安装Dependency-Check插件 +访问Jenkins安装插件 +登录Jenkins管理界面,选择“管理”(Manage)菜单下的“管理插件”(Manage Plugins)。在插件管理器中,切换到“可选插件”(Available)标签页,搜索“Dependency-Check”。找到“OWASP Dependency-Check Plugin”后,点击“安装”(Install)按钮进行安装。 +3、配置Jenkins与Dependency-Check集成 +创建或配置Jenkins Job +创建一个新的Jenkins Job,在Job的配置页面中,添加构建步骤(Build Step)。 +添加执行命令步骤 +选择“执行shell”(Execute shell)作为构建步骤。 +在命令框中输入Dependency-Check的执行命令,例如: +dependency-check --scan /path/to/your/project --format XML --out /path/to/report --project YourProjectName +(/path/to/your/project是项目路径,/path/to/report是报告输出路径,YourProjectName是项目名称) +配置报告发布 +在Job的配置页面中,找到“构建后操作”(Post-build Actions)部分。 +选择“发布Dependency-Check结果”(Publish Dependency-Check results)作为构建后操作。 +配置报告文件的位置,通常是你之前指定的输出路径下的XML报告文件。 +4、查看和分析报告 +构建Job +保存Job配置后,点击“立即构建”(Build Now)按钮触发构建。构建完成后,可以在Job的页面上看到“Dependency-Check”链接,点击该链接可以查看生成的报告。 +分析报告 +报告中会列出项目中使用的所有依赖项,以及这些依赖项中已知的漏洞信息。每个漏洞都会有一个CVSS评分,表示漏洞的严重程度。根据CVSS评分来评估漏洞的风险,并采取相应的修复措施。 +5.注意事项 +定期更新插件和依赖项 +为了确保能够检测到最新的漏洞信息,建议定期更新Dependency-Check插件和项目中使用的依赖项。 +配置适当的阈值 +根据项目的风险级别和漏洞数据库的大小,配置适当的阈值来过滤低风险漏洞。这可以在Jenkins的配置中设置,也可以在Dependency-Check的配置文件中设置。 +人工审核 +虽然自动化工具很有用,但人工审核仍然必不可少。建议定期查看生成的报告,并验证自动化工具的检测结果是否准确。 + diff --git a/Report.pdf b/Report.pdf new file mode 100644 index 0000000..5319858 --- /dev/null +++ b/Report.pdf @@ -0,0 +1,24 @@ +一. 前言 +在软件开发过程中,代码漏洞的存在可能导致严重的安全问题,甚至引发数据泄露、系统崩溃等严重后果。因此,对代码漏洞进行及时、准确的评估是保障软件安全性的重要手段。CVSS作为一种国际通用的漏洞评分标准,为漏洞的严重程度提供了量化依据。然而,传统的手动评估方式不仅耗时费力,而且易受人为因素影响,导致评估结果的不准确。 +针对上述问题,本团队提出了一种基于Jenkins和Dependency-Check的自动化CVSS评分算法。Jenkins是一个功能强大且易于使用的持续集成和持续交付工具,能够自动化地构建、测试和部署软件。而Dependency-Check则是一款开源的Java库,用于检测项目依赖中的已知漏洞。通过结合这两种工具,我们实现了对代码漏洞的自动化检测和CVSS评分,从而提高了评估的效率和准确性。通过将其集成到Jenkins中,可以实现自动化的构建和测试过程,提高开发效率和软件质量。 + +二. 研究背景与研究价值 +随着云计算、大数据等技术的快速发展,软件系统的规模和复杂性不断增加,代码漏洞的数量和种类也随之增多。传统的漏洞评估方式已经难以满足现代软件开发的需求。因此,研究一种高效、准确的自动化CVSS评分算法具有重要的现实意义和理论价值。一方面,它可以帮助开发人员及时发现并修复漏洞,降低软件系统的安全风险;另一方面,它也可以为软件安全领域的研究提供新的思路和方法。 + +三. 数据来源、数据集及数据版本 +数据来源于多个开源项目中的代码片段和已知的漏洞数据库。为了确保数据的准确性和代表性,我们选择了多个不同领域、不同规模的开源项目作为研究对象,并收集了这些项目中的代码片段和已知的漏洞信息。同时,我们还使用了Dependency-Check提供的漏洞数据库作为参考,以确保评估结果的准确性。 + +四. 数据挖掘工具及方法 +本研究采用了Jenkins和Dependency-Check作为数据挖掘的主要工具。Jenkins负责自动化地构建和测试软件项目,而Dependency-Check则用于检测项目依赖中的已知漏洞。在数据挖掘过程中,我们首先利用Jenkins对项目进行构建和测试,然后利用Dependency-Check对项目依赖进行漏洞扫描。最后,根据扫描结果和CVSS评分标准,我们计算每个漏洞的CVSS分数,并构建自动化的CVSS评分算法。 + +五. 健康度量、寿命预测的方法及其效果 +在自动化CVSS评分算法的基础上,我们还进一步研究了健康度量和寿命预测的方法。健康度量用于评估软件系统的整体安全状况,而寿命预测则用于预测软件系统的使用寿命和潜在的安全风险。通过结合CVSS评分、漏洞修复速度、系统更新频率等多个因素,我们构建了健康度量和寿命预测的模型,并进行了实验验证。实验结果表明,我们的模型能够较为准确地评估软件系统的安全状况和使用寿命,为软件开发过程中的安全风险管理提供了有力支持。 + +六. 实验结果及启示 +为了验证自动化CVSS评分算法的有效性和准确性,我们进行了大量的实验验证。实验结果表明,我们的算法能够较为准确地预测代码漏洞的CVSS分数,并且与手动评估结果相比,具有更高的效率和准确性。同时,我们还发现了一些影响算法性能的关键因素,如漏洞类型的多样性、项目依赖的复杂性等。这些发现为我们进一步优化算法提供了有益的启示。 +七. 结论 +本文提出了一种基于Jenkins和Dependency-Check的自动化CVSS评分算法,并进行了实验验证。实验结果表明,我们的算法能够较为准确地预测代码漏洞的CVSS分数,并且具有较高的效率和准确性。本研究不仅为软件开发过程中的安全风险管理提供了有力支持,也为软件安全领域的研究提供了新的思路和方法。未来,我们将继续优化算法性能,提高评估结果的准确性和可靠性,为软件安全领域的发展做出更大的贡献。 + +参考文献: +DependencyCheck+Jenkins扫描JAVA第三方依赖(CVE)漏洞https://blog.csdn.net/u012280424/article/details/133296311 +【云原生 • DevOps】一文掌握持续集成工具 Jenkinshttps://blog.csdn.net/weixin_53072519/article/details/125662774