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

news2024/9/21 4:38:40

安全测试是在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.coloradmin.cn/o/736443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux 信号原理 信号处理设置signal, 信号发送kill,信号等待sigsuspend,信号阻塞sigprocmask,一网打尽信号使用

​专栏内容: postgresql内核源码分析 手写数据库toadb 并发编程 个人主页:我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 概述 信号是一种软中断的方式,让进程陷入中断处理调…

vector的resver和resize

#include <iostream> #include <vector> using namespace std; int main() {std::vector<std::vector<std::vector<int> > > a(2);//创建2个vector<vector<int> >类型的数组vector<int> vec;//vec.resize(10); //结果1vec.res…

【Linux之拿捏信号3】阻塞信号

文章目录 相关概念原理sigset_t信号集信号集操作函数sigprocmask系统调用sigpending 相关概念 实际执行信号的处理动作——信号递达Delivery&#xff08;例如自定义捕捉动作&#xff0c;core&#xff0c;Term终止进程的动作&#xff09;。信号从产生到递达之间的状态——信号未…

Verilog基础之十四、FIFO实现

目录 一、FIFO 1.1 定义 1.2 实现方式 1.3 实现原理 二、代码实现 三、仿真结果 3.1 复位阶段 3.2 写入阶段 3.3 读取阶段 3.4 同时读写或不读不写 四、参考资料 一、FIFO 1.1 定义 FIFO(First in First out)为先进先出队列&#xff0c;具有存储功能&#xff0c;…

一篇带你彻底搞懂线程池

目录 一、自定义线程池 1、产生背景 2、堵塞队列 3、线程池 4、拒绝策略 二、ThreadPoolExecuor 1、线程池状态 2、构造方法 3、newFixedThreadPool 4、newCachedThreadPool 5、newSingleThreadExecutor 6、提交任务 7、关闭线程池 三、异步模式之工作线程 1、定…

C-数据的储存(上)

文章目录 前言&#x1f31f;一、数据类型详细介绍&#x1f30f;1.内置类型&#x1f4ab;&#xff08;1&#xff09;.整形家族&#x1f4ab;&#xff08;2&#xff09;.浮点数家族&#x1f30f;2.构造类型&#xff08;也称自定义类型&#xff09;&#x1f30f;3.指针类型&#x…

OpenCV 入门教程:Haar特征分类器

OpenCV 入门教程&#xff1a; Haar 特征分类器 导语一、Haar特征分类器原理二、Haar特征分类器步骤三、示例应用总结 导语 Haar 特征分类器是图像处理中常用的目标检测算法&#xff0c;用于识别图像中的特定目标。该算法基于 Haar-like 特征模板&#xff0c;通过训练分类器来实…

ArcGIS PRO基础教程(一)

操作要求 1.面积为50-80亩 2.不能选在有耕地、园地内 3.坡度小于15度,高程在以下1930 4.距离水源地在300米以内 已知数据 1.等高线图 CONTOUR 2.土地利用图 parcel 3.水系图 water 操作步骤 创建工程,模板选地图就可以了(注:在arcgis pro中创建工程可以看作在arcg…

大火的ChatGPT与表格插件结合会有哪些意想不到的效果?

大火的ChatGPT与表格插件结合会有哪些意想不到的效果&#xff1f; 摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 ChatGPT已经火了好…

前端全集Ⅰ---- HTML/CSS/JavaScript

一 介绍web开发 Web&#xff1a;全球广域网&#xff0c;也称万维网&#xff0c;能够通过浏览器访问的网站 Web网站的工作流程&#xff1a;&#xff08;前后端分离模式&#xff09; 网页有哪些组成&#xff1f; 文字、图片、视频、音频、超链接 前端代码通过浏览器的解析和渲…

3-exercises

解&#xff1a; &#xff08;1&#xff09;Create a tensor a from list(range(9)). Predict and then check the size, offset, and stride. 创建列表a 将其转化为张量 a.size&#xff1a;The size (or shape, in NumPy parlance) is a tuple indicating how many elements a…

脚本引流是什么?其实很好理解,就是利用软件脚本来引流,这种软件我们通常叫引流脚本

脚本引流是什么&#xff1f;其实很好理解&#xff0c;就是利用脚本来引流&#xff0c;这种软件我们通常叫引流脚本&#xff0c;引流脚本的研发就是结合了以往的那些加人软件&#xff0c;从中吸取了长处并且升级了功能&#xff0c;而且通过不断的测试改进&#xff0c;在今年的7月…

C# PaddleInference OCR文字识别(只识别)

说明 C# PaddleInference OCR文字识别&#xff08;只识别&#xff09;&#xff0c;没有文字区域检测、文字方向判断 测试图片是文字区域检测裁剪出来、处理过的图片 完整的OCR识别查看 C# PaddleInference OCR识别 学习研究Demo_天天代码码天天的博客-CSDN博客 效果 项目 …

-1在内存中的存储及打印问题。

首先先看看代码&#xff1a; #include"stdio.h" int main() { char a -1; signed char b -1; unsigned char c -1; printf("a%d b%d c%d", a, b, c); return 0; } 代码很简单&#xff0c;问打印结果是什么&#xff1f; 下面我…

Java 比对两张图片的差异

1.基本介绍 Github上的“https://github.com/akullpp/awesome-java”页整理了非常多的各类Java组件的实现&#xff0c;前面一篇从它的图片处理篇找到了《image-comparison》进行了动手实践&#xff0c;关于图片处理的二维码组件《ZXing》本站曾有实践&#xff1b;关于图片识别…

CUDA+CUDNN+torch+torchvision安装

弄了好久&#xff0c;终于弄好了&#xff01;&#xff01;&#xff01; 原因&#xff1a;其实之前我是已经配置好pytorch的相关环境的了。但是这段时间&#xff0c;在跑GNN相关论文中的代码时&#xff0c;发现代码中的某个函数要求torch必须得是1.8 而我之前安装的是torch1.1…

leetcode-209.长度最小的子数组

leetcode-209.长度最小的子数组 文章目录 leetcode-209.长度最小的子数组题目描述代码提交(快慢指针-滑动窗口) 题目描述 代码提交(快慢指针-滑动窗口) 代码 class Solution {public:int minSubArrayLen(int target, vector<int> &nums) {int slow 0;int fast 0;i…

Spring中事务传播机制的理解与简单试用

目录 一&#xff0c;前言 二&#xff0c;Spring框架中的事务传播行为 三&#xff0c;事务的传播行为测试 Propagation.REQUIRED Propagation.SUPPORTS Propagation.MANDATORY Propagation.REQUIRES_NEW Propagation.NOT_SUPPORTED Propagation.NEVER Propagation.NES…

c++11 标准模板(STL)(std::basic_istream)(三)

定义于头文件 <istream> template< class CharT, class Traits std::char_traits<CharT> > class basic_istream : virtual public std::basic_ios<CharT, Traits> 类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式的…

从零配置 linux 开发环境

文章目录 目的效果图配置本地 Windows 主机好用工具WSLSSH 连接远程 Linux 开发机配置本机字体【in-prog】配置 vscode 远程连接 配置远程 Linux 主机zsh & oh-my-zsh配置 github 的 SSHneovimvundleinit.vim 文件 vim-plug.lua 文件 tmuxclangcpplint 目的 记录下我的开发…