CCF大数据与计算智能大赛-基于人工智能的漏洞数据分类冠军方案

news2024/11/15 10:48:49

基于人工智能的漏洞数据分类

前言

为及时跟踪国际信息安全趋势,需对国际公开的漏洞数据内容进行及时统计和梳理,例如CVE漏洞平台。CVE平台的漏洞信息包含有CVE编号、漏洞评分、漏洞描述等内容,其中漏洞描述含有对漏洞的利用条件、受影响的范围、漏洞可达到的效果(危害)等内容。为了更好地理解和持续研究,需将这些漏洞信息按照一定规则进行分类。而在此过程中,人工筛选分类效率较低,耗时耗力,利用人工智能,通过自然语言处理则可能更好地解决这一问题。本文提出一种多任务文本分类算法,通过共享BERT embedding,设计多任务的损失函数,端到端的解决漏洞数据分类问题。最后通过大量的实验及相关模型优化,最终获得本次大赛冠军。

大赛官网:基于人工智能的漏洞数据分类 竞赛 - DataFountain

一、赛题数据分析与建模

1.1、漏洞建模参数示意图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pkST3JrM-1684296285810)(F:\weixin\imgs\cve.jpg)]

1.2、网络节点漏洞信息建模规则

我们需要把漏洞的描述信息,标注出以下几个标签:

  • CVE-Number : 即漏洞库中的漏洞cve编号,用来对漏洞详细信息进行收录、管理与识别等。
  • Privilege-Required :即漏洞利用所需的攻击者权限;攻击者只有先获取到利用该漏洞的前提权限,才能对该节点发动原子攻击,权限等级的枚举为:{admin/root、Nonprivileged、access、unknown}, admin/root表明攻击者获取到了最高权限,为单一标签;Nonprivileged表明攻击者可以以普通权限(非特权)的身份操作主机,access表明仅拥有节点的访问权限(网络可达);unknown为从描述中获取不到该标签对应的内容,即根据描述得不到需要的权限信息。
  • Attack-Vector :攻击向量(介质);攻击者是通过某种介质来利用该漏洞的,向量的枚举为{remote、Non-remote },remote表示可通过远程方式完成攻击,Non-remote表示不能通过远程的方式来完成攻击(即需要通过本地物理接触(cvss中的physical))。
  • Impact :漏洞利用的结果(完成漏洞利用获取到的权限),可分为三级,分别为(Impact-level1、Impact-level2、Impact-level3),Impact-level1的枚举为{ Privilege-Gained(RCE)、Information-disclosure、DoS、access、other}, Privilege-Gained(RCE)在Impact-level2下的枚举为{ admin/root、Nonprivileged、unknown},(information-disclosure)在Impact-level2下的枚举为{local(credit)、other-target(credit)、other}, Impact-level3即local(credit)细化枚举为{user/root、Nonprivileged、unknown}、other-target(credit)枚举为{user/root、Nonprivileged、unknown}; Privilege-Gained(RCE)表示可获取到的权限:admin/root表示该漏洞利用可获取到该原子的最高权限,注意无论是root权限或者admin权限均为标签admin/root;Nonprivileged表示该漏洞利用可获取到该原子的普通非特权权限;unknown即为从描述中获取不到权限的信息,即为不清楚;Information-disclosure表示该漏洞为信息泄漏,而其中local(credit)表示该漏洞可获取到该原子的登录凭证;other-target(credit)表示该漏洞可获取到其他原子的登录凭证,other表示为该漏洞泄漏的是没有登录凭证类的其他信息;DoS表示该漏洞为拒绝服务漏洞;access表示可获取的网络的访问状态,(例如:通过攻击防火墙,只是修改策略,可造成部分本来不能访问的端口服务可正常访问),other即为其他不属于上述的影响。

1.3、赛题数据分析

根据我们在本次比赛中使用的算法,我们将类别标签映射成如图2:

​ 图2 类别标签映射

Attack-Vector类别标签分布,如下图3:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ibwJRhCt-1684296285811)(F:\weixin\imgs\image-20230405202221252.png)]

图3

Impact类别标签分布,如下图4:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iapDyHnL-1684296285811)(F:\weixin\imgs\image-20230405202243282.png)]
图4

Privilege-Required类别标签分布,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KGMYX54W-1684296285812)(F:\weixin\imgs\image-20230405202256262.png)]

图5

从图3、4、5可以得知,本次比赛的数据类别极不平衡,也对我们后续实验增加了许多困难。

二、模型架构

在本次比赛中,我们基于BERT[1]预训练语言模型,先后设计了两种方案进行实验。

2.1、方案1:基于BERT的3分类头的文本分类模型

如图6所示,我们对于每个大类,分别使用BERT+Linear分别对Impact、Attack-Vector及Privilege-Required三个大类进行分类。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CI6CUVBG-1684296285812)(F:\weixin\imgs\image-20230405202308808.png)]
图6 基于BERT的3分类头的文本分类模型

