选择静态应用程序测试工具(SAST)的七点清单
从汽车到飞机,从医疗设备到工业控制系统,许多现代化产品都需要由软件驱动,安全问题已经成为制造商关注的重点问题。软件缺陷不仅会通过引入可被攻击者利用的漏洞影响安全性,还会通过影响产品的功能操作来影响安全性。
此外,产品安全还会产生财务财务影响。例如,在开发中修复漏洞的成本比在测试中低10倍,比在生产中低100倍。这也说明为什么静态应用程序安全测试(SAST)已经成为产品安全性的基石,以及安全左移中在开发的早期阶段进行代码分析。
与其他形式的应用程序安全测试(AST)不同,SAST扫描所有源代码,包括配置文件,而不仅仅是在运行时执行的代码。SAST还可以进行代码规范检测。软件质量和安全性是密不可分的,因为编写得不好的软件通常不安全。
为了确保SAST工具更符合企业的业务需求,在评估SAST工具时,通常会考虑以下几点:
1.多种语言支持
语言的选择通常基于软件开发商的编程需求、消费者的需求以及与产品相关的硬件。例如,为航空航天等安全关键型应用开发软件所需的功能与用于构建 Web 应用程序的语言不同。支持多种语言代码检测,如C/C++、Java、C#、Python、PHP、JS、HTML等。
2. 与多种开发环境集成
开发环境平台通常包括编译器和调试工具以及各种操作系统文件和配置选项,因此确保 SAST 工具可以与所使用的开发环境集成。
3. 较低的误报和漏报
在DevOps中加入安全性,需要同时保证开发速度和安全性。过多的误报会将开发人员的注意力从完成软件创新开发转移到排查潜在缺陷上。太多误报容易导致开发人员对真正安全缺陷报告失去耐心,并较少关注真正的安全警报。
4. 可集成在DevOps中
软件开发生命周期使用广泛的工具集,提供自动化以帮助开发人员更快地将产品送到生产阶段。确保 SAST 工具支持并与不同的工具类别集成,包括协作和管理、源代码管理和存储库、IDE、编译器、编排和自动化等。
5. 支持国产环境
随着企业所使用的环境及软件逐渐国产化,对其安全性检测所使用的SAST 工具需要支持国产化环境。除了支持 Ubuntu、CentOS主流Linux环境部署,还需要支持中标麒麟、银河麒麟等国产操作系统。
6. 开发人员友好的用户界面
左移安全性通常通过将安全警告集成到开发工程师使用的集成开发环境 (IDE)中来实现。在现有 IDE 中工作的 SAST 工具可以减少呈现给测试人员的错误数量,从而减少大规模“返工”并确保在截至日期前完成任务。
7. 支持多种标准
许多企业需要使用(有些必须遵守)软件编码实践的标准,如CWE、OWASP、CERT、MISRA等,这些标准为提高软件系统的可靠性和安全性提供了框架。此外,公司可能需要满足国家规定的标准及编码安全标准,如GB/T 34943,GB/T 34944,GB/T 34946以及电子行业标准,SJ/T11682、SJ/T11683和组织特定标准等。
使用这些基本准则来评估 SAST 工具,将有助于所选择的产品满足组织的业务、技术、安全和安保要求。
来源:
https://devops.com/a-seven-point-checklist-for-getting-sast-right/