科大讯飞SAST产品技术选型实践

💡 原文中文,约3800字,阅读约需10分钟。
📝

内容提要

本文介绍了科大讯飞安全专家张德军关于静态应用安全测试(SAST)产品选择的问题。作者通过调研发现传统的测试样本集存在完整度不足、结果不具有可解释性以及更新不及时等问题。为解决这些问题,作者介绍了蚂蚁集团安全团队和浙江大学网络空间安全学院合作开源的xAST评价体系项目,该项目能够对SAST产品的安全检测能力进行评价。作者通过对三款SAST产品的测试结果进行对比,得出某国产SAST产品C在检测完整度和准确度方面表现最优。作者认为xAST评价体系能够更全面、细粒度地展现SAST产品的检测能力,并希望该项目能够支持更多的语言,满足更多用户的需求。

🔎

延伸解读

传统测试样本集为何难以区分SAST产品能力

文章指出,传统测试样本集如Owasp Benchmark存在完整度不足、结果不可解释、更新不及时三大问题。在2000多个样本上,三款SAST产品召回率均为100%,无法区分实际能力。同时,测试结果仅提供召回率和误报率,对用户是黑盒,且样本集自2016年后未更新,难以反映最新SAST技术。这些缺陷导致企业选型时缺乏可靠依据。

xAST评价体系的工具视角与分层设计

xAST评价体系由蚂蚁集团和浙江大学合作开源,首次面向工具视角,为SAST、IAST、DAST分别设计评价维度和评价项,使测试样本更体系化、有针对性。该体系还对评价项做分层设计,包括引擎能力、规则能力和产品能力,目前开源的是引擎能力层面。这种设计能区分底层引擎能力与上层规则配置,帮助用户更精准地评估产品。

三款SAST产品在Java检测能力上的实测对比

基于xAST评价体系,作者对三款SAST产品在Java语言上的检测完整度和准确度进行了测试。结果显示,某国产SAST产品C完整度98%、准确度77%,综合最优;某国外产品A完整度84%、准确度44%;某国外产品B完整度76%、准确度77%。产品C支持绝大部分污点对象跟踪和链路传播场景,仅在反射调用等少数场景未支持。字符级污点跟踪三款产品均不能完全支持。

xAST评价体系的局限与未来期待

目前xAST评价体系在SAST领域仅支持Java和Node语言,覆盖范围有限。作者期待未来能支持更多编程语言,以更全面体现SAST产品的检测能力,满足更多用户的测评需求。此外,该体系已获阿里、华为等二十余家企业用于选型,并作为开放原子开源基金会的测评标准,但其评价维度如兼容性、性能、接入成本等尚未在本次测试中充分展开。

❓

Q&A

什么是静态应用安全测试(SAST)?

静态应用安全测试(SAST)是一种帮助企业自动发现应用程序代码中的安全漏洞和风险的技术。

传统的SAST测试样本集存在哪些问题?

传统测试样本集存在完整度不足、结果不具可解释性和更新不及时等问题。

xAST评价体系的主要特点是什么?

xAST评价体系首次面向工具视角,为不同类型的工具设计了评价维度和评价项,能够更全面、细粒度地展现SAST产品的检测能力。

在对比三款SAST产品时,哪款产品的检测能力最强?

某国产SAST产品C在检测完整度和准确度方面表现最优。

xAST评价体系的评价维度包括哪些?

xAST评价体系的评价维度包括完整度、准确度、兼容性、性能和接入成本等。

未来xAST评价体系的计划是什么?

希望xAST评价体系未来能支持更多编程语言,满足更多用户需求。

🏷️

标签

➡️

继续阅读