静态分析安全测试(SAST)优缺点探析

静态分析安全测试(SAST)可在开发阶段检测源码中的安全漏洞,降低成本,但其局限性在于无法涵盖所有安全问题,如设计缺陷和动态类型语言的挑战。NIST研究表明,SAST工具只能发现部分简单漏洞,大部分安全问题仍需通过其他方式解决。静态分析应该作为整体安全策略的一部分,结合应用安全设计和动态分析,以创建更安全的软件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态分析安全测试(SAST)是指不运行被测程序本身,仅通过分析或者检查源程序的语法、结构、过程、接口等来检查程序的正确性,那么采用静分析安全测试的方法有什么优缺点呢,且让小编给你说道说道。

许多公司都投资于 HP Fortify、IBM AppScan Source、 Checkmarx 或 Coverity 之类的静态分析安全测试(Static Analysis Security Testing,SAST)解决方案。如果使用得当,SAST 解决方案的确能大放异彩:相比于动态分析或运行时测试方案,它们能在开发阶段,而不是开发完成之后,探测出源码中的安全漏洞,从而大大降低修复安全问题的成本。它们还能找到许多动态分析工具通常无法找到的漏洞。而且,得益于其自动化的特性,SAST 工具能在成百上千款应用间实现伸缩,而这是仅靠人为分析方法无法企及的。

在对 SAST 解决方案投资之后,一些公司便放弃了在应用安全领域的进一步投资。这类公司的股东往往认为:静态分析方法覆盖了绝大多数软件安全漏洞,或是诸如 OWASP 前十的重要高风险漏洞,因此已经足够好了。这些公司往往不会在软件开发初期就考虑安全问题,而是止步于在应用部署到生产环境之前,获得一份来自扫描工具的“无瑕疵报告”。其实,这种心态非常危险,因为它无视了 SAST 技术的基本限制。

《用静态分析方法确保编程安全(Secure Programming with Static Analysis)》一书详细描述了静态分析技术的基本原理。此书的作者 Brian Chess 与 Jacob West 是 Fortify Software 公司背后的技术骨干,此公司后来被惠普收购。在书中,作者谈到:“一半的安全问题都源自软件的设计,而非源码。”之后,他们列举了软件安全问题的类别,比如与上下文特定的缺陷(这类问题往往在代码中可见)等等。他们还指出:“没有人敢断言,源码检查就能找出所有问题。”

静态分析工具相当复杂。为了正常发挥其功能,它们需要从语义上理解程序的代码、依赖关系、配置文件以及可能不是用同一种语言写的组

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值