代码安全审计是指有开发和安全经验的人员,通过阅读开发文档和源代码,以自动化分析工具或者人工分析为手段,对应用程序进行深入分析,高效全面的发现系统代码的编码缺陷以及开发人员不安全的编程习惯,并指导开发人员进行修复,保障应用系统的安全运行。代码审计较普通的测试对代码的检查更加彻底和全面,可以提高代码质量,降低修复成本。
代码审计是cnas软件检测实验室非常常见的一项服务。本系列文章我们为大家介绍一下,代码审计的流程、重点知识以及代码测试会用到的软件测试工具Fortify的使用。本文主要为大家介绍代码审计的流程及重点知识。
首先,我们先一起来看一下代码审计的一些重要场景。如sql注入、xss攻击、暴力破解、越权漏洞等等。
代码审计需掌握知识
我们的软件测试工程师在做代码审计之前,需要掌握和熟悉基本的漏洞原理,熟悉基础开发,如java、js、html、jsp、数据库等。还需要熟悉基础的开发框架,如如spring、Struts2、Hibernate等。于此同时,还需要学习渗透基本原理,结合源码找漏洞。最后,我们还需要时刻关注国内外漏洞,保证代码安全。
做代码审计还需要熟练掌握Java的九大内置对象: application 全局作用域、session 会话作用域、request 请求作用域、 pageContext 页面作用域、 response 响应对象、 out 输出流对象、page 当前页面对象的实例、exception 异常、config ServletConfig/FilterConfig对象。
代码审计工作流程
代码审计的流程主要有以下几个环节:配置分析环境、熟悉业务流程、分析程序架构、使用工具进行自动化分析、人工审计工具分析结果、整理审计报告。
Java危险函数
最后再给大家介绍以下Java中的九大危险函数,需要我们重点关注:
getParameter() #获取参数
getcookies() #直接获取会话
getQueryString() #获取SQL语句
getHeaders() #获取HTTP请求头
Runtime.exec() #执行系统命令
logger.info() #日志输出,可造成信息泄露的风险
危险关键字:password,upload,download
以上就是我们为大家整理的代码审计的流程及重点知识,后面的文章会继续为大家介绍代码审计会用到的软件测试工具fortify的使用,欢迎继续关注。