代码安全审计

代码安全和代码审计中的代码一般均指“源代码”,源代码也称源程序。

审计是一种威慑控制措施,对于审计的预知可以潜在地威慑用户不执行未授权的动作,审计也是一种被动的检测控制措施,因为审计只能确定实体的行为历史,也不能阻止实体实施攻击。

重要的漏洞挖掘技术:源代码审计和模糊测试


1.什么是源代码审计

源代码审计是由具备丰富编码并对安全编码原则以及应用安全具有深刻理解的安全服务人员对系统的源代码和软件架构的安全性、可靠性进行全面的安全检查。

2.源代码审计目的

其目的在于充分挖掘当前代码中存在的安全缺陷以及规范性缺陷,从而让开发人员了解其开发的应用系统可能会面临的威胁,并指导开发人员正确修复程序缺陷。

3.源代码审计和模糊测试区别

源代码审计是通过静态分析程序源代码找出代码中存在的安全性问题。

模糊测试需要将测试代码执行起来,然后通过构造各种类型的测试数据来判断代码对数据的处理是否正常,来发现代码中存在的安全性问题。

4.为什么要做代码审计?

  • 新上线系统对互联网环境的适应性较差,代码审计可以充分挖掘代码中存在的安全缺陷。避免系统刚上线就遇到重大攻击。
  • 已运行系统,先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个缓解在未知环境下都能经得起黑客挑战。
  • 确保代码质量,实践证明程序的安全性是否具有保障很大程度上取决于程序代码的质量,而保证代码质量最快捷有效的手段就是源代码审计

5.代码审计的好处

  • 明确安全隐患点,可以从整套源码切入最终明确至某个威胁点并加以验证
  • 提高安全意识,有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险
  • 提高开发人员安全技能,通过审计报告以及安全人员和开发人员的沟通,开发人员更好的完善代码开发规范。

6.源代码审计的服务内容

  • 系统所用开源框架,包括反序列化漏洞,远程代码执行漏洞,spring、struts2安全漏洞,PHP安全漏洞等
  • 应用代码关注要素,日志伪造漏洞,密码明文存储,资源管理,调试程序残留,二次注入,反序列化。
  • API滥用,不安全的数据库调用、随机数创建、内存管理调用、字符串操作,危险的系统方法的调用。
  • 源代码设计,不安全的域,方法,类修饰符未使用的外部引用、代码。
  • 错误处理不当,程序异常处理、返回值用法、空指针、日志记录
  • 直接对象引用,直接引用数据库中的数据,文件系统,内存空间
  • 资源滥用,不安全的文件创建/修改/删除,竞争冲突,内存泄露
  • 业务逻辑错误,欺骗密码找回功能,规避交易限制,越权缺陷Cookies和session的问题
  • 规范性权限配置,数据库配置规范,Web服务的权限配置和编写规范。

7.代码审计流程

  • 前期准备,确定审计对象、审计方式和时间
  • 代码审计实施,源代码扫描,人工代码审计
  • 复测阶段,回归检查

猜你喜欢

转载自blog.csdn.net/m0_56632799/article/details/128970119