当前位置: 代码迷 >> 综合 >> Identifying Linux Bug Fixing Patches阅读笔记
  详细解决方案

Identifying Linux Bug Fixing Patches阅读笔记

热度:95   发布时间:2024-02-24 08:09:05.0

Identifying Linux Bug Fixing Patches阅读笔记

2012 IEEE

论文概述

当前许多修复补丁可能由于系统维护人员的差异,导致许多linux内核补丁未打上,本文提出基于代码仓库提交的记录信息和变化,利用机器学习的技术自动识别补丁。本文提出的方法相较于在内核信息中识别关键字的方法,准确度与其相似的情况下,召回率提高53.19%

技术思路

1.数据获取:从linux代码仓库中提取提交的更新代码信息。
2.特征提取:减少数据集为一些潜在的不同维度,根据文本描述区分哪些是修复漏洞补丁,那些是代码优化补丁。
3.模型学习:通过分析特征与补丁对应关系,构建模型试着将漏洞修复补丁与其他补丁区分开。
4.漏洞修复补丁识别:应用模型从未标记的数据中获取漏洞修复补丁。

识别模型构建过程

LPU:采用半监督机器学习分类方式,喂正面的数据和未标记的数据。
SVM:有监督机器学习,喂正面和反面的数据。
整个模型首先使用LPU算法将经过正面数据训练的模型用其排位未标记的数据指针,将人为定义的底部k参数和排位后的数据一起作为SVM算法的输入,形成最终构建模型。
如下图
在这里插入图片描述

实验概述

黑色数据集由已知稳定版补丁和漏洞修复工具创建的补丁构成,灰色数据集则是指定内核版本区间内的补丁。

通过LPU算法分类正数据集和未标记数据集并利用费舍尔值排名,再利用svm监督学习算法区分出未标记数据中的非漏洞补丁,最后通过准确率和召回率衡量识别的准确度。

黑色数据集如下
在这里插入图片描述
灰色数据集如下
在这里插入图片描述
本文方法与关键字方法正确率和召回率对比如下
在这里插入图片描述