Identifying Linux Bug Fixing Patches閱讀筆記

嘿!MAN發表於2020-09-30

Identifying Linux Bug Fixing Patches閱讀筆記

2012 IEEE

論文概述

當前許多修復補丁可能由於系統維護人員的差異,導致許多linux核心補丁未打上,本文提出基於程式碼倉庫提交的記錄資訊和變化,利用機器學習的技術自動識別補丁。本文提出的方法相較於在核心資訊中識別關鍵字的方法,準確度與其相似的情況下,召回率提高53.19%

技術思路

1.資料獲取:從linux程式碼倉庫中提取提交的更新程式碼資訊。
2.特徵提取:減少資料集為一些潛在的不同維度,根據文字描述區分哪些是修復漏洞補丁,那些是程式碼優化補丁。
3.模型學習:通過分析特徵與補丁對應關係,構建模型試著將漏洞修復補丁與其他補丁區分開。
4.漏洞修復補丁識別:應用模型從未標記的資料中獲取漏洞修復補丁。

識別模型構建過程

LPU:採用半監督機器學習分類方式,喂正面的資料和未標記的資料。
SVM:有監督機器學習,喂正面和反面的資料。
整個模型首先使用LPU演算法將經過正面資料訓練的模型用其排位未標記的資料指標,將人為定義的底部k引數和排位後的資料一起作為SVM演算法的輸入,形成最終構建模型。
如下圖
在這裡插入圖片描述

實驗概述

黑色資料集由已知穩定版補丁和漏洞修復工具建立的補丁構成,灰色資料集則是指定核心版本區間內的補丁。

通過LPU演算法分類正資料集和未標記資料集並利用費舍爾值排名,再利用svm監督學習演算法區分出未標記資料中的非漏洞補丁,最後通過準確率和召回率衡量識別的準確度。

黑色資料集如下
在這裡插入圖片描述
灰色資料集如下
在這裡插入圖片描述
本文方法與關鍵字方法正確率和召回率對比如下
在這裡插入圖片描述

相關文章