一句话:提出自动补丁回移技术并实现 FixMorph,在 350 个 Linux 主线补丁上正确回移 75.1%,优于已有方法。
Linux 内核的修复或漏洞补丁通常先进入主线,而大量用户仍在使用旧稳定版,因此补丁需要被“回移”到这些旧版本,但该过程容易出错且常延迟逾一个月。经验研究显示,约 8% 的主线提交会被回移,且往往滞后一个月以上。为此,作者提出一种自动补丁回移技术:先根据主线补丁合成一条部分变换规则,再通过分析主线版本与目标版本之间的对齐关系来泛化该规则,最后将泛化后的规则应用到目标版本以生成回移补丁。该技术实现为工具 FixMorph,并在 350 个 Linux 主线补丁上评估,正确回移率达 75.1%,精度与召回率均优于现有方法。除自动化软件维护外,该工作还有助于减少旧稳定版内核暴露于已知安全漏洞的风险。
Whenever a bug or vulnerability is detected in the Linux kernel, the kernel developers will endeavour to fix it by introducing a patch into the mainline version of the Linux kernel source tree. However, many users run older “stable” versions of Linux, meaning that the patch should also be “backported” to one or more of these older kernel versions. This process is error-prone and there is usually along delay in publishing the backported patch. Based on an empirical study, we show that around 8% of all commits submitted to Linux mainline are backported to older versions,but often more than one month elapses before the backport is available. Hence, we propose a patch backporting technique that can automatically transfer patches from the mainline version of Linux into older stable versions. Our approach first synthesizes a partial transformation rule based on a Linux mainline patch. This rule can then be generalized by analysing the alignment between the mainline and target versions. The generalized rule is then applied to the target version to produce a backported patch. We have implemented our transformation technique in a tool called FixMorph and evaluated it on 350 Linux mainline patches. FixMorph correctly backports 75.1% of them. Compared to existing techniques, FixMorph improves both the precision and recall in backporting patches. Apart from automation of software maintenance tasks, patch backporting helps in reducing the exposure to known security vulnerabilities in stable versions of the Linux kernel.
@inproceedings{paperbot6680,
title = {Automated patch backporting in Linux (experience paper)},
author = {Ridwan Shariffdeen and Xiang Gao and Gregory J. Duck and Shin Hwei Tan and Julia Lawall and Abhik Roychoudhury},
booktitle = {ISSTA},
year = {2021},
doi = {10.1145/3460319.3464821}
}