对于该模型,我们进行了相关实验,表1显示了在A榜上实验结果:

表1 A榜:三分类头实验结果

13分类 (trick)4分类 (trick)2分类 (trick)合并性能
0.7 (freelb+ep3)0.9111 (fgm+ep3)0.984 (freelb+ep3)0.571
0.69 (freelb+ep10)0.92 (fgm+ep10)0.981 (freelb+ep3)0.5768
0.704 (freelb+ep10)0.92 (fgm+ep10)0.984 (freelb+ep3)0.5632

从表中分析可以看出,将最优的分类头的最佳模型组合在一起得到的总体性能反而得不到最好结果。具体原因由下列示意图(7)分析演示得到,在各个模型取得性能都较高时,组合性能不一定是最好的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WoSlENwb-1684296285812)(F:\weixin\imgs\image-20230405202334247.png)]
图7

2.2、方案2:基于BERT的多任务端到端的文本分类模型

如图8,我们将BERT得embedding层共享,设计基于多任务的联合模型,端到端的训练分类模型,使各分类任务之间产生联系。则相应的损失函数为公式(1):
L o s s 总 = l o s s c l s 2 + l o s s c l s 4 + l o s s c l s 13 Loss_{总}=loss_{cls2}+loss_{cls4}+loss_{cls13} Loss=losscls2+losscls4+losscls13
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iru8SipV-1684296285813)(F:\weixin\imgs\image-20230405202354311.png)]
图8 基于BERT的多任务端到端的文本分类模型

结果:不使用ID LEAK的情况下,A榜:0.6035

2.3、模型优化

我们基于上述模型进行了大量实验进行优化,对于本次比赛,优化能提升的trick有:

  • 拟合目标:使用F1-score替换acc作为评价指标;
  • 类别不平衡:使用Focal Loss[2]函数;
  • 早停机制[3];
  • 对抗训练:使用FreeLB[4]对抗训练,对bert的embedding进行扰动;
  • 差分学习率;
  • Dropout;
  • 权重衰减。

2.4、其他

在本次我们还尝试了基于lgb的特征工程方法,因为我们发现比赛数据存在数据leak,比如:ID存在leak,通过自己丰富的比赛经验和通过各种数据划分操作进行实验。初步确定这种情况如果B榜数据分布情况与A榜有差别的话容易导致性能暴跌,因此最后决定没有利用这一特征。

三、总结

本文基于BERT预训练语言模型,设计多任务学习目标,共享bert的embedding层,端到端的对漏洞数据进行分类,更加贴近本次任务的目标及现实场景,且训练速度及推理速度都具备优越性,更易于落地。

参考

[1] Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.

[2] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2980-2988.

[3] Prechelt L. Early stopping-but when?[M]//Neural Networks: Tricks of the trade. Springer, Berlin, Heidelberg, 1998: 55-69.

[4] Zhu C, Cheng Y, Gan Z, et al. Freelb: Enhanced adversarial training for natural language understanding[J]. arXiv preprint arXiv:1909.11764, 2019.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/535880.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下快速启动Kafka以及三种发送消息的方式

目录 一、下载Kafka 二、启动kafka 2.1 启动kafka前得先启动zk 2.2 启动kafka 三、操作Kafka 3.1 创建 Kafka 主题(Topic) 3.2 将信息写入主题(Topic) 3.3 读取信息 四、Java实践-三种发送消息的方式 4.1 异步发送-无回…

登录appuploader

登录appuploader 常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录,弹出登录框 在登录框内输入apple开发者账号 如果没有apple开发者账号,只是普通的apple账号,请勾选上未支付688 然后软件会提示输入验证码&#…

Go语言中sync.Mutex和sync.WaitGroup的用法

目录 【goroutine的调度器】 【Go语言的sync包】 【sync.Mutex】 sync.Mutex 底层原理 sync.Mutex 其它用法 【sync.RWMutex】 sync.RWMutex 实现原理 【sync.WaitGroup】 Go 并发编程中存在的难题:并发编程不像是传统的串行编程,程序的运行存在…

chatgpt批量生成网站文章-chatgpt批量生成自媒体的文章

怎么用chatgpt批量生成文章符合SEO优化的文章 ChatGPT是一款功能强大、智能化的自然语言处理模型,可以用于生成符合SEO优化的文章。以下是一些建议: 确定主题和关键词:在开始生成文章之前,需要先确定文章的主题和关键词。这有助于…

张益唐直播报告学术报告,零点猜想问题终于被解决(文末可获取论文原文)

原创 | 文BFT机器人 8日上午9点,张益唐教授带着一支黑笔、一块白板现身b站直播,全网超10万人在线观看,从直播消息放出开始,大家就早早端好了小板凳等着教授精彩开讲! 直播40分钟一堂课的时长,知识点一个接…

