软件测试实验四 安全测试参考案例

简介: 软件测试实验四 安全测试参考案例

工具:AppScan

网站:传智播客图书库http://resource.boxuegu.com

简介:使用AppScan扫描传智播客图书库安全漏洞,评价其安全性。

AppScan安装

登录AppScan的中文官网:https://www.ibm.com/developerworks/cn/downloads/r/appscan/,下载最新的AppScan试用版,下载之后进行安装,AppScan的安装与普通软件相同。

首次打开AppScan会弹出安装向导。

用户可以单击观看AppScan使用视频教程、阅读入门PDF、下载AppScan扩展,也可以在这里新建扫描项目。如果不想再弹出该对话框,可以取消勾选左下角的“启动AppScan时显示该屏幕(D)”选项。

关闭使用向导之后,显示AppScan主界面。

在AppScan主界面,最重要的是视图选择器,视图选择器有三个选项:

●  数据:用于显示扫描的目录、URL、结果信息,上图就是数据选项界面。

●  问题:用于显示扫描到的安全漏洞并按严重级别排序,还会显示关于安全漏洞的详细信息。

●  任务:用于显示本次扫描结果中需要解决的任务。

认识了AppScan,下面通过扫描传智播客图书库为例来演示AppScan的使用。

1、在菜单栏中单击【文件】->【新建】,弹出新建扫描对话框。

2、在步骤1图中选择“常规扫描”,单击之后弹出扫描配置向导对话框。

3、在步骤2图中选择探索站点的方法,由于本案例是在本机上扫描Web应用程序,因此选择“AppScan(自动或手动)”选项。

选择完毕之后,单击【下一步(N)】按钮,进入URL配置页面。

4、在步骤3图中的“起始URL”输入框中输入传智播客图书库地址,选择扫描方式。AppScan扫描方式有两种:

●  仅扫描此目录中或目录下的链接(L):只扫描起始URL目录或者子目录中的链接。

●  将所有路径作为区分大小写来处理(Unix、Linux等)(T):扫描所有路径,并且区分大小写进行扫描。

案例要对传智播客图书库进行全面扫描,因此勾选第二个选项,单击【下一步(N)】按钮,进入登录管理页面。

5、登录

AppScan登录网站的选择有4种:记录、自动、提示、无。

  1. 记录:单击【记录(R)】按钮,选择下拉列表中的任一浏览器。

(1)记录

选择浏览器之后,AppScan进入网站。

(1)记录

登录网站之后,用户可以选择某个图片、链接等,到达一定的场景,然后单击【我已登录到站点(O)】,AppScan会记录这个登录序列,当到达同样的场景时AppScan就默认是登录了网站,这个过程类似于LoadRunner的脚本录制过程。

(2)自动:自动选项是指手动输入用户名和密码。

由于传智播客图书库不需要登录,因此在这里选择“无(O)”选项,选择完毕之后,单击【下一步(N)】按钮,进入测试策略选择界

6、在步骤5图中选择“缺省值”测试策略,单击【下一步(N)】按钮,进入测试优化界面。

7、在步骤6图中选择优化方式,为了缩短扫描时间,选择优化方式进行扫描。

选择完毕之后,单击【下一步(N)】按钮,进入完成配置向导界面

8、在步骤7图中选择扫描启动方式,AppScan扫描启动方式有4种:

● 启动全面自动扫描(A):AppScan根据之前的配置自动探索应用程序,且边探索边扫描页面。

● 仅使用自动“探索”启动(E):AppScan自动探索应用程序,但不做扫描,即不发送攻击。

8、在步骤7图中选择扫描启动方式,AppScan扫描启动方式有4种:

● 使用“手动探索”启动(M):手动访问应用程序,AppScan会记录用户访问的页面。

● 我将稍后启动扫描(L):AppScan不做任何操作,需要用户自己手动启动扫描。

8、本案例选择“启动全面自动扫描(A)”选项,接下来勾选“完成扫描配置向导后启动扫描专家(S)”选项,扫描专家会先大致探索一遍要扫描的网站,提出建议以更好的扫描网站,选择完毕之后,单击【下一步(N)】按钮,弹出自动保存扫描提示框。

9、在步骤8图中单击【是(Y)】按钮,将扫描过程保存到相应文件中,保存之后AppScan就开始自动扫描,这个过程只是探测扫描,它会将扫描到的信息提交给扫描专家进行分析,获得关于该网站的信息,帮助用户优化扫描配置。

9、探测扫描结果如下图。

10、在探测扫描过程中,扫描专家提出了几条建议,经过分析确认前4条为可执行建议,勾选前4条建议,单击【应用建议(A)】按钮,开始真正的扫描,

11、AppScan扫描过程时间比较长,会持续2~3个小时。在扫描过程中,如果发现安全问题,AppScan会实时显示在AppScan主窗口中,用户可以切换视图选择器查看。扫描结束,AppScan会生成一份详细的扫描报告。

