安全测试
-
-
-
- 一 什么是安全测试
- 二 安全测试的目的
- 三 怎么做安全测试
-
- 3.1 一个完整的安全性测试
- 3.2 部署与基础结构
- 3.3 输入验证
- 3.4 身份验证
- 3.5 授权
- 3.6 配置管理
- 3.7 敏感数据
- 3.8会话管理
- 3.9 加密
- 3.10 参数操作
- 3.11异常管理
- 四 传输安全
-
- 4.1 HTTPS和SSL
- 4.2 服务器端的脚本漏洞检查
- 4.3 防火墙测试
- 五 与通常测试的区别
-
- 5.1 目标不同
- 5.2 假设条件不同
- 5.3 思考域不同
- 问题发现模式不同
-
-
一 什么是安全测试
安全测试是在软件产品的生命周期过程中,对产品检验是否符合安全需求定义
二 安全测试的目的
提升软件产品的安全质量
尽量在发布前找到安全问题予以修补降低成本
电量安全
验证安装在系统内的保护机制能否在实际应用中对系统进行保护
使之不被非法入侵
三 怎么做安全测试
3.1 一个完整的安全性测试
从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录
3.2 部署与基础结构
网络是否提供了安全的通信,部署是否包括内部的防火墙,基础结构安全性需求的限制是什么,目标环境支持怎样的信任级别
3.3 输入验证
如何验证输入,是否验证Web页输入,是否对传递到组件或Web服务的参数进行验证,是否验证从数据库中检索的数据,是否依赖客户端的验证,应用程序是否易受SQL注入攻击,应用程序是否易受XSS攻击,如何处理输入
3.4 身份验证
是否区分公共访问和受限访问,如何验证数据库的身份
3.5 授权
如何向最终用户授权,如何在数据库中授权应用程序,如何将访问限定于系统级资源
3.6 配置管理
是否保证配置存储的安全
3.7 敏感数据
是否存储机密信息,如何存储敏感数据,是否在网络中传递敏感数据,是否记录敏感数据
3.8会话管理
是否限制会话生存期,如何确保会话存储状态的安全
3.9 加密
如何确保加密密钥的安全性
3.10 参数操作
是否验证所有的输入参数,是否在参数过程中传递敏感数据,是否为了安全问题而使用HTTP头数据
3.11异常管理
是否使用结构化的异常处理,是否向客户端公开了太多的信息
四 传输安全
传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力
4.1 HTTPS和SSL
HTTPS和SSL测试:默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source Socket Layer)协议在端口443上使用普通的HTTP
HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,安全性的保证是以损失性能为代价 的。除了要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求
4.2 服务器端的脚本漏洞检查
服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用
4.3 防火墙测试
防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统
五 与通常测试的区别
5.1 目标不同
测试以发现BUG为目标,安全测试以发现安全隐患为目标
5.2 假设条件不同
测试假设导致问题的数据是用户不小心造成的,接口一般只考虑用户界面。安全测试假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径
5.3 思考域不同
测试以系统所具有的功能为思考域。安全测试的思考域不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全风险与安全属性等
问题发现模式不同
测试以违反功能定义为判断依据。安全测试以违反权限与能力的约束为判断依据