前言:
代码审计涉及知识面较广,审计人员一方面要提高自身代码掌控能力,另一方面要多总结一些常用的高效审计技巧。
个人的思路是借助自动化的工具给出可能存在的缺陷清单,人工审计弥补工具的不足,先易后难。
工具准备:
IDEA(反编译)、
Eclipse、
Sublime Text、
Fortify SCA(基于源代码查找)、
Findbugs(基于字节码查找)
工作环境:
1.甲方公司审计专岗,
一般项目数量都比较多,有自己定制的SDL规范扫描器,代码审计更多变成了对SDL落地彻查。
2.外包服务的代码审计,
基本上不提供搭建环境的条件,因为很多情况下不给数据库,
有的提供项目大部分源代码,有的仅提供小部分源代码。
3.最理想环境,
搭建有环境可以进行Debug,通常在驻场审计服务中会碰到。
工作成果:
依据CVE公共漏洞字典表、OWASP十大Web漏洞,以及设备、软件厂商公布的漏洞库,
结合代码扫描工具结果验证编写报告,报告中给出风险等级、修复方法以及安全编码规范建议等服务。
一些老生常谈的JAVA技能:
常见框架:Strusts2、Spring boot、Spring MVC、SSH(Struts2+Spring+Hibernate)
注意ORM框架特殊性(Hibernate)
Filter、Interceptor