LIVABLE:探索软件漏洞类型的长尾分类
软件工程
2023-06-13 v1 人工智能
摘要
先前研究普遍聚焦于软件漏洞检测,并已证明基于图神经网络(GNN)的方法在该任务上的有效性。考虑到软件漏洞类型多样且关联严重程度不同,确定每段漏洞代码的类型对开发者亦有益处。在本文中,我们观察到漏洞类型的分布在实践中呈长尾状,其中一小部分类别拥有大量样本(即头部类),而其他类别仅含极少样本(即尾部类)。直接采用先前的漏洞检测方法往往导致较差的检测性能,主要源于两点。首先,由于 GNN 的过平滑问题,难以有效学习漏洞表示。其次,因关联样本极少,尾部漏洞类型难以被预测。为缓解这些问题,我们提出一种长尾软件漏洞类型分类方法,称为 LIVABLE。LIVABLE 主要包括两个模块:(1) 漏洞表示学习模块,其通过差异化传播方法改进 GNN 中的传播步骤以区分节点表示,并引入序列到序列模型以增强漏洞表示;(2) 自适应重加权模块,其通过一种新颖训练损失,依据训练轮次与关联样本数量调整不同类型的学习权重。
引用
@article{arxiv.2306.06935,
title = {LIVABLE: Exploring Long-Tailed Classification of Software Vulnerability Types},
author = {Xin-Cheng Wen and Cuiyun Gao and Feng Luo and Haoyu Wang and Ge Li and Qing Liao},
journal= {arXiv preprint arXiv:2306.06935},
year = {2023}
}