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

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

工具: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版本的漏洞,对于这些漏洞,读者同样可以通过上述四个选项卡了解漏洞的形成原因、危害及解决措施等。

目录
相关文章
|
7天前
|
测试技术
探索软件测试的奥秘:如何构建有效的测试策略
在软件开发的海洋中,测试是确保航船不沉没的灯塔。本文将带你领略测试的魅力,从基础概念到高级策略,我们将一起航行在软件测试的广阔海域,探寻那些隐藏在代码深处的秘密。准备好了吗?让我们启航吧!
18 1
|
13天前
|
敏捷开发 测试技术 持续交付
软件测试中的探索性测试方法及其重要性
【8月更文挑战第6天】在软件开发周期中,测试环节是不可或缺的。它确保了产品的质量、性能与可靠性。然而,传统的测试方法往往侧重于预设的测试用例和场景,可能忽略了用户实际使用过程中的非预期行为。探索性测试(ET)应运而生,它强调测试人员的自主性和创造性,通过不断学习和适应来发现软件的潜在缺陷。本文将探讨探索性测试的概念、实施策略及其在现代软件开发中的重要性。
|
13天前
|
测试技术
软件测试中的心理学:如何优化测试流程
【8月更文挑战第6天】本文深入探讨了软件测试过程中的心理学因素,揭示了测试人员的心理动态对测试效率和质量的影响。通过分析测试人员的压力源、动机以及团队间的沟通问题,提出了一系列改善策略,如建立积极的反馈机制、提供持续的职业培训和优化工作环境等,旨在提升软件测试的整体效能。文章最后提出一个开放性问题,邀请读者思考如何在不断变化的技术环境中维持测试团队的心理健康和动力。
|
16天前
|
机器学习/深度学习 人工智能 数据挖掘
重塑软件测试未来:自动化与人工智能的交响乐章,引领高效精准测试新时代
【8月更文挑战第3天】软件测试是确保软件质量的关键环节。随着自动化与AI技术的发展,测试正经历从手动到自动、再到智能的深刻变革。自动化显著提升了测试效率,减少人为错误;AI则通过数据分析和学习能力,实现了测试用例的自动生成与优化,提高了测试的智能水平。两者的融合不仅增强了测试的全面性和准确性,还预示着一个更加高效智能的测试新时代的到来。
19 1
|
14天前
|
敏捷开发 搜索推荐 测试技术
探索式测试:软件测试的灵活之道
在软件发展的快速迭代中,传统的测试方法往往显得笨重且效率低下。探索式测试(Exploratory Testing)作为一种敏捷的测试实践,强调测试人员的个人技能与经验,提倡在测试过程中即兴发挥,以更加高效地发现软件缺陷。本文将深入探讨探索式测试的核心理念、实施步骤及其在实际项目中的有效应用,为读者提供一种全新的视角来审视和改进软件测试流程。
|
16天前
|
敏捷开发 测试技术
软件测试的艺术与科学:探索高效测试策略
在数字化时代,软件成为我们日常生活和工作的核心。然而,高质量的软件并非偶然产物,而是经过精心设计和系统测试的结果。本文将深入探讨如何通过艺术性与科学性的结合,制定出高效的软件测试策略。我们将一起走进测试的世界,了解不同类型的测试方法,探索它们在实际项目中的应用场景,并分析如何根据项目需求和资源选择最合适的测试类型。此外,我们还将讨论自动化测试的趋势,以及它如何改变传统的测试流程。让我们一起揭开高效软件测试的神秘面纱,提升测试效率,保障软件质量。
|
16天前
|
Java 测试技术 开发者
探索软件测试的多维度:从单元到系统,再到性能测试
本文深入探讨了软件测试的多个关键维度,包括单元测试、集成测试、系统测试以及性能测试。通过分析每个阶段的目标和方法,本文旨在帮助读者理解如何构建一个全面的测试策略,确保软件产品的质量与性能。我们将通过具体案例和数据来揭示不同测试阶段的重要性及其在软件开发生命周期中的作用。
33 0
|
3月前
|
安全 网络协议 测试技术
安全测试工具之nmap使用指南
【2月更文挑战第7天】安全测试工具之nmap使用指南
162 4
安全测试工具之nmap使用指南
|
3月前
|
SQL 安全 Java
安全测试之推荐工具
【2月更文挑战第2天】安全测试之推荐工具
262 2
|
3月前
|
安全 测试技术 Linux
常见安全测试工具
常见安全测试工具
124 1

热门文章

最新文章