论文浅尝 | 基于无监督标注的漏洞描述文本概念抽取

news2024/12/22 18:54:08

63a73df1d1a5dc3f58dc04f555560ddc.png

笔记整理:韩林峄,天津大学博士

论文发表期刊:Transactions on Software Engineering and Methodology (TOSEM)

动机

软件漏洞对推进漏洞分析和安全研究具有巨大的潜力,人们往往使用自然语言来描述软件漏洞的关键特征,并在其中混合了特定领域的名称或概念,这使得自动分析文本中嵌入的漏洞知识成为一个重大的挑战,现有的方法需要花费大量精力进行手动数据标注以进行模型训练。因此,本文提出了一种无监督的方法来标记和提取文本漏洞描述(TVD)中重要的漏洞概念,通过提出一个源-目标神经网络模型来进行词性标注,实验显示此标注器优于(4.45%-5.98%)基于自然语言概念设计的标注器,使用Categorical Variational Autoencoders (CaVAE)将离散路径投影到一个低维的潜在空间中并通过聚类生成相同类型概念的集群,实验显示聚类结果中漏洞概念的准确率为83%-89%。在本文中,通过概念分类和序列标记模型来证明无监督标注概念的有效性,实验显示,使用我们的无监督标记的漏洞概念训练的模型表现优于(3.9%-5.14%)先前工作中使用手动标注数据集训练的模型。

亮点

本文的亮点主要包括:

(1)提出了一个源-目标神经网络模型,该模型在特定领域上进行词性标注;

(2)设计并实现了一种无监督的机器学习技术,该方法能够标记并提取TVD中重要的漏洞概念;

概念及模型

基于短语的漏洞概念类型

在TVD中描述漏洞特征的概念通常是名词短语。表1展示了六种类型的基于短语的漏洞概念以及在文中旨在提取的一些具有代表性的示例。

d893892aede61d8f011e33e0fe680466.png

模型结构

为了以无监督的方法来标注和提取文本漏洞描述( TVD )中的重要漏洞概念,本文提出的模型主要由四部分组成,整体框架如下:

3390fb571fdcef3bf42f5dc39c4c3d24.png

主要由四部分组成:

1)句子标记化、词性标注和句法分析:对TVDs中的句子进行词性标注与句法分析,用于下一步的路径表示。

2)路径表示:本文发现,对于相同类型的短语,不管它们在句子结构和短语表达上如何不同,它们在句法分析树中通常具有相似的句法路径,因此为每个非VPV短语构造了一条绝对路径和一些相对路径。

3)无监督的概念标注:其将每个不同的路径视为词汇表中的一个单词,并使用Categorical Variational Autoencoders (CaVAE)将离散路径(即高维one-hot向量)投影到一个低维的潜在空间中,该空间中的路径相似性可以用欧氏距离来衡量。之后根据非VPV短语在潜在空间中的紧密程度对它们进行聚类。本文使用三种不同的聚类设置:CaVAE → Fit-SNE,CaVAE → Fit-SNE → DBSCAN和CaVAE → DBSCAN分别进行测试。

4)有监督的概念提取:前面的无监督标记方法提供带有概念类型的标记漏洞短语。为研究通过无监督标记获得的漏洞短语对于机器学习任务的适用性。这里采用两种有监督的概念提取方法,分别是概念分类和序列标记方法,以确认无监督标记的漏洞短语的质量。

实验

数据集

作者设计了一个Web爬虫来从NVD网站自动抓取并构建一个TVD语料库,语料库的数据统计信息如下所示:

26851d1fe6ea3415c31c47ff72321812.png

模型表现

为了验证模型的有效性,文中进行了大量实验

1)词性标注(Parts-of-Speech Taggers):

a7cffc1d0a49bbb7134c1049252900f7.png

结果表明,特定于漏洞的POS标记器在识别漏洞的POS方面是健壮的,这对于后续的句子解析非常有用,可以根据这些POS标记的顺序识别非VPV短语的绝对路径和相对路径。

2)CaVAE的鲁棒性

f8b520926d3f1a55fc86f7ea2a173dd8.png

结果表明,CaVAE在学习绝对路径和相对路径的句法结构以及降维方面都是稳健的,从而证明了使用CaVAE进行后续潜在空间聚类的合理性。

3)概念聚类的质量

35778a7c3b6de230c0db5c1ec7cf5fc7.png

d9b34191ac3c9a98bc22a1c7fb599294.png

