自动化源代码评估与常见漏洞分析
在软件开发周期中,尽早发现漏洞至关重要,尤其是与在后期发现漏洞相比。下面将详细介绍自动化源代码评估的相关内容以及常见的漏洞示例。
自动化源代码评估的不同阶段
自动化源代码扫描器会从多个角度审视程序源代码。代码审查工具通常有可定制的独立引擎或模块来检查源代码,每个扫描引擎会在源代码的不同方面识别不同类型的安全问题:
- 数据流 :数据流分析器会发现涉及受污染数据(用户控制的输入)被用于潜在危险用途的潜在漏洞,例如缓冲区溢出和 SQL 注入。
- 控制流 :控制流分析器会发现潜在不安全的程序序列,例如检查时间/使用时间(TOCTOU、TOCTTOU 或 TOC/TOU)问题和未初始化的变量。
- 语义 :语义分析器会在过程内层面发现潜在危险的使用、功能和 API,例如已弃用的功能和有风险的功能。
- 结构 :结构分析器会发现程序结构或定义中可能存在的不安全问题,例如死代码。
- 配置 :配置分析器会查找应用程序实现配置文件中的错误、弱点和策略违规。
自动化源代码扫描可以分为几个阶段,不同的扫描器技术可能有所不同。这里以流行的源代码扫描工具 Fortify 为例,其扫描阶段如下:
graph LR
A[构建集成] --> B[翻译]
B --> C[分析]
C --> D[翻译和分析验证]
</
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



