XXX系统
安全测试报告
创建人 :xxx
创建时间:xxxx年xx月xx日
确认时间:
当前版本:V1.0
文档变更记录
文件状态:
[√]草稿
[ ]正式发布
[ ]
废止 | 文档编号: | P01 | ||||
当前版本: | V1.0 | |||||
编 制: | xxx | |||||
审 核 人: | ||||||
发布日期: | ||||||
版本编号 | 修订类型 | 修订章节 | 修订内容 | 编制人/日期 | 审核人/日期 | |
V1.0 | A | 全文 | 初稿 | xxx/160808 | ||
1.简介
1.1.编写目的
描述编写本测试报告需要说明的内容。
如:本报告为XX项目的安全测试报告,目的在考察系统安全性、测试结论以及测试建议。
1.2.项目背景
对项目背景进行简要说明,可从需求文档或测试方案中获取。
1.3.系统简介
对所测试项目进行简要的介绍,如果有设计说明书可以参考设计说明书,最好添加上架构图和拓扑图。
1.4.术语定义和缩写词
列出设计本系统/项目的专用术语和缩写语约定。对于技术相关的名词和与多义词一定要注明清楚,以便阅读时不会产生歧义。
如:
漏洞扫描:
SQL注入:
1.5.参考资料
请列出编写测试报告时所参考的资料、文档。
需求、设计、测试案例、手册以及其他项目文档都是范围内可参考的资料。
测试使用的国家标准、行业指标、公司规范和质量手册等等。
2.测试概要
测试的概要介绍,包括测试范围、测试方法、测试工具、测试环境等,主要是测试情况简介。
2.1.测试范围
请在此处说明此次测试的测试范围,可以参考安全测试方案中描述的测试范围。
2.2.测试方法和测试工具
简要介绍测试中采用的方法和工具
示例:
Xxx系统主要使用了输入安全、访问控制安全、认证与会话管理、缓冲区溢出、拒绝服务、不安全的配置管理、注入式漏洞等安全测试方案。针对以上提供的测试方案进行对应的测试用例和测试脚本编写,并使用Websecurify作为测试工具。
2.2.1. 验证输入安全
Xxx系统主要对没有被验证的输入进行如下测试
数据类型(字符串,整型,实数,等)、允许的字符集、最小和最大的长度、是否允许空输入、参数是否是必须的、重复是否允许、数值范围、特定的值(枚举型)、特定的模式(正则表达式)
2.2.2. 访问控制安全
需要验证用户身份以及权限的页面,复制该页面的url地址,关闭该页面以后,查看是否可以直接进入该复制好的地址
例:从一个页面链到另一个页面的间隙可以看到URL地址
直接输入该地址,可以看到自己没有权限的页面信息
2.2.3. 认证与会话管理
例:对Grid、Label、Tree view类的输入框未做验证,输入的内容会按照html语法解析出来
2.2.4. 缓冲区溢出
没有加密关键数据
例:view-source:http地址可以查看源代码
在页面输入密码,页面显示的是 *****, 右键,查看源文件就可以看见刚才输入的密码。
2.2.5. 拒绝服务
分析:攻击者可以从一个主机产生足够多的流量来耗尽狠多应用程序,最终使程序陷入瘫痪。需要做负载均衡来对付。
2.2.6. 不安全的配置管理
分析:Config中的链接字符串以及用户信息,邮件,数据存储信息都需要加以保护
程序员应该作的: 配置所有的安全机制,关掉所有不使用的服务,设置角色权限帐号,使用日志和警报。
分析:用户使用缓冲区溢出来破坏web应用程序的栈,通过发送特别编写的代码到web程序中,攻击者可以让web应用程序来执行任意代码。
2.2.7. 注入式漏洞
例:一个验证用户登陆的页面,
如果使用的sql语句为:
Select * from table A where username=’’ + username+’’ and pass word …..
Sql 输入 ‘ or 1=1 ―― 就可以不输入任何password进行攻击
或者是半角状态下的用户名与密码均为:‘or’‘=’。
2.2.8. 不恰当的异常处理
分析:程序在抛出异常的时候给出了比较详细的内部错误信息,暴露了不应该显示的执行细节,网站存在潜在漏洞。
2.2.9. 不安全的存储
分析:帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号。
浏览器缓存:认证和会话数据不应该作为GET的一部分来发送,应该使用POST。
2.2.10. 跨站脚本(XSS)
分析:攻击者使用跨站脚本来发送恶意代码给没有发觉的用户,窃取他机器上的任意资料
测试方法:
● HTML标签:<…>……>
● 转义字符:&(&);<(<);>(>); (空格) ;
● 脚本语言:
…Alert(‘’) ● 特殊字符:‘ ’ < > / ● 最小和最大的长度 ● 是否允许空输入 2.2.11. 测试工具介绍: 2.3.测试环境与配置 在此次项目的测试中,所使用到的环境和配置见下表: 硬件环境 3.1.测试人员 以下为测试过程中多个测试轮次的时间和人员安排以及工作内容的简单描述: 4.1.测试执行情况统计分析 测试过程共发现问题:xx个。共解决问题:xx个。未解决问题:xx个。 所测试项目中所遗留的缺陷详见下表: 示例: 1、本次测试覆盖全面,测试数据基础合理,测试有效。 2、SQL注入测试,已执行测试用例,问题回归后测试通过 3、跨站脚本测试,测试发现文本框对尖括号、百分号、单引号、圆括号、双引号进行了转义,测试通过。 4、跨目录测试,已执行测试用例,路径已加密,无漏洞,测试通过 5、用户权限控制和权限数据控制安全测试,已执行测试用例,问题经回归后测试通过。 综合以上结论得出本次安全测试通过/不通过 6.测试建议 对系统存在问题的说明,描述测试所揭露的软件缺陷和不足,以及可能给软件实施和运行带来的影响;可能存在的潜在缺陷和后续工作对缺陷修改和产品设计的建议。
以上为示例内容工具名称 用途 生产厂商 版本
软件环境序号 服务器 厂商/型号 配置/数量 IP 操作系统
3.测试组织序号 系统软件 厂商 版本 备注
3.2.测试时间细分及投入人力序号 姓名 角色 职责
4.测试结果及缺陷分析 测试轮次 子系统/子模块 起止日期 总天数 测试人员
4.2.遗留缺陷列表子系统/子模块 测试案例数 发现缺陷数
5.测试结论缺陷ID 缺陷概要 遗留原因分析 预防与改进措施