『软件测试6』bug一两是小事,但安全漏洞是大事!(二)

简介: 前面我们讲过黑白盒测试和性能测试,但是呢,对于一个软件来说,安全测试也是非常重要的。就像封面所示,内容很诱人,一旦用户点击进去,就很容易让其执行非本意的操作,试想下结果……不堪设想。因此,做好软件安全测试,共同营造一个良好的软件环境是至关重要的。在下面的这篇文章中,将讲解关于软件测试中的安全测试。一起来学习吧~

四、🩸渗透测试



1、渗透测试的定义

渗透测试是利用模拟黑客攻击的方式,评估计算机网络系统安全性能的一种方法。这个过程是站在攻击者角度对系统的任何弱点、技术缺陷或漏洞的主动分析,并且有条件地主动利用安全漏洞。


2、渗透测试的特点

渗透测试是一个渐进的并且逐步深入的过程。

渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。


3、渗透测试流程主要步骤

渗透测试的主要步骤如下图所示:

23.png


4、渗透测试流程


(1)明确目标

  • 确定测试需求
  • 确定客户要求渗透测试的范围
  • 确定渗透测试规则


(2)收集信息

在信息收集阶段要尽量收集关于项目软件的各种信息,例如,对于一个 Web 应用程序,要收集脚本类型服务器类型数据库类型以及项目所用到的框架开源软件等。信息收集对于渗透测试来说非常重要,只有掌握目标程序足够多的信息,才能更好地进行漏洞检测。

信息收集的方式可分为两种:

主动收集: 通过直接访问、扫描网站等方式收集想要的信息,这种方式可以收集的信息比较多,但是访问者的操作行为会被目标主机记录。

被动收集: 利用第三方服务对目标进行了解,如上网搜索相关信息。这种方式获取的信息相对较少且不够直接,但目标主机不会发现测试人员的行为。


(3)扫描漏洞

在这一阶段,综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞


(4)验证漏洞

扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。


(5)分析信息

经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制并不相同,针对不同的安全漏洞需要进一步分析,包括安全漏洞原理可利用的工具目标程序检测机制攻击是否可以绕过防火墙等,制定一个详细精密的攻击计划,这样才能保证测试顺利执行。


(6)渗透攻击

渗透攻击就是对目标程序发起真正的攻击,达到测试目的,如获取用户帐号密码、截取目标程序传输的数据、控制目标主机等。一般渗透测试是一次性测试,攻击完成之后要执行清理工作,删除系统日志、程序日志等,擦除进入系统的痕迹。


(7)整理信息

渗透攻击完成之后,整理攻击所获得的信息,为后面编写测试报告提供依据。


(8)编写测试报告

测试完成之后要编写测试报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果、测试过程中遇到的问题等,此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。


五、🛠️常见安全测试工具



1、Web漏洞扫描工具-AppScan


(1)定义

AppScanIBM 公司出的一款 Web 应用安全测试工具,它采用黑盒测试方式,可以扫描常见的 web 应用安全漏洞。


(2)AppScan的扫描过程

AppScan 的扫描过程为:探测、测试、扫描

在探测阶段,AppScan 通过发送请求对站内的链接、表单等进行访问,根据响应信息检测目标程序可能存在的安全隐患,从而确定安全漏洞范围。

在测试阶段,AppScan 对潜在的安全漏洞发起攻击。 AppScan 有一个内置的测试策略库,测试策略库可以针对相应的安全隐患检测规则生成对应的测试输入, AppScan 就使用生成的测试输入对安全漏洞发起攻击。

在扫描阶段,AppScan 会检测目标程序对攻击的响应结果,并根据结果来确定探测到的安全漏洞是否是一个真正的安全漏洞,如果是一个真正的安全漏洞则根据其危险程度确定危险级别,为开发人员修复缺陷提供依据。


2、端口扫描工具-Nmap


(1)定义

Nmap 是一个网络连接端口扫描工具,用来扫描网上计算机开放的网络连接端口。确定服务运行的端口,并且推断计算机运行的操作系统。它是网络管理员用以评估网络系统安全必备工具之一。


(2)Nmap的具体功能

Nmap具体功能如下:

  • 主机扫描
  • 端口状态扫描
  • 应用程序版本探测
  • 操作系统探测
  • 防火墙/IDS逃避和欺骗
  • 支持测试对象交互脚本


3、抓包工具-Fiddler


(1)定义