聚类可视化和对结果聚类中非VPV短语的手动检查证实了无监督标记方法的有效性。这证实了句法上相似的非VPV短语(在绝对路径和相对路径方面)通常代表相同类型的漏洞概念。

4)模型变体的比较

f13f15a14e68d2a78554e7e95d91de6e.png

结果表明,特定领域的词性标注对下游表示学习更有效。训练编码器-解码器模型中路径的嵌入不能在隐空间中形成有意义的簇。与词嵌入相比,路径表示提高了我们对相同类型的非VPV短语进行聚类的模型性能。绝对路径和相对路径都是有用的。此外,使用Gumbel Softmax增强VAE对于解决路径的分类性质是必要的。

5)无监督标记数据的作用

47a685526c04f4cf0d6b662d154af7c0.png

结果表明,无监督标注方法提取的TVD中的漏洞短语可以用于有监督的训练概念提取模型。且使用文中提取的短语训练的概念分类器优于使用BIO标记方案的令牌序列标记训练的序列标记模型。然而,概念分类器可能会遗漏概念跨度的确切起点和终点,并且依赖于句法分析树。序列标注方法可能更具挑战性,但它有潜力准确输出哪些令牌属于漏洞概念,对输入短语和原始TVD语句都有很好的表现。

6)与人工标记的TVDs的比较

4c63f994038721f71257b8cfe5ad6a0f.png

通过文中方法提取的漏洞短语构成了用于训练概念分类器和序列标注模式的高质量数据集。由于文中方法具有一致的边界和类型,使用无监督标注短语训练的概念分类器或序列标注模型优于使用人工标注短语训练的分类器或序列标注模型。

总结

本文提出了一种基于无监督的标记和提取文本漏洞描述(TVD)中基于短语的重要漏洞概念的方法,首先提出一个源-目标神经网络模型来进行特定领域的词性标注,然后通过CaVAE学习特征,并通过聚类将同类型的短语聚类到一起。通过此方法标记的TVD可用于训练其他基于TVD语料库的有监督概念提取模型,通过概念分类和序列标记模型这两种方法,本文证明了无监督标注概念的有效性。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

61767d972905529139f07600aefdcb79.png

点击阅读原文,进入 OpenKG 网站。

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

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

相关文章

JAVA打印数字二进制编码逻辑说明

在我们学习算法的过程中,我们首先必须要知道的就是数据(尤其是数字)类型在底层保存的方式。因为这样才能使我们的算法变的更加高效。 在JAVA中我们常用的数字类型是int类型,有过基础的同学应该知道int数据类型的长度为32bit。但实际使用时需要注意只有3…

11 |「哈希表」简析

前言 前言:刷「哈希表」高频面试题。 文章目录前言一、简介1、离散化1)什么是离散化2)离散化存储3)离散化映射2、哈希表1)什么是哈希表2)哈希表存储3)哈希函数4)哈希冲突二、参考链接…

Python爬取网页Flex渲染的动态内容

我最近使用Python爬取网页内容时遇到Flex渲染的动态页面,比如下图的课程目录标题,此时按鼠标右键,菜单里没有复制链接的选项。 目的:获取各个视频标题、链接。 按F12进入开发者模式分析网页,可见有多个flex标签&#…

通用视觉框架OpenMMLab图像分类与基础视觉模型

文章目录流程传统方法:设计图像特征(1990s~2000s)特征工程的天花板从特征工程到特征学习层次化特征的实现方式AlexNet 的诞生& 深度学习时代的开始图像分类的数学表示AlexNet (2012)Going Deeper (2012~2014)VGG (2014)GoogLeNet (Inception v1, 2014)精度退化问…

ROS2 基础概念 动作

ROS2 基础概念 动作1. Actions2. 动作3. 中止目标4. 动作类型5. 动作请求1. Actions Actions 动作是ROS 2中的通信类型之一,适用于长时间运行的任务 它们由三部分组成:目标、反馈 和 结果,操作基于话题和服务 它们的功能类似于服务&#xff…

【大数据clickhouse】clickhouse 数据一致性保障常用解决方案

一、前言 对于任何一个数据存储的框架来说,确保数据的一致性都是其非常重要的组成部分,不管是过程中的强一致性,还是最终一致性,都是数据一致性的解决方案,本篇来聊聊clickhouse中的数据一致性问题。 二、clickhouse …

JMeter使用BeanShell断言

BeanShell简介BeanShell是使用Java语法的一套脚本语言,在JMeter的多种组件中都有BeanShell的身影,如:定时器:BeanShell Timer前置处理器:BeanShell PreProcessor采样器:BeanShell Sampler后置处理器&#x…

