【论文精读】BERT+漏洞可利用性

今天我分享的论文是将迁移学习应用于网络安全:通过描述预测漏洞的可利用性abstract:

如题目所示,本文所探讨针对的问题是 利用漏洞描述信息,构建 语言模型,实现 对漏洞可利用性的预测:

如何理解:"漏洞描述信息:是早期阶段可访问的功能"意味着在软件漏洞被公开披露之初,其相关的描述信息是可以被获取和阅读的。这些描述信息通常由漏洞披露者或安全专家提供,包含漏洞类型、漏洞的性质、潜在影响、受影响的产品和厂商名称、受影响的版本摘要、影响、攻击者利用漏洞需要的访问权限以及涉及的重要代码组件或输入等丰富的细节

"预测漏洞的可利用性"指的是根据漏洞的特征和相关信息,通过机器学习或其他技术手段来评估一个漏洞是否容易被攻击者利用。这种预测可以帮助决策者确定漏洞修补工作的优先级,以及决定哪些漏洞是最关键和需要立即修补的。

每年有成千上万的软件漏洞被存档并向公众披露,对整个社会构成严重的网络安全威胁。预测漏洞的可利用性对于决策者修补最关键的漏洞是至关重要的。

因此,和漏洞同理,描述信息在工业界和学术界都被广泛地用于可利用性预测。然而,现有的非网络安全专业的模型存在以下问题:

没有考虑到从描述中提取的特征之间的依赖关系。作为顺序文本,依赖关系存在于漏洞描述中。例如,短语“root特权”中的“root”的含义取决于单词“特权”。

那么很显然由于语料库不足及对网络安全没有特殊注意力的情况下很有可能误读及不会读一些专有名词和多义词

模型:

该文章中,作者将可利用性检测作为一个二分类问题处理,并将最小化二元交叉熵作为训练的目标。提出了一个名为ExBERT的框架,以准确预测漏洞是否会被攻击者恶意利用。

step1:BERT迁移学习阶段

step2:可利用性预测

在机器学习和自然语言处理领域,“embedding”(嵌入)是指将高维数据转换为低维向量表示的过程。它是一种表示学习(representation learning)的方法,通过将数据映射到一个低维空间,使得数据的语义和结构信息得以保留。

具体而言,在自然语言处理中,"embedding"通常指的是将单词或文本序列映射到一个连续向量空间的过程。这些向量表示被设计为能够捕捉单词之间的语义和上下文关系,从而能够更好地表达单词的含义。

我们下面将逐步理解这一特征从离散到连续的过程

Tokenization(分词):

对于句子:“Apply transfer learning to cybersecurity”,在使用WordPiece分词方法时,可能会将其划分为以下标记:[“Apply”, “transfer”, “learning”, “to”, “cyber”, “##security”]。其中,“##security"是表示"security"的子词,前面的”##"符号表示该子词是一个单词的一部分。

在这一步骤中,输入的漏洞描述文本会被分割成一系列的子词或标记,这是因为BERT模型处理的是子词级别的输入。分词的目的是将文本转化为模型可以理解的输入单元。

Token Embedding(标记嵌入):

在这一步骤中,每个分词后的子词会被映射到预训练的BERT模型中学习到的嵌入空间中的向量表示。这些向量表示捕捉了子词的语义信息和上下文相关性。并作为输入提供给模型进行进一步的处理和预测。

Sentence Embedding(句子嵌入):

在 Sentence embedding 这一步中,通过使用 Pooling Layer 对所有的 Token embeddings 进行汇聚操作,从而生成句子级别的语义特征向量。具体来说,Pooling Layer 会对所有的 Token embeddings 进行某种聚合操作(如平均池化或最大池化),将所有的标记嵌入向量合并为一个固定长度的句子嵌入向量。

因此,Token embeddings 提供了每个标记的个体语义信息,而 Sentence embedding 则将这些个体语义信息汇总为整个句子的语义特征向量。这样,通过 Token embeddings 和 Pooling Layer 的组合,我们可以获得对整个句子的更高级别的语义表示,用于后续的可利用性预测任务。

因此窝们将池化层的输出定义为 分段函数,以不同的池化策略为自变量
上一步解释过了证明了 [CLS] 可以作为整个句子的特征向量embedding
可以直接用作下游任务的句子嵌入。

在BERT模型中,“[CLS]“是特殊的token,它在输入文本序列的开头位置添加,并且在进行分类任务时起到特殊的作用。”[CLS]“表示"classification”,它的主要作用是为整个输入序列提供一个汇总的语义表示。
在训练过程中,BERT模型会对整个输入序列进行编码,并在最后一个特定的隐藏层生成对应于”[CLS]“token的嵌入(embedding)。这个嵌入被视为整个输入序列汇总的语义表示或总结。
对于分类任务,研究人员通常选择使用最后一层的”[CLS]“token嵌入作为整个序列的语义特征,然后将它输入到分类器中进行预测。由于”[CLS]"令牌的嵌入经过多层的注意力和转换操作,它能够捕捉到整个序列的语义信息,对于分类任务具有较好的表现。

xploitability Prediction(可利用性预测):

LSTM(长短期记忆)是一种循环神经网络(RNN)的变体,专门用于处理序列数据。它具有一种称为“门控机制”的特殊结构,使其能够有效地捕捉和记忆序列中的长期依赖关系。 在ExBERT模型中,LSTM被用作分类层的隐藏层,以捕捉从池化层获得的句子嵌入之间的依赖关系。

LSTM隐藏层的输出被表示为ah,通过应用适当的参数ΘLSTM和LSTM的映射函数fLSTM(·),可以计算出LSTM隐藏层的激活结果。

接下来是输出层,它是一个DenseNN层(全连接神经网络层),其中包含一个sigmoid节点。sigmoid函数作为激活函数,用于将隐藏层的输出转化为0到1之间的概率值。最终的预测结果ˆy通过计算Wah + b,并将结果通过sigmoid函数进行转换得到。

这样,ExBERT模型通过LSTM隐藏层和输出层,将池化层提取的句子嵌入转化为一个预测概率,用于判断输入文本的可利用性。这个预测结果可以用于二分类任务,判断该漏洞的可利用价值

可以看出它表现出了较好的分类效果

结论:

Acc F1 Pre Recall
Acc (Accuracy):准确率是指分类器正确预测的样本数量与总样本数量之比。它衡量了分类器对所有样本的整体分类准确性。

F1 Score:F1分数是精确率和召回率的调和均值。精确率和召回率都是衡量分类器性能的指标,F1分数结合了这两个指标,提供了分类器综合性能的评估。

Pre (Precision):精确率是指分类器预测为正类的样本中实际为正类的比例。它衡量了分类器在预测为正类时的准确性。

Recall (召回率):召回率是指实际为正类的样本中被分类器正确预测为正类的比例。它衡量了分类器对正类样本的识别能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值