SDL 19/100问:如何选择静态代码扫描(SAST)工具?
静态代码分析的工具非常多,有开源或商业的,有国内、外之分,有基于关键字正则匹配、或AST语义分析、亦或IR/CFG的代码分析。不过从甲方安全建设的视角来看,首要考虑成本和效果,故提供以下几点建议:
1、根据公司技术栈选择工具,具体来说就是看主流开发语言,因为有的工具确实会对某个语言支持得更好,表现在高检出率(POC时尽量不要用知名漏洞靶场);
2、破解版的SAST商业工具很少,但在国内却广泛传播着国外的某个破解工具,目前来看还有小范围更新规则库,个人研究或缺少预算的可以看看。但针对该情况,更推荐使用开源工具(不主张企业级用破解版,会带来麻烦);
3、从检测效果来看,正则关键匹配方式明显是误报最高的,但在有的场景中比较好用,比如数据流中断、想要快速检出具体的某一类漏洞.时..故不应考虑技术是否先进,不要指望一个工具能解决所有问题。在工具链建设时,可以先主、然后不断的丰富不同原理但又能扫出漏洞的工具。
总的来说,要做好代码安全扫描,无论选择怎样的工具都会有一个前提:企业配备具备代码审计的人员,持续做开发安全运营。附静态代码分析工具大全(国外与开源版):https://owasp.org/www-community/Source_Code_Analysis_Tools
更多软件安全内容,可以访问:
1、SDL100问:我与SDL的故事
SDL与DevSecOps有何异同?
如何在不同企业实施SDL?
SAST误报太高,如何解决?
SDL需要哪些人参与?
在devops中做开发安全,会遇到哪些问题?
如何实施安全需求?
安全需求,有哪些来源?
安全需求怎么实现自动化?
实施安全需求,会遇到哪些难题?
安全需求和安全设计有何异同及关联?
设计阶段应开展哪些安全活动?
有哪些不错的安全设计参考资料?
安全设计要求怎么做才能落地?
有哪些威胁建模方法论?
有哪些威胁建模工具?
如何开始或实施威胁建模?
威胁建模和架构安全评审,有何异同?
SDL 18/100问:编码阶段,开展哪些安全活动?
2、SDL最初实践系列
开篇
安全需求
安全设计
安全开发
安全测试
安全审核
安全响应