软件安全测试流程与方法分享(下)

news/2024/11/20 7:14:16/

安全测试是在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) 任意文件上传测试

以上内容就是我们为大家整理的软件安全测试流程与方法的测试执行以及会用到的软件测试工具部分,希望对您有所帮助。

安全测试是在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) 任意文件上传测试

以上内容就是我们为大家整理的软件安全测试流程与方法的测试执行以及会用到的软件测试工具部分,希望对您有所帮助。

(谢绝转载,更多内容可查看我的主页)


http://www.ppmy.cn/news/803620.html

相关文章

23 | MySQL是怎么保证数据不丢的?

以下内容出自《MySQL 实战 45 讲》 23 | MySQL是怎么保证数据不丢的? binlog 的写入机制 1、事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache 写到 binlog 文件中。 2、一个事务的 binlog 是不能被…

html周志模板,校友邦周志范文16篇

蔡 等 1 人赞同该回答 附件1: 校友邦平台规范化实习管理要点(一)学院教务(或教秘、实习实践负责人) 周志、月志交规定篇数提交实习评价问卷,下载实习报告模板,按要求格实习校友邦平台规范化实习管理要点(一)学院教务(或教秘、实习实践负责人): 序号提交周…

java计算机毕业设计基于安卓Android的校园助手APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把校园助手与现在网络相结合,利用java技术建设校园助手APP,实现校园助手的信息化。则对于进一步提高校园助手发展,丰富校园助手经验能起到不少的促进作用。 校园助手APP能够通过互联网得到广泛的、全面的宣传,让尽可能多…

oppo小游戏接入代码

oppo接入 oppo获取用户信息oppo广告接入oppo获取用户信息 var self = this;qg.login({success: function (res) {//用户uid res.data.uid;//用户头像地址 res.data.avatar;

java计算机毕业设计基于安卓Android的社交app-社会交友app

项目介绍 社交系统APP管理是社交系统管理中对用户必不可少的一个部分。在人们社交系统管理的整个过程中,社交系统APP管理担负着最重要的角色。为满足如今日益复杂的管理需求,各类社交系统APP管理程序也在不断改进。本课题所设计的社交系统APP,使用springboot框架,Android技术进…

手游游戏工作室内部OA管理系统免费安装教程

1. 安装配置,下载OA源码 ①:安装宝塔(https://www.bt.cn/)系统,配置环境 ②:下载溪谷工作室OA免费版 溪谷软件工作室OA管理系统免费下载地址-游戏公会管理-游戏公会运营推广资讯-游戏工作室OA &#xff08…

基于Android的大学校友管理系统

选题目的及意义: 在平时的生活中,有一种人虽说我们已经不在一起了,但是曾经的那份关系还是值得很多人去留恋,那就包括我们曾经的校友;大学,高中,或者我们学习的任何一个时间段,都曾留…

安卓毕业设计- Android学生点名系统

—— 未来真正会发生的事,其实完全取决于你现在做的决定。 项目介绍 系统分为学生花名册和点名两大模块 学生花名册显示所有学生列表,可以添加、编辑、删除学生信息;点名可以对每个学生考勤登记,并记录考勤课程、考勤时间&#…