安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性,也是CNAS测试认证中非常重要的项目,本系列文章我们与大家分享软件安全测试的流程、方法以及软件测试工具等内容,帮助大家快速掌握软件安全测试。前面的文章中我们为大家介绍了安全测试的需求分析和用例设计,本文我们继续为大家介绍安全测试中的测试执行环节。
测试执行指的是根据设计的测试用例及实施验证方法进行测试、分析。同用例设计环节一样,我们可以从身份鉴别、访问控制 、数据安全、安全审计、漏洞扫描、抗抵赖性、接口安全 、 密码应用、个人信息保护、剩余信息保护验证、组件安全、业务安全测试 这些方面着手安全测试。
身份鉴别
人工检查系统登录模块,用户及口令相关配置,并进行登录等相关的操作,验证相关测试项是否符合预期的安全要求。
访问控制
人工检查系统权限、密码相关设置,并进行相关的功能操作权限测试,验证相关测试项是否符合预期的安全要求。
数据安全
使用 WireShark 软件测试工具,截取系统的相关数据,验证数据的完整性、保密性是否符合预期的安全要求。人工检查系统的数据备份恢复相关设置,并进行相应的数据备份、恢复操作,验证数据备份恢复是否符合预期的安全要求。
安全审计
人工检查系统的相关功能操作日志,验证相关测试项是否符合预期安全要求。
漏洞扫描
1、进行应用程序漏洞扫描
根据测试内容,指定相应扫描策略,使用安全测试工具绿盟进行扫描,做好规则配置,进行扫描。
2、漏洞扫描结果分析
根据对漏洞原理的理解,对测试工具的扫描结果进行分析:查看漏洞详情, 并根据原理进行验证,确认漏洞的有效性,排除误报漏洞。以常见漏洞为例:
(1)跨站点脚本编制
攻击者将恶意代码注入到 Web 客户端,从而影响到其他浏览此 Web 界面的用户。
(2)跨站点请求伪造
跨站点请求伪造是攻击者可以在第三方站点制造 HTTP 请求并以用户在目 标站点的登录态发送到目标站点,而目标站点未校验请求来源使第三方成功伪造 请求。一般系统以请求头中 Referer 作为请求来源校验,若测试响应与原始响应完全相同,则存在问题,
(3)已解密的登录请求
已解密的登录请求是指用户名、密码字段未经加密即进行了传递。
查看扫描结果中测试请求,分析用户名、密码参数是否加密传输。
(4)注销后会话未失效
在认证用户或者以其他方式建立新用户会话时,如果不使任何现有会话标识失效,攻击者就有机会窃取已认证的会话。
抗抵赖性
采用 Wireshark 软件测试工具抓包分析,或者人工审查系统源代码,检查软件是否采用 MAC 或数字签名技术保证系统抗抵赖性。
接口安全
同“身份鉴别”、“访问控制”、“数据安全”、“安全审计”的测试方法。
密码应用
使用源代码审查工具 Fortify,测试软件采用的加密算法,以及算法实现是否 符合预期的安全要求; 采用 Wireshark 工具抓包分析,或者人工审查系统源代码,或通过使用密码 算法验证工具(如 https://tool.oschina.net/encrypt),检查软件自身实现的密码算法是否正确。
个人信息保护
人工分析相关功能采集的个人信息是否是必要信息,或者采用抓包工具抓取 相关数据,分析系统采集的人员信息是否是必要信息。
剩余信息保护验证
针对涉及敏感信息的功能操作,检查操作过程中是否有敏感信息保存到临时文件中,或者内存中。
组件安全
通过安全漏扫工具 WebInspect 进行安全漏洞扫描。配置相应的扫描策略,进行安全漏洞扫描,扫描后对测试结果进行分析,验证系统是否引用了不安全的 第三方组件。
业务安全测试
根据用例设计,结合测试工具的测试结果情况,进行业务安全验证,并记录 测试结果。
1) 业务流程绕过测试
2) 流程回退测试
3) 验证码绕过测试:
4) 前端 JS 限制绕过测试
5) 重复提交测试
6) 越权访问测试
7) 业务数据篡改测试
8) 业务接口调用测试
9) 任意文件上传测试
以上内容就是我们为大家整理的软件安全测试流程与方法的测试执行以及会用到的软件测试工具部分,希望对您有所帮助。