目录
1.代码审计的概念以及重要性
代码审计就是对源代码中的缺点和错误信息进行审核,分析并找到这些问题引发的安全漏洞,并提供代码修订措施和建议
代码审计的重要性如下
1.1对于新上线的系统来说
其对互联网的适应能力较差,代码审计可以充分挖掘代码中存在的安全缺陷。避免系统刚上线就遇到重大攻击。
1.2对于已运行的程序
先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知的环境下都能经得起黑客挑战。
1.3用来确保代码质量
程序的安全性是否有保障很大程度上取决于程序代码的质量,而保证代码质量最快捷有效的手段就是源代码审计。
- 代码审计的流程
- 首先确认代码审计范围、最终对象、审计方式、审计要求和时间等内容。
- 先使用代码审计的扫描工具对源代码进行扫描,完成初步的信息收集,查找程序中可能存在的敏感字符串,检查程序的调用关系,检查程序的密码加解密处理,然后由人工的方式对代码扫描结果进行人工的分析和确认。
- 对代码审计发现的问题整改或加固。经整改或加固后,代码审计服务人员进行回归检查,即二次检查。
- 根据第一次和第二次的审查结果,整理代码审计服务输出成果,最后汇报项目领导。
3.代码审计的工具
3.1 seay
Seay是基于C#语言开发的安全审计工具,能够发现SQL注入、代码执行、命令执行、文件包含、文件上传等漏洞
Seay源代码安全审计特点:
- 一键自动化白盒审计
- 代码调试
- 正则编码
- 自定义插件及规则
3.2fortify sca
是一个静态的、白盒的软件源代码安全测试工具
有五大内置分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析。
数据流:跟踪记录传递过程中出现的安全问题
语义:分析不安全的函数
结构:分析上下文环境
控制流:分析指定时间的指令安全问题
配置流:分析敏感信息
3.3工具的漏洞
- 工具可能会出现一些误差和错误报道
- 需要大量人工来确保正确审计
- 编码不够规范
- 不可以自动收集出现的漏洞安全问题
4.代码审计报告
4.1列出发现的漏洞
4.2安全建议