开源智能化漏洞工程大赛 #3

Open
pioneer_ling wants to merge 5 commits from pioneer_ling/competition-vd:master into master
3 changed files with 54 additions and 14 deletions

View File

@ -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镜像。具体要求参见赛事网站的“参赛指南”。
注:推荐使用开源大模型。

30
README_V2.md Normal file
View File

@ -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的配置文件中设置。
人工审核
虽然自动化工具很有用,但人工审核仍然必不可少。建议定期查看生成的报告,并验证自动化工具的检测结果是否准确。

24
Report.pdf Normal file
View File

@ -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