目录
目录README.md

第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代码仓库对单一文件具有大小限制,故未上传我们自己训练的模型,需要自行训练,仅包含全部源代码。

关于

在信息安全领域,漏洞评估和管理是关键任务之一。本作品探讨了如何利用预训练文本大模型来评估和研判漏洞的严重等级,具体基于通用漏洞评分系统。传统漏洞评分方法依赖于手动分析和专家评审。而基于自然语言处理文本大模型通过其深度学习能力,可以自动化地处理和分析大量的安全相关文本数据,从而提高漏洞评估的效率和准确性。结合词干提取、词性还原能够更好地发挥自然语言处理文本大模型的预测能力与准确度。

18.3 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号