论文
回忆录:学习、验证和发展静态应用程序安全测试工具的误报记忆
Memoir: Learning, Verifying, and Evolving False-Positive Memories for Static Application Security Testing Tools
摘要
静态应用程序安全测试 (SAST) 工具已成为现代安全软件开发中不可或缺的一部分。然而,这些工具经常会产生误报 (FP) 警报,造成大量的人工检查成本并降低开发人员的信任。现有的 FP 减少方法仍然面临两个主要挑战。首先,SAST 工具和漏洞类别之间的巨大差异使得这些方法很难学习历史误报中的重复模式。此外,这些方法使用的知识很大程度上是静态的,无法随着新验证案例的积累而更新。为了应对这些挑战,我们提出了 Memoir,一种内存驱动的框架,用于通过将历史 FP 警报转换为可重用的语义记忆来识别误报。它由两个关键模块组成。首先,历史语义记忆构建通过 LLM 引导的注释、模式聚类和记忆合成将历史 FP 警报转换为结构化语义记忆,以捕获可重用的行为模式。此外,记忆驱动的识别和进化会检索相关记忆,并在做出最终预测之前针对分类一致性和安全不变量进行语义验证。然后,它将经过验证的预测合并回内存存储库中,使知识库随着新案例的积累而不断发展。我们在 CWE-Bench-Java 上评估 Memoir,以证明其在现实世界安全分析中的有效性。具体来说,Memoir 的 F1 分数为 99.43%,召回率为 98.88%,精确度完美,始终优于其他基准。此外,对一家顶级 IT 公司的生产软件系统的工业案例研究表明,学习的内存基础可以有效地推广到不同的 SAST 工具,而无需重新训练。