课程咨询 :0571-56020834 QQ:3163902815

杭州软件测试培训

杭州软件测试培训 > 达内新闻 > 黑盒自动化WEB安全测试
  • 黑盒自动化WEB安全测试

    发布:杭州软件测试培训      来源:51测试网      时间:2016-03-04


  •     杭州达内软件测试培训专家详细讲解黑盒自动化WEB安全测试。

    1.什么是安全测试(What)?

        安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,应用仍然能够充分的满足它的需求。

        a.如何提供证据? 我们通过一组失败的安全测试用例执行结果来证明web应用不满足安全需求。

        b.如何看待安全测试的需求?与功能测试相比,安全测试更加依赖于需求,因为它有更多可能的输入和输出可供筛选。

        真正的软件安全其实际上指的是风险管理,即我们确保软件的安全程度满足业务需要即可。

    2. 如何开展(How to do)? 

        基于常见攻击和漏洞并结合实际添加安全测试用例,就是如何将安全测试变为日常功能测试中简单和普通的一部分的方法。

        选择具有安全意义的特殊边界值,以及具有安全意义的特殊等价类,并将这些融入到我们的测试规划和测试策略过程中。

        但是若在功能测试基础上进行安全测试,则需要增加大量测试用例。这意味着必须做两件事来使其便于管理:

        缩小关注的重点和测试自动化。

        黑盒安全测试自动化的实施:

        使用工具:

        1.wapiti

        a.简介:wapiti:开源安全测试漏洞检测工具(Web application vulnerability scanner / security auditor)

        功能和特点: 

        文件处理错误(本地和远程打开文件,readfile ... )

        数据库注入(PHP/JSP/ASP,SQL和XPath注入)

        XSS(跨站点脚本)注入

        LDAP注入

        命令执行检测(eval(), system(), passtru()...)

        CRLF注射入(HTTP响应,session固定... )

        统计漏洞数量

        成功袭击的细节

        漏洞详细信息

        提供解决漏洞的方法

        HTML报告格式

        XML报告格式

        b.使用:wapiti使用比较简单。

        说明: 

        将wapiti的执行过程写成shell脚本,由计划任务定时去跑该脚本。然后将wapiti执行结果报告以邮件形式发到测试执行者及项目

        负责人的邮箱(非必要)。具体,在Ubuntu中,使用msmtp(邮件传输代理) + mutt(邮件用户代理) 来实现测试执行报告(邮件)自动

        发送。不使用postfix 、sendmail。msmtp支持TLS/SSL加密传输,比较可靠。而mutt在shell中使用较方便。

        思路:

        脚本AutoTest.sh按行读取文本url,由wapiti执行测试。将结果输出到generated-report.txt文件(执行结果报告)。

        脚本Analysis.sh读取generated-report.txt,wc -l命令统计关键字,得到执行用例数(爬过多少url),用例执行成功数,失败数。

        然后重定向到report.txt,将该report做为邮件的content,发送给项目负责人(非必要)。

        期望的执行结果是该页面没有xss、注入点等等问题。所以,发现该 url 存在xss等则认为用例执行失败,否则用例执行成功。

        发邮件的命令格式:mutt  -s   $主题   guangfu@xxx.com  -a  ~/xxtest/report/generated-report.txt      -s 邮件主题,-a 附件

        扩展: 

        根据 wapiti 的判断逻辑,增删测试点。提高测试效率。也就是修改wapiti的脚本,增加、删除测试点。

        另一方面,执行测试脚本需要被测网站的所有url列表。可以自己实现爬虫去动态的抓取,也可以使用工具(用开源的爬虫)。

        OWASP ZAP(Zed Attack Proxy)包含了一个蜘蛛程序,可以满足我们的要求,并且可以将被测站点的所有URL保存为一个文本  文件。经过简单处理,该文本就可以做为测试脚本的输入。 

        cat zap-url-guogf.com.txt  | awk  '{print $2}'  > url-guogf.com   #zap保存的url只有两列

        基本上算是一个半自动化的测试过程,要实现完全自动化,需要构建一个自动化的测试平台。通过平台耦合各个测试模块,最终  实现测试全流程自动化。 

        虽然全流程自动化目前还是一个梦想,但是如果你不去想,那永远也实现不了。先看看人家的自动化

        测试平台怎么设计的,再自己试着动手设计一个。画画功能图,试着写几个接口。

        脚本AutoTest.sh具体如下:

    #! /bin/bash 
    count=1
    cat url | while read line
    do
    echo "------$(date)------" >>generated-report.txt
    wapiti $line >>generated-report.txt
    echo "execute $count complete"
    count=$(($count + 1))
    done
    exit 0

    3.如何评价(How to audit)? 

        黑盒安全测试执行一般是在黑盒功能测试、性能测试完成之后进行。项目的安全建模是在需求分析阶段就加入的 。在日常测试工作中加入黑盒安全自动化测试最易实施,效果可能也最好(考虑成本和安全需求)。 

        从流程、组织、技术三方面保证测试质量。评审或是评价安全测试的活动,目前没有资格说。

        测试人员学习、了解安全方面的知识有助于提高测试覆盖率,当然也可以测出更多的BUG。但在系统测试中重点还是功能测试,功能测好了,  才去考虑性能、安全等方面。 





    原文链接:http://www.51testing.com/html/58/n-3707258-2.html
    推荐文章

上一篇:单元测试的性能测试库

下一篇:Vertica导出数据测试用例

最新开班日期  |  更多

国际软件测试工程师精品班

国际软件测试工程师精品班

开班日期:每月底

国际软件测试工程师提升班

国际软件测试工程师提升班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

  • 地址:杭州市西湖区文三路199号创业大厦4楼
  • 课程培训电话:0571-56020834 QQ:3163902815     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56