CauSec: Unboxing the Causal Drivers of Static Vulnerability Analysis Performance
本文介绍了 CAUSEC,这是一个因果分析框架,它通过形式化并验证静态应用安全测试(SAST)工具的底层假设,来确定其设计权衡是否真正实现了预期的性能增益,并通过对四种流行工具中 57 个加密 API 误用假设的系统性研究展示了其效用。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在数字世界中,软件工具充当着安全守门人的角色,通过扫描代码来发现隐藏的缺陷,防止其被利用。这些被称为静态应用安全测试(SAST)的工具被广泛应用于从小型初创公司到大型跨国企业的各个领域。它们的工作原理是对代码行为进行合理的推测,通常会选择忽略程序的某些部分,以提高运行速度或避免将无害代码标记为危险。该行业长期以来一直基于一套未经证实的信念运行:即跳过特定类型的代码会提高工具的准确性,或者忽略某些库可以减少误报。这些信念指导着工具的构建,但直到现在,还没有人系统地测试过这些假设究竟是事实,还是仅仅是设计者们告诉自己的便利故事。
威廉玛丽学院(William & Mary)的一个研究小组决定对这些信念进行测试。他们构建了一个名为 CAUSEC 的新框架,该框架不将安全工具背后的假设视为事实,而是将其视为可以被证明或证伪的假设。他们不仅仅关注工具是否发现了漏洞,还追问工具为何能发现漏洞,以及改变规则后会发生什么。通过应用一种被称为“因果推断”的方法(该方法有助于将真正的因果关系与简单的巧合区分开来),他们能够分离出特定的设计选择并衡量其真实影响。他们的工作揭示了安全工具遵循的规则往往比人们意识到的更加脆弱且具有特殊性,而且一种对某个工具完美的策略可能会在另一个工具上完全失效。
研究人员首先回顾了旨在捕捉软件使用密码学(一种保护数据的数学技术)时出现错误的工具的历史。他们梳理了二十年的研究论文,发现了设计师所做的 57 个截然不同的假设。这些假设范围很广,从“专注于特定代码规则可以提高准确性”到“忽略第三方代码库可以使工具更快、更精确”不等。团队意识到,许多此类说法是基于相关性(即同时发生的事情)而非经过证实的因果关系。例如,一个工具可能会跳过第三方库并恰好减少了误报,但这并不意味着“跳过”操作是导致改进的实际原因。可能存在其他隐藏因素在起作用。
为了理清这一过程,团队专注于一个非常普遍的假设:即报告来自第三方库的安全警报会降低工具的精确度,这意味着会产生更多的误报。他们收集了一个庞大的数据集,其中包含来自四种流行安全工具(Semgrep、CodeQL、CogniCrypt 和 CryptoGuard)生成的 57,000 多个警报。随后,他们手动检查了每一个警报,以确定它是真实的问题还是误报,从而创建了一个可以用来衡量这些工具的“地面真值”(ground truth)。利用他们的新框架,他们模拟了如果强制每个工具报告来自第三方库的警报会发生什么,同时仔细考虑了诸如应用规模或流行程度等其他变量。
结果令人惊讶,并表明该假设并非普遍真理。对于其中的两个工具,该假设成立:当它们开始报告来自第三方库的警报时,误报率确实上升了。然而,对于另外两个工具,情况恰恰相反。当这些工具包含来自第三方库的警报时,它们的准确性反而提高了。这一发现证明,工具本身的设计起到了调节器的作用;同样的规则根据内部机制的不同,会产生完全不同的效果。研究人员发现,包含第三方代码的影响因具体的库类型和所使用的特定工具而异。对于一个工具而言,工具类库导致了准确性的显著下降,而对于另一个工具,同样的库却提高了准确性。
这项研究还强调,许多工具设计师所做的假设都是基于未经验证的权衡。设计师经常为了速度或减少误报而牺牲发现所有可能漏洞的能力,并认为这种权衡是必要的。研究人员发现,虽然这些权衡确实存在,但具体的结果往往是不可预测的。他们发现,工具的构建方式——其特定的规则、如何过滤数据以及如何处理上下文——决定了设计选择是有利还是有害。这意味着安全团队不能简单地复制一个成功工具的设计选择并期望获得同样的结果。适用于一个工具的做法并不保证适用于另一个工具。
最终,论文认为安全界需要从接受假设为事实转向进行科学验证。研究人员证明,通过使用因果分析,可以严格测试这些假设并理解它们究竟如何影响性能。他们发现,虽然有些假设是有效的,但许多假设并非如此,且其有效性完全取决于所使用的工具的具体语境。研究结论指出,工具设计师不应在没有针对自身特定环境进行测试的情况下,就继承前人的假设。相反,他们应该将每一个设计选择都视为一个需要测试的假设,确保他们构建的工具是基于证据而非直觉。这种方法为构建不仅快速而且真正能有效保护软件的安全工具提供了更清晰的路径。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。