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

安全性测试方案

一、静态代码测试

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

 

代码审计工具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应用防火墙

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

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

④上线前对于Linux、Nginx、php的配置项进行优化

时间: 2024-07-30 08:57:55

代码审核:安全性测试方案的相关文章

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

安全性测试方案 一.静态代码测试 主要通过对源代码进行安全扫描,根据程序中数据流.控制流.语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞.   代码审计工具RIPS:   介绍:RIPS是一个用php编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞.渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码.由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认.RIPS能够检测XSS, SQL注入, 文件泄露,Hea

测试方案篇

测试计划:排时间节点,从管理角度对整个测试活动进行规划和控制. 测试方案:罗列测试范围.测试类型.使用到的测试方法.工具,保证测试全面,从技术角度进行规划和控制. 测试策略:属于测试方案里的内容之一,描述你执行哪些类型的测试,怎样组织测试. 此篇解答两个问题:1.在测试过程中,测试方案起到什么作用? 2. 如何编写测试方案? ------------------------------------------------------------华丽分割线---------------------

关于代码审核

最近一直在想如何提高产品质量的方法,其中最重要的一点就是要真正做好“代码审核”,而不是浮于便面只是为完成公司的流程制度,在这点上不仅我自己要做好,要让整个团队也能做好,要让大家真正通过代码审核这个活动提升自己,帮助别人.站在当前的角度在为提升团队代码审核效果要加强宣贯代码审核的重要性意义,已有的规范工具方法,团队成员达成共识.毕竟人才是首要问题,要大家齐心协力才能做好.下面这篇文章感觉很不错从自身不同的角色成长描述了对代审核的看法,其中穿插了一些不错的方法,分享一下. “code review”

系统安全性测试

系统的安全测试 1.      安全测试,什么是安全测试.安全性测试(Security test)它是指:在测试软件系统中对程序的危险防止和危险处理进行的测试,以验证其是否有效. 2.      安全性测试我们要做哪些工作呢?  a.全面检验软件在软件需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的处理反应情况: b.对软件设计中用于提高安全性的逻辑结构.处理方案,进行针对性测试: c.在异常条件下测试软件,以表明不会因可能的单个或多个输入错误而导致不安全状态 d.用错误的安全

入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面的具体构成和原理,只要像用户一样看待产品就可以了. 例如银行转账功能,不需要知道转账的具体实现代码是怎样工作的,只需要把自己想象成各种类型的用户,模拟多种转账情况看系统是否能正常转账即可. 但是仅仅像用户一样去测试又是不够的.如果只做黑盒测试,必然是存在一定的风险的. 例如某个安全性较高的软件系统,

WEB安全性测试

WEB的安全性测试主要从以下方面考虑   1.SQL Injection(SQL注入) (1)如何进行SQL注入测试? 首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等. 注1:对 于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用. <form id="form_search" act

测试计划与测试方案的区别

 测试计划与测试方案的关系对比: 测试计划 测试方案 目标      对测试全过程的组织.资源.原则等进行规定和 约束,并制订测试全过程各个阶段的任务以及时 间进度安排,提出对各项任务的评估.风险分析 和需求管理      描述需要测试的特性.测试的方法.测试环境的 规划.测试工具的设计和选择.测试用例的设计 方法.测试代码的设计方案. 关注点      组织管理层面的文件,从组织管理的角度对一次 测试活动进行规划      技术层面的文档,从技术的角度度一次测试活动 进行规划 具体内容  1.

Gerrit 代码审核服务器的工作流和原理

Gerrit 代码审核服务器的工作流和原理 谷歌 Android 开源项目在 Git 的使用上有两个重要的创新,一个是为多版本库协同而引入的 repo,这在之前我们已经详细讨论过.另外一个重要的创新就是 Gerrit -- 代码审核服务器.Gerrit 为 Git 引入的代码审核是强制性的,就是说除非特别的授权设置,向 Git 版本库的推送(Push)必须要经过 Gerrit 服务器,修订必须经过代码审核的一套工作流之后,才可能经批准并纳入正式代码库中... 6.7   Gerrit 代码审核服

黑盒测试基础之测试方案制定

1.     测试方案的重要性?   古人云:运筹帷幄之中,决胜千里之外.古人足不出户,通过正确的部署就能决定千里之外战争的胜利!而今对于测试人员而言,制定正确的测试方案,就是日后测试过程是否顺利的决定性因素!更是一个好的测试人员必备的技能之一! 所谓测试方案,是指整个测试过程中对测试人员.资源以及时间分配.合理的测试方案,能帮助测试过程有条不紊的进行,避免在测试过程中遭遇人员.时间.资源的冲突,以及测试环境搭建对测试进度的影响. 2.     测试计划OR测试方案傻傻分不清楚?一张图表回答你: