From 5aa948899541843bb63b76c06da540e2bed25777 Mon Sep 17 00:00:00 2001 From: Wzzz <3305341274@qq.com> Date: Thu, 15 May 2025 21:26:37 +0800 Subject: [PATCH] ADD file via upload --- README.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8600aac --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ + + +# 第18届中国大学生计算机设计大赛 + +# “漏洞分阶——NLP 文本大模型漏洞等级研判系统” + +**团队人员:王伊舟 李伟** + +## 1、数据分析 + +利用聚类和热力图来分析赛事方提供的数据,帮助我们探寻解决问题的方式。 + +聚类采用降维和标准化处理后的数据,随后进行K-Means算法进行训练建模并根据误差平方和准则、轮廓系数、卡林斯基-哈拉巴斯指数作为聚类簇数的确定依据。再结合热力图判断数据集中各部分之间的影响关系,从中得到各部分数据之间的相关性。 + +经过数据深入挖掘分析,并参考得出的结论,我们决定将CVSS评分预测研判分解成八个子问题,每个子问题对应着CVSS Vector String中的各个指标,通过预测每项指标的结果,最终合成预测的CVSS Vector String,再通过其计算得出CVSS得分。 + + + +## 2、算法设计 + +我们使用多个NLP模型结合词干提取与词性还原、Shapley值同时配合5008个额外与漏洞信息相关的额外单词表设计了一个CVSS评分预判模型,并利用热力图显示的权重调入参数输入模型。该模型由八个子模型构成,每个子模型分别预测CVSS Vector String中的AV、AC、PR、UI、S、C、I、A八个指标,然后结合我们由热力图得出的权重,对需要预测CVSS评分数据集的漏洞描述进行标签预测(每个指标具有不同的标签,不同标签对CVSS得分有不同的影响),然后得出最终的通过预测结果计算预测的CVSS得分。 + +## 3、模型设计 + +使用NLP模型结合词干提取与词性还原、Shapley值同时配合5008个额外与漏洞信息相关的单词设计了一个CVSS评分预判模型,并利用热力图显示的权重调入参数输入模型。该模型由八个子模型构成,每个子模型分别预测CVSS Vector String中的AV、AC、PR、UI、S、C、I、A八个指标,然后结合我们由热力图得出的权重,对需要预测CVSS评分数据集的漏洞描述进行标签预测(每个指标具有不同的标签,不同标签对CVSS得分有不同的影响),然后得出最终的通过预测结果计算预测的CVSS得分。 + +## 4、文件内容介绍 + +acc文件夹存放模型准确度等数据相关截图; + +com文件夹存放模型性能分析相关截图,包括Squared Errors分布图; + +cvss文件夹包含一些计算cvss得分的工具包; + +data文件夹存放比赛方提供的原始数据集; + +dataset文件夹为训练所用数据集、验证集、测试集; + +dataset_more文件夹为我们自行采集包含数据更多的数据集; + +main文件夹存放本作品主要运行代码,包括decisionTree、K-Means、output。decisionTree文件夹存放决策树数据分析相关代码,K-Means文件夹存放聚类分析相关代码,output存放训练的模型和输出的结果; + +nltk_data文件夹用来存放nltk工具包 + +vocab文件夹存放加入的漏洞特征单词表 + + + +## 5、部署运行方式 + +本作品编写/实验环境: + +​ 操作系统:Windows 11 23H2 + +​ 实验GPU:RTX3070Ti Laptop 8G + +​ CUDA:12.5 + +​ Torch:2.4.1 + +模型训练: + +​ (1)下载安装对应版本的Python依赖包,可直接使用命令pip install -r requirements.txt; + +​ (2)根据提示安装NLTK相关工具包; + +​ (2)直接运行编写好的train.sh脚本,在Linux和Windows上均可运行。 + +测试: + +​ (1)模型训练完成后直接运行test.sh脚本。 + +注:不同操作系统会存在路径识别问题,需要更改代码中的路径引用。 + +本作品完整代码已上传GitLink仓库和百度网盘。百度网盘包括已训练的模型,可直接使用。由于GitLink代码仓库对单一文件具有大小限制,故未上传我们自己训练的模型,需要自行训练,仅包含全部源代码。