中文

轻量级辅助漏洞发现

密码学与安全 2022-02-08 v1 机器学习 软件工程

摘要

预测存在漏洞的源代码有助于将注意力集中在那些需要更严格审查的代码部分。近期工作提出将函数名作为语义线索,由深度神经网络(DNN)学习以辅助搜寻函数的漏洞。结合将每个函数名拆分为组成词的标识符拆分方法,以及一种新颖的基于频率的算法,我们探究了函数名所含词语在多大程度上能够预测潜在漏洞函数。与仅考虑函数名、由 DNN 做出的*轻量级*预测不同,避免使用 DNN 提供了* featherweight(极轻量)*预测。其基本理念是:含有某些“危险”词语的函数名更可能伴随漏洞函数。当然,这假设基于频率的算法能够被恰当调参以聚焦于真正危险的词语。由于比 DNN 更透明,该基于频率的算法使我们能够探究 DNN 的内部工作机制。若成功,这一对 DNN 所学与所未学内容的探究将有助于训练更有效的未来模型。我们在包含超过 73000 个标记为漏洞函数与超过 950000 个标记为良性函数的异质数据集上对所提方法进行了实证评估。分析表明,词语本身占据了 DNN 分类能力的显著部分。我们还发现,在词汇更同质的数据集中词语价值最大。因此,当在给定项目范围内工作时,词汇不可避免同质,我们的方法提供了一种更廉价、潜在互补的技术以辅助搜寻源代码漏洞。最后,该方法的优势在于仅需少几个数量级的训练数据即可可行。

关键词

引用

@article{arxiv.2202.02679,
  title  = {Featherweight Assisted Vulnerability Discovery},
  author = {David Binkley and Leon Moonen and Sibren Isaacman},
  journal= {arXiv preprint arXiv:2202.02679},
  year   = {2022}
}

备注

17 pages, 6 figures, 6 tables