直播回顾 | 为什么在开发流程中应用静态代码分析工具?
在 7 月 29 日结束的网络研讨会上,鉴释首席科学家李隆博士详细解读了静态代码分析的原理以及它如何应用在 SDLC 中。此外,他还讨论了静态代码分析在实际应用中面临的挑战。
静态代码分析也称为静态应用程序安全测试 (SAST),它是一组旨在分析应用程序源代码、字节码和二进制文件以识别缺陷和漏洞的技术。简而言之就是在未运行程序的情况下通过对程序的分析,发现程序中潜在的漏洞和安全隐患。
当静态代码分析应用在软件开发周期时,主要有两种不同的应用场景,一种是以独立运行的方式应用在日常开发中,另一种更加主流的方式是将静态代码分析的工具集成到 CI/CD 的流程中。
虽然独立运行的流程和 CI/CD 不相同,但二者并不冲突。一些简单的检查比如语法、编码规范等可以在开发者本地进行处理。如果是一些需要和其他模块交互的代码检查则需要提交到 CI/CD 的流程中,使得过程更加方便和高效。
尽管静态代码分析的使用可以带来很多好处和效率,但是现实应用中仍存在一些局限。最大的一个挑战就是目前市面上很多静态代码分析工具所消耗的时间和内存较大,并且误报较多,导致检测结果与开发者的期待相去甚远。
鉴释综合考虑了所存在问题,自主研发出的静态代码分析工具爱科识具有以下优势:
基于先进的编译器技术(Open64 编译器),可省去很多前端复杂处理
在中间表示层(IR)上进行分析,避免重复开发的问题
以零漏报为目标设计分析模型,更少的漏报和误报
采用按需分析的方式,节省时间和资源
开发了符号执行的框架,方便用户定义自己想要检查的规则
以下节选自 Q&A 环节部分听众提问
Q1.请问 SAST 和其他动态扫描 DAST、IAST 等有什么不同?
SAST 是在不执行的情况下进行分析。DAST 是通过动态执行代码去记录真正执行时的一些信息,然后给出反馈数据,通过数据来分析程序执行中存在哪些问题。IAST 是在工具和使用者之间会有一个交互,使用者会提供一些信息帮助分析工具进一步运行。
Q2. 请问静态代码分析工具爱科识可以扫描哪些代码规范和漏洞库?除了一些第三方的规范和漏洞库,爱科识还可以支持客户自定义规则来进行扫描。
如果想要了解完整问答和讨论,您可以点击此处观看直播回放,并且下载研讨会 PPT。
评论