php发展

注册

 

发新话题 回复该主题

敏捷源代码审计方法论 [复制链接]

1#
1、介绍

代码审计(CodeAudit)就是根据了解到的程序功能和关键业务,针对程序源代码逐条进行检查和分析,找出源代码中可能引发的常见安全漏洞和业务逻辑问题的缺陷,并提供代码修改建议或解决方案。

针对于源代码审计工作环境的部署,其实如果是以服务的方式为客户的代码进行审计,审计的环境一般都会相对复杂,会面临几种情况:

1.最理想的环境,客户提供代码同时有对应的测试环境,这样的话就可以黑盒+白盒进行审计,可以提高审计的效率和覆盖度。

.只提供项目源代码,需要自己梳理整个项目源码的架构,通读所有关键代码,相对时间成本比较大,但是可以彻底了解整个项目源代码并且挖掘出高质量漏洞。

.只提供源代码片段,这种情况首先需要跟客户沟通是否可以提供完整项目源代码,否则是在一定程度影响源代码审计的完整性,因为部分功能代码片段可能会找不到调用的接口函数,无法追踪业务逻辑代码。

所以客户的代码审计服务基本上没有搭建环境的情况,因为他们不会提供数据库,想跑也跑不起来。

、源代码审计前期准备

1.需要和客户确认最新源代码版本

.需要客户准备入场后代码审计环境,是我们自备电脑审计还是在客户专用的电脑上做审计

.如果是专用的电脑,需要在电脑上安装office或者wps、代码编辑器及IDE工具,同时部署代码审计工具

.需要提供被审计系统相关需求文档及设计文档,帮助审计人员了解业务,可以深入业务进行审计

5.需要跟开发团队提前打好招呼,为审计人员讲解代码结构,可以方便审计人员迅速进入审计工作中

常用源代码审计相关工具如下

.1自动化工具

Fortify、CheckMarx、Sonarqube

.辅助工具

Sublimetext、Notepad++、EclipseIDE、JetBrain(CLion、IDEA、PyCharm、GoLang、PhpStorm...)

、审计流程、人工审计思路.1正向数据流分析法-根据业务推代码

描述

寻找敏感功能点,通读功能点代码;正向审计即从功能入口点进行跟踪,一直到数据流处理结束;

优点

精准定向挖掘,利用程度高;对程序有整体把握,能较全面的覆盖各种不同类的功能点,能挖掘到有价值的逻辑漏洞,有助于高质量的交付。

缺点

命名不规范的代码容易被忽略,导致失去先机;慢,易迷失在海量代码之间;难,绕不过去的框架问题。

针对性漏洞

登录,找回密码,文件上传,任意文件下载,验证码漏洞,流程绕过,越权等无明显特征等漏洞。

数据流分析流程图

常见的不可信数据入口方法

JAVA

方法

说明

getParameter

request类获取参数方法

getParameterNames

获取参数名

getParameterValues

获取参数值

getParameterMap

获取参数map类型

getQueryString

获取URL的value值

getHeader

获取

分享 转发
TOP
发新话题 回复该主题