Fiddler 是一个 http 协议调试代理工具,它以代理 Web 服务器形式工作,帮助用户记录计算机和 Internet 之间传递的所有 HTTP(HTTPS) 流量。

如图所示:

24.png


(2)Fiddler的功能

Fiddler 可以捕获来自本地运行程序的所有流量,从而记录服务器到服务器、设备到服务器之间的流量。此外, Fiddler 还支持各种过滤器,过滤出用户想要的流量数据,节省大量时间和精力。 相比于其他抓包工具, Fiddler 小巧易用,且功能完善,它支持将捕获的流量数据存档,以供后续分析使用。


4、Web渗透测试工具-Metasploit


(1)定义

Metasploit 是一个渗透测试平台,能够查找、验证漏洞,并利用漏洞进行渗透攻击。它是一个开源项目,提供基础架构、内容和工具来执行渗透测试和广泛的安全审计。


(2)Metasploit的具体功能

对于渗透攻击, Metasploit 主要提供了以下功能模块:

渗透模块(exploit): 运行时会利用目标的安全漏洞进行攻击。

攻击载荷模块(payload): 在成功对目标完成一次渗透之后,测试程序开始在目标计算机上运行。它能帮助用户在目标系统上获得需要的访问和行动权限。

辅助模块(auxiliary): 包含了一系列的辅助支持模块,包括扫描模块漏洞发掘模块网络协议欺骗模块

编码器模块(encoder): 编码器模块通常用来对我们的攻击模块进行代码混淆,逃过目标安全保护机制的检测,如杀毒软件和防火墙等。

Meterpreter: 使用内存技术的攻击载荷,可以注入到进程之中。它提供了各种可以在目标上执行的功能。


(3)Metasploit的作用

Metasploit 是一个多用户协作工具,团队成员可以共享主机数据,查看收集的证据以及创建主机备注以共享有关特定目标的知识。最终, Metasploit 可帮助用户确定利用目标的最薄弱点,并证明存在漏洞或安全问题。


六、🔚结束语



对于软件测试来说,除了黑白盒测试、性能测试以外,安全测试也尤为重要。一旦网页有漏洞,攻击者很容易就让受攻击者执行非本意的操作,这种场面并不是谁都想看到的。因此,对于软件来说,要做好安全测试🙋

关于安全测试的内容就讲到这里啦!如有不理解或文章有误,欢迎评论区留言或私信我交流!



相关文章
|
6月前
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
186 0
|
6月前
|
程序员
面试高频题:开发人员说不是bug,测试如何答复?
面试高频题:开发人员说不是bug,测试如何答复?
116 0
|
前端开发 安全 程序员
测试大姐趁我下班点又提了个bug!前端你咋多个options请求?
测试大姐趁我下班点又提了个bug!前端你咋多个options请求?
88 0
|
2月前
|
SQL 安全 测试技术
『软件测试6』bug一两是小事,但安全漏洞是大事!
该文章强调了在软件测试中识别与处理安全漏洞的重要性,并详细介绍了常见的安全测试类型、测试流程及使用的主要工具,帮助测试人员有效地检测和防止安全问题。
『软件测试6』bug一两是小事,但安全漏洞是大事!
|
5月前
|
编解码 测试技术 数据库连接
【软件测试】 软件测试生命周期与Bug
【软件测试】 软件测试生命周期与Bug
|
6月前
|
消息中间件 前端开发 关系型数据库
🤔️测试问我:为啥阅读量计数这么简单的功能你都能写出bug?
🤔️测试问我:为啥阅读量计数这么简单的功能你都能写出bug?
|
6月前
|
程序员 测试技术
程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。
【5月更文挑战第11天】程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。复杂的系统易产生意外问题,需求变化导致初始设计难完备,测试无法覆盖所有情况,而技术更新和个体能力差异也会引入错误。因此,持续调试和优化是保证软件质量的关键步骤。
66 0
|
11月前
|
人工智能 测试技术 程序员
软件测试/人工智能|使用ChatGPT帮我们查找bug
软件测试/人工智能|使用ChatGPT帮我们查找bug
|
11月前
|
人工智能 测试技术 开发者
软件测试/人工智能|如何利用人工智能来帮助我们找bug
软件测试/人工智能|如何利用人工智能来帮助我们找bug
软件测试/人工智能|如何利用人工智能来帮助我们找bug
|
6月前
|
SQL 前端开发 测试技术
软件测试/测试开发|如何定位bug,一篇文章告诉你
软件测试/测试开发|如何定位bug,一篇文章告诉你
下一篇
无影云桌面