结果分析:此次扫描发现2个高级别的安全漏洞,4个中级别的安全漏洞,326个低级别的安全漏洞。其中,2个高级别安全漏洞为跨站点脚本漏洞。

关于安全漏洞的分析,在视图选择器的“问题”选项最右侧提供了四个选项卡:

【问题信息】:显示安全漏洞所在的点。

【咨询】:显示安全漏洞形成的原因、技术描述、可能导致的危害以及利用该漏洞进行攻击的例子。

【修订建议】:显示安全漏洞的解决策略。

【请求/响应】:显示发送给应用程序测试相关反应的具体请求细节。

本次扫描最为严重的漏洞:跨站点脚本漏洞

原因:未对用户输入正确执行危险字符清理

危害:可能会使攻击者窃取或操纵客户会话和cookie,它们可能用于假冒合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。

修复方案:

①使用经过审查的库或框架,如微软的反XSS库、OWASP ESAPI编码模块、Apache Wicket等,这些库和框架更容易生成正确编码的输出,不允许出现这种漏洞或提供更容易避免这种漏洞的结构。

②在不同组件之间传输数据时,了解数据应用的上下文环境及预期使用的编码。

③了解软件不可信输入的所有潜在区域,包括参数、Cookie、从网络读取的任何内容、环境变量、反向DNS查找、查询结果、请求头、URL组件、电子邮件、文件、文件名、数据库等,尽量减少攻击面。

④对输入进行验证,使用输入验证策略严格控制输入规范,拒绝不符合规范的所有输入,或者将其转换为符合规范的输入。

除了跨站点脚本漏洞,AppScan还发现了4个安全级别为中的漏洞,包括3个加密会话Cookie缺省Secure属性的漏洞和1个支持不推荐使用的SSL版本的漏洞,对于这些漏洞,读者同样可以通过上述四个选项卡了解漏洞的形成原因、危害及解决措施等。

目录
相关文章
|
2月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
22 1
|
2月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
30 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与质量:AI驱动的自动化测试策略
【2月更文挑战第19天】 在快速迭代的软件发展环境中,传统的手动测试方法已无法满足高效率和高质量的要求。本文探讨了人工智能(AI)技术如何革新现有的软件测试流程,通过引入AI驱动的自动化测试策略,旨在提高测试覆盖率,减少人为错误,优化资源分配,并缩短产品上市时间。我们将分析AI在识别潜在缺陷、生成测试用例、执行测试以及结果分析中的应用,并讨论实施这些策略时可能遇到的挑战和限制。
175 3
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:智能化测试用例生成策略
【4月更文挑战第28天】 随着软件开发的复杂性不断增加,传统的软件测试方法面临巨大挑战。为了提高测试覆盖率并确保软件质量,需要投入大量的时间和资源去设计、执行和维护测试用例。本文探讨了一种基于人工智能(AI)技术的智能化测试用例生成策略,该策略能够自动识别关键的测试路径,动态调整测试用例,并优化测试集合。通过引入智能化工具和算法,显著提升了软件测试过程的效率和有效性。
|
3天前
|
测试技术
【测试】优化软件测试:有效测试用例设计的关键
【测试】优化软件测试:有效测试用例设计的关键
|
3天前
|
jenkins 测试技术 持续交付
深入探索软件测试中的持续集成与自动化测试实践
【4月更文挑战第27天】 在当今软件开发的快速迭代过程中,持续集成(CI)和自动化测试已成为确保代码质量和加快交付速度的关键因素。本文将探讨如何通过实施持续集成流程,并结合自动化测试策略来优化软件测试工作。我们将分析持续集成的原理、自动化测试的最佳实践以及如何将这些方法应用于实际项目中,旨在为读者提供一套完整的解决方案,以提高软件项目的效率和质量。
11 3
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:智能化测试用例生成策略
【4月更文挑战第25天】 在软件开发生命周期中,高效的测试用例设计是确保产品质量的关键步骤。随着人工智能和机器学习技术的不断进步,智能化测试用例生成已成为提高软件测试效率和效果的有力工具。本文将探讨智能化测试用例生成的策略,包括基于模型的学习、自然语言处理以及遗传算法等,并分析其对传统测试方法的影响,最后提出实施智能化测试的实践建议。
|
8天前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
15 0
|
25天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
50 6
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:AI驱动的自动化测试策略
【2月更文挑战第30天】随着人工智能(AI)在软件开发周期中的日益普及,其在提高软件测试效率方面的潜力正受到越来越多的关注。本文探讨了如何通过集成AI技术来优化自动化测试流程,从而减少重复工作、提高错误检测率和加快反馈速度。我们将分析当前AI在自动化测试中的应用,并提出一系列策略以利用AI改进测试案例生成、执行和维护过程。
96 0