首页 > 代码库 > 代码审核:安全性测试方案

代码审核:安全性测试方案

安全性测试方案

一、静态代码测试

主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。

 

代码审计工具RIPS:

 

介绍:RIPS是一个用php编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS能够检测XSS, SQL注入, 文件泄露,Header Injection漏洞等。

 

官方网站:http://rips-scanner.sourceforge.net/

 

使用方法:下载后解压到web目录,然后访问此目录,输入需检测的路径(/var/www/web1)后提交(即点击“SCAN”按钮)。

 

测试示例:

对于前台功能的测试结果如下图,根据提示找到对应代码并修复。

 

测试分析:

①前端使用$_FILE获取参数易导致跨站攻击。对于文件上传,可以使用TP自带的上传功能。

API项目部分参数使用$_POST$_GET方式获取参数易导致跨站攻击。

③后端使用的Ueditor插件上传部分可能引起跨站攻击,应注意对Ueditor进行相关配置。

二、动态渗透测试

使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。以反向安全性测试为主(即事先检查哪些地方可能存在安全隐患,然后针对这些可能的隐患进行测试)。

1、建立缺陷威胁模型

建立缺陷威胁模型主要是从已知的安全漏洞入手,检查软件中是否存在已知的漏洞。建立威胁模型时,需要先确定软件牵涉到哪些专业领域,再根据各个专业领域所遇到的攻击手段来进行建模。

涉及领域有:①操作系统

②服务器环境:数据库漏洞、运行语言、服务器

③应用程序:开发框架漏洞、业务逻辑漏洞等

2寻找和扫描入侵点

检查威胁模型里的哪些缺陷可能在本软件中发生,再将可能发生的威胁纳入入侵点矩阵进行管理。如果有成熟的漏洞扫描工具,那么直接使用漏洞扫描工具进行扫描,然后将发现的可疑问题纳入入侵点矩阵进行管理。

安全领域

安全漏洞

Web应用

SQL注入

跨站攻击(XSS

跨站请求伪造(CSRF

分布式拒绝服务攻击(DDOS

文件上传

暴力破解

Cookie/Session安全

数据加密

越权操作

开发框架漏洞

Web服务器

目录遍历漏洞

不安全的配置管理

操作系统

缓冲区溢出

文件执行

不安全的配置管理

3入侵矩阵的验证测试

1)系统测试

使用360网站安全检测http://webscan.360.cn/)进行测试。

测试注意:实际测试时,应在测试完一遍以后,将登陆模块注释掉,并初始化用户信息,以便进入个人中心进行测试。测试时建议先清空缓存文件。

测试结果示例:

 

2)工具测试

使用AWVS进行测试。

下载地址:http://www.freebuf.com/sectool/13103.html  (或去官方网站下载)

使用教程:http://www.jb51.net/hack/497815.html

测试注意事项:由于阿里云的安全防护功能,测试可能会被当做攻击而被拦截。因此测试前需要将IP地址加入阿里云白名单,具体可参照360网站安全检测添加IP到阿里云白名单的步骤。如果仍无法进行测试,可以尝试本地测试。

测试结果示例如图:

 

注:也可使用sqlmap单独进行SQL注入测试。

3)手动测试

由于手动测试的局限性及大工作量,因此不建议使用手动测试。

三、业务逻辑分析

对于静态代码测试与动态渗透测试,只能检查代码的安全性。对于业务逻辑方面仍需要进行分析与测试,以确定业务逻辑实现是否存在漏洞。

①需要走查分析的功能模块:

供车方:报价、新增(员工、司机、巴士、银行卡)、密码修改、代客包车等

包车方:包车发布、登录注册、在线充值、余额提现、完善资料、新增(员工、银行卡)、密码设置等。

②分析内容

1)数据有效性检查

2)是否可以重复提交

3)权限检查

4)……

四、建议

①开通阿里云的WEB应用防火墙

②开通阿里云的态势感知功能

③阿里云云盾会定期扫描网站并检测系统存在漏洞,可以定期检查

④上线前对于LinuxNginxphp的配置项进行优化

代码审核:安全性测试方案