1. 概念
静态应用安全测试 (SAST,Static Application Security Testing) 也称静态分析,是一种测试方法,通过分析源代码来发现应用受到攻击的安全漏洞。SAST 在编译代码之前扫描应用,故又经常被称为白盒测试。
2. SAST 典型应用场景
-
可在SDLC早期阶段进行:SAST 在软件开发生命周期 (SDLC) 的早期阶段进行,因为测试时不需要应用运行,并且可以在不执行代码的情况下进行测试。它能帮助开发人员在开发的初始阶段识别漏洞并快速解决问题,而不会破坏构建成果或将漏洞传递到最终应用版本。
-
支持编码实时反馈:SAST 工具在开发人员编码时为其提供实时反馈,帮助他们在将代码传递到 SDLC 的下一阶段之前解决问题,可以防范在安全相关的问题上出现事后诸葛亮的情况。SAST 工具还会对所发现的问题提供从污染源到语句执行处的图形介绍。这些可帮助您更轻松地完成浏览代码。有些工具指出漏洞的确切位置,并突出显示风险代码。这些工具还可以提供有关如何修复问题的深入指导,以及在代码中修复问题的最佳位置,而无需深奥的安全领域专业知识。
-
支持自定义报告:开发人员还可以使用 SAST 工具创建他们需要的自定义报告,这些报告可以离线导出并使用操作面板进行跟踪。跟踪工具报告的所有安全问题可帮助开发人员及时修复这些问题,并在发布应用时让问题在最大程度上得以解决。该流程有助于创建安全的 SDLC。
注意:必须定期在应用上运行 SAST 工具,例如在每天/每月的构建工作中、在每次合入代码时或在发布代码期间。
3. 为什么 SAST 是一项重要的安全活动
SAST可以在代码编写之前或者编译之后对代码进行分析,以发现其中可能存在的安全漏洞。SAST是一项重要的安全活动,因为它可以帮助开发人员在开发过程中及早地发现潜在的安全问题,并且可以提供有针对性的建议来帮助开发人员修复这些问题,从而减少安全漏洞的风险。具体来说,SAST可以提供以下优点:
- 提前发现问题:SAST可以在代码编写之前或者编译之后对代码进行分析,从而可以在应用程序部署之前及早地发现潜在的安全问题,SAST 工具能够分析 100% 的代码库,可自动识别关键漏洞,如缓冲区溢出、SQL 注入、跨站点脚本等。
- 扫描速度快:与人工使用手动安全代码审查相比,其速度要快很多。这些工具只需几分钟即可扫描数百万行代码。
- 降低成本:通过使用SAST,开发人员可以在开发过程中发现和解决潜在的安全问题,从而避免在应用程序部署之后面临更大的安全问题和更高的修复成本。
4. 有效运行 SAST 的六大关键步骤
对于使用不同语言、框架和平台构建了大量应用的组织,需要六个简单的步骤来高效执行 SAST。
- 工具选用:选择一个静态分析工具,可以对您所用的编程语言写入的应用执行代码审查。该工具还应该能够理解您的软件使用的基础框架。
- 工具部署:此步骤涉及处理许可要求、访问控制和授权,以及获取部署该工具所需的资源(例如服务器和数据库)。
- 工具配置:微调工具以适应组织的需求。例如,您可以通过配置,使其能够减少误报或能够通过编写新规则或更新现有规则来查找其他安全漏洞。将工具集成到构建环境中,创建用于跟踪扫描结果的控制面板,从而构建自定义报告。
- 扫描排序:工具准备就绪后,将应用载入系统。如果有大量应用,请优先扫描高风险应用。最终,所有应用都应定期载入和扫描,并将应用扫描与发布周期、每日或每月构建或代码提交实现同步。
- 结果分析:此步骤涉及对扫描结果进行分类,以移除误报条目。一旦问题集最终确定,就应对其进行跟踪并将其交给部署团队,以便进行适当及时的修复。
- 治理:执行适当的治理可以确保开发团队正确使用扫描工具。SDLC 中应当显示软件安全接触点。
5. SAST 与 DAST的区别与关联系
请参阅博主前期文章《静态应用安全测试 SAST 与动态应用安全测试 DAST 有何区别?》
6. 参考
[1] https://www.synopsys.com/glossary/what-is-sast.html
推荐阅读:
- 「 网络安全常用术语解读 」软件物料清单SBOM详解
- 「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
- 「 网络安全常用术语解读 」SBOM主流格式SPDX详解
- 「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
- 「 网络安全常用术语解读 」漏洞利用交换VEX详解
- 「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐
- 「 网络安全常用术语解读 」什么是0day、1day、nday漏洞
- 「 网络安全常用术语解读 」软件物料清单SBOM详解
- 「 网络安全常用术语解读 」杀链Kill Chain详解
- 「 网络安全常用术语解读 」点击劫持Clickjacking详解
- 「 网络安全常用术语解读 」悬空标记注入详解
- 「 网络安全常用术语解读 」内容安全策略CSP详解
- 「 网络安全常用术语解读 」同源策略SOP详解
- 「 网络安全常用术语解读 」静态分析结果交换格式SARIF详解
- 「 网络安全常用术语解读 」安全自动化协议SCAP详解
- 「 网络安全常用术语解读 」通用平台枚举CPE详解
- 「 网络安全常用术语解读 」通用缺陷枚举CWE详解
- 「 网络安全常用术语解读 」通用漏洞披露CVE详解
- 「 网络安全常用术语解读 」通用配置枚举CCE详解
- 「 网络安全常用术语解读 」通用漏洞评分系统CVSS详解
- 「 网络安全常用术语解读 」通用漏洞报告框架CVRF详解
- 「 网络安全常用术语解读 」通用安全通告框架CSAF详解
- 「 网络安全常用术语解读 」漏洞利用交换VEX详解
- 「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐
- 「 网络安全常用术语解读 」通用攻击模式枚举和分类CAPEC详解
- 「 网络安全常用术语解读 」网络攻击者的战术、技术和常识知识库ATT&CK详解