软件的生命周期(软件工程各阶段的工作)

其实软件工程是一个非常大的概念,我们的软件测试也好,软件开发也好,软件运维也好,其实都是属于软件工程的范畴。 今天就讲一讲软件工程和我们软件测试相关的一些内容。 我们今天三个主要的节点: 1.软件的生命周期 至…

QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托

1 写在前面的话 我们在之前写的《QT(7)-初识委托》文章末尾提到,“使用一个类继承QStyledItemDelegate实现常用的控件委托,在使用时可以直接调用接口,灵活实现各种委托”。我们接下来几篇文章将先详细讲解各个控件的委托,最后整理…

怎么理解输入输出流 - 输入输出流之我解

背景 昨天领导开会,讨论两个接口之间参数问题,这个参数涉及文件传递的需求;其中一句话引起了我的思考:“参数怎么定义?能不能定义成字符流?” 当时我沉思了一下,懵的 没明白她的意思 我理解的比…

swagger2接口文档

文章目录简介Open APISwagger简介Spring-fox入门案例第一步:导入依赖第二步:编写controller类第三步:编写启动类第四步:运行启动类并访问ui页面Swagger UI 介绍基础信息配置自定义注解(防止有些类不生成接口文档&#…

数据结构:数组及特殊矩阵

数组及特殊矩阵一、认识数组1️⃣ 定义2️⃣ 存储结构1. 一维数组2. 二维数组二、特殊矩阵的压缩存储1️⃣ 对称矩阵💤思考1:有多少个二维元素A[0...n-1][0...n-1]存于一维元素中❓💤思考2:按行排列,二维数组A[0...n-1…

198分成功上岸浙江工业大学MBA的备考经验分享

我是2022年刚被浙江工业大学MBA项目录取的一名新生,新的一年管理类联考备考已经开始,最近身边有很多小伙伴也都在咨询这方面的信息,趁着今天有空给大家分享下我的经验。 在备考开始之前首先要确定目标,因为工作在杭州&#…

【正点原子Linux连载】第四章 SDK包的使用 摘自【正点原子】ATK-DLRV1126系统开发手册

1)实验平台:正点原子RV1126 Linux开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692176265749 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第四章 S…

学习周报-20230203

文章目录一 在rhel7系统使用Mariadb一 联系和区别二 需求三 部署安装3.1 环境准备3.2 安装软件包3.3 启动服务3.4 设置防火墙策略四 创建用户和库表4.1 登录数据库4.2 创建用户4.3 创建数据库和表五 备份和恢复5.1 备份 com 数据库5.2 模拟误删除操作5.3 恢复表二 使用grep忽略…

如何建立异形板框的内缩和外扩

如何建立异形板框的内缩和外扩 首先把需要内缩和外扩的外形图设置在信号层(比如TOP),把线宽改为0mil(方便计算)。然后选择外形图,执行命令TJ,就可以得到内缩和外扩图形。然后把生成的图形修改到…

Linux-查找文件、软链接、打包压缩和软件安装

查找文件find软链接ln打包和压缩tar软件安装apt-get1.查找文件find命令功能强大,通常用来在特定的目录下搜索符合条件的文件序号命令作用01find[路径] -name"*.py"查找指定路径下扩展名是.py的文件,包括子目录如果省略路径,表示在当…

最新整理Spring面试题2023

Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 有些同学可能会抢答,不熟悉!!! 好了,不开玩笑,面对这个问题我们应该怎么来回答呢?我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍…

【C++入门】引用详解(引用的特性、引用的使用、引用与指针的区别)

文章目录1 引用概念2 引用特性3 使用场景4 常引用5 传值与传引用的效率比较5.1 值和引用作为函数参数的性能比较5.2 值和引用作为返回值类型的性能比较6 引用和指针的区别1 引用概念 引用不是新定义一个变量,而是给已存在的变量取了一个别名,编译器不会为…

浅谈网络流

网络 网络是一张单向图 , 每条边都有一个权值 c(u,v)c(u,v)c(u,v) 表示边 (u,v)(u,v)(u,v) 的容量. 特别的 , 图上有源点 (s)(s)(s) 和汇点 (t)(t)(t). 网络流 在一张网络上 , 从源点流出 , 最终流入汇点的流. f(u,v)f(u,v)f(u,v) 表示 (u,v)(u,v)(u,v) 的流量. 满足 : 容…