《人月神话》译文修订明细(1)-读者可以对照修改

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 《人月神话》译文修订如下,读者可以对照自己手上的书修改。 相关阅读 这回真要动刀子-征集《人月神话》中译本的翻译修正>> 第一章 原译文 它们最后都…

金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件

🚀 金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件,并支持桌面电脑和移动设备。 金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件,并支持桌面…

MySQL双写机制

MySQL双写机制的目的是什么?是如何实现的? 一、双写的目的 为了解决 partial page write 问题。 InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操…

PCB——功放pcb设计

地线干扰 电子产品的地线设计是极其重要的,无论低频电路还是高频电路都必须要个遵照设计规则。高频、低频电路地线设计要求不同,高频电路地线设计主要考虑分布参数影响,一般为环地,低频电路主要考虑大小信号地电位叠加问题&#x…

拿下多个定点/比亚迪要上!这项技术要「降维打击」单目感知

2008年,斯巴鲁在全球首次推出了搭载有立体视觉摄像头的主动安全解决方案,并具有紧急制动功能的“EyeSight”。2010年,斯巴鲁推出升级版的“EyeSight”,成为世界上首个可以在全车速范围内避免碰撞的量产技术系统。 2014年&#xff…

自助式数据分析工具:jvs-sdw数据智仓-数据服务配置

配置化数据服务 数据服务是将JVS-SDW内部加工分析生成的数据集通过API的方式 开放给其他系统使用。 界面介绍 进入数据服务界面,左侧是展示系统内部已经配置完成的数据服务目录,右侧是展现的对应数据服务的详细配置情况。 目录新增,如下图所…

详解c++STL—容器deque

目录 1、deque容器的基本概念 1.1、功能 1.2、deque与vector区别 1.3、deque内部工作原理 2、deque构造函数 2.1、功能描述 2.2、函数原型 2.3、示例 3、deque赋值操作 3.1、功能描述 3.2、函数原型 3.3、示例 4、deque大小操作 4.1、功能描述 4.2、函数原型 4…

数据分析10——Pandas中格式化/分组聚合

0、前言: numpy是生成和处理array类型矩阵数据的工具,而pandas中的series(一维矩阵)和dataframe(二维矩阵)数据类型可以来自numpy生成的数据,pandas的重要之处在于他可以导入和处理多种格式类型…

GPT大语言模型Alpaca-lora本地化部署实践【大语言模型实践一】 | 京东云技术团队

模型介绍 Alpaca模型是斯坦福大学研发的LLM(Large Language Model,大语言)开源模型,是一个在52K指令上从LLaMA 7B(Meta公司开源的7B)模型微调而来,具有70亿的模型参数(模型参数越大…

Pinia 上手使用(store、state、getters、actions)

参考链接:https://juejin.cn/post/7121209657678364685 Pinia官方:https://pinia.vuejs.org/zh/introduction.html 一、安装 npm i pinia -S二、main.js 引入 import { createApp } from "vue" import App from "./App.vue" impor…

[FMC152]AD9208的2 路2GSPS/2.6GSPS/3GSPS 14bit AD 采集FMC 子卡模块中文版本设计资料及调试经验

板卡概述 FMC152 是一款基于VITA57.1 标准的,实现2 路14-bit、2GSPS/2.6GSPS/3GSPS AD 采集FMC 子卡模块。该模块可直接与FPGA 载卡配合使用,板卡ADC 器件采用ADI 公司的AD9208 芯片,,与ADI 公司的AD9689 可以实现PIN 脚兼容。该…

Android平台如何实现外部RTSP|RTMP流注入轻量级RTSP服务模块(内网RTSP网关)

技术背景 今天分享的是外部RTSP或RTMP流,拉取后注入到本地轻量级RTSP服务模块,供内网小并发场景下使用,这里我们叫做内网RTSP网关模块。 内网RTSP网关模块,系内置轻量级RTSP服务模块扩展,完成外部RTSP/RTMP数据拉取并…

挖呀挖和ChatGPT-UMLChina建模知识竞赛第4赛季第1轮

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答,先全部答对者得分,本轮总分为3分。 1. [单选] 以黄老师版“挖…

opengauss 的回归测试

目录 一、回归测试说明 二、单独执行测试用例(开发调试) 一、回归测试说明 opengauss/postgresql 的回归测试,通过执行SQL比较输出打印,判断代码修改是否改变了其它功能逻辑。 OG的回归测试大体上和PG类似,主要是通…

wordpress服务器搬家和更换域名的几个步骤

问题解说 其实wordpress换域名需要到数据库进行操作的,首先,你换域名也是有几种情况的; 换空间换域名 如果是上述问题,那么将FTP整站打包外,还需要将数据库里的所有数据表也打包,数据库是进phpmyadmin里打包的,两个都打包后,然后分别上传到新的空间ftp和数据库里,然…