一、代码审计的定义
代码审计是一种以发现安全漏洞,程序错误和程序违规为目标的源代码分析技能。
二、代码审计需要的能力
主要是动静结合,动指的是代码审计人员拥有调试的能力,通过调试直接定位问题代码,协助理解。静指的是需要代码审计人员有一定的编程基础,了解基础语法以及面向对象编程思想等。
三、代码审计常用思路
1.接口排查
找出所有的外部接口,从外部接口处跟踪参数的传递过程,观察是否有参数校验不严的变量传入高危方法中。
2.危险方法溯源
检查敏感方法的参数,并查看参数的传递和处理
3.功能点定向审计
根据经验判断该类应用通常会在那些功能中出现漏洞,直接审计该类功能的代码
4.第三方组件、中间件版本对比
检查web应用所使用的第三方组建或者中间件的版本是否收到已知的漏洞影响。
5.补丁比对
通过对补丁做比对,反推漏洞的出处。
6.黑盒测试+白盒测试
7.代码静态扫描工具+人工研判,代码扫描工具的特点是效率高,但是误报率也高。
8开发框架安全审计,审计web应用所使用的开发框架是否存在自身安全性问题,或者用户使用不当而引发的安全风险。