如何做安全测试?

简介: 如何做安全测试?

大家好,我是阿萨。 今天一起来学习下如何做安全测试。


什么是安全测试?


安全测试是一种软件测试类型,用于发现软件应用程序中的漏洞、威胁和风险,并防止来自入侵者的恶意攻击。安全测试的目的是查明软件系统中所有可能导致本公司员工或外部人员损失信息、收入和声誉的漏洞和薄弱地方。


为什么安全测试很重要?


安全测试的主要目标是识别系统中的威胁,并测量其潜在的漏洞,以便在遇到威胁时,系统不会停止工作或不会被利用。它还有助于检测系统中所有可能的安全风险,并帮助开发人员通过编码解决问题。


软件测试中的安全测试类型


根据开源安全测试方法手册,有七种主要类型的安全测试。

  • 漏洞扫描:这是通过自动化软件根据已知的漏洞特征扫描系统来完成的。
  • 扫描:包括识别网络和系统的弱点,然后提供降低这些风险的解决方案。此扫描可用于手动和自动扫描。
  • 渗透测试:这种测试模拟来自恶意黑客的攻击。这种测试包括对特定系统的分析,以检查外部黑客攻击的潜在漏洞。
  • 风险评估:该测试包括对组织中观察到的安全风险的分析。风险分为低、中、高。该测试建议控制和措施,以降低风险。
  • 安全审计:这是对应用程序和操作系统安全缺陷的内部检查。审计也可以通过逐行检查代码来完成
  • 道德黑客:它是入侵一个组织的软件系统。不像恶意黑客为了自己的利益而窃取,他们的目的是暴露系统中的安全漏洞。
  • 安全状态评估:它结合了安全扫描、道德黑客和风险评估,以显示组织的整体安全态势。


如何进行安全测试


大家一致认为,如果我们将安全测试推迟到软件实现阶段或部署之后,成本会更高。因此,有必要在SDLC生命周期的早期阶段进行安全测试。

让我们研究一下SDLC中每个阶段所采用的相应安全流程

SDLC阶段 安全过程
需求 安全分析,检查滥用/误用情况
设计 设计时的安全风险分析。制定测试计划,包括安全测试
编码和单元测试 静态和动态测试以及安全白盒测试
集成测试 黑盒测试
系统测试 黑盒测试和漏洞扫描
实施 渗透测试,漏洞扫描
支持 补丁影响分析

测试计划应该包括

  • 与安全相关的测试用例或场景
  • Test安全测试相关数据
  • 测试安全测试所需的工具
  • 分析来自不同安全工具的各种测试输出


安全测试场景示例


安全测试场景,让您了解安全测试用例-

  • 密码必须采用加密格式
  • 应用程序或系统不应该允许无效用户

检查应用程序的cookie和会话时间

  • 对于金融网站,浏览器的后退按钮不应该工作。


安全测试的方法/方法/技术


在安全测试中,会采用不同的测试方法,具体方法如下:

  • 虎盒:这种黑客通常是在笔记本电脑上进行的,它有一个操作系统和黑客工具的集合。该测试帮助渗透测试人员和安全测试人员进行漏洞评估和攻击。
  • 黑盒:测试人员被授权对网络拓扑和技术的所有方面进行测试。
  • 灰盒:关于系统的部分信息被提供给测试人员,它是白盒模型和黑盒模型的混合。


安全测试角色


  • 黑客-未经授权进入计算机系统或网络
  • 攻击者——侵入系统窃取或破坏数据
  • 道德黑客-执行大部分破坏活动,但得到所有者的许可
  • 脚本Kiddies或猴子测试(随机测试)-缺乏经验的黑客与编程语言技能


安全测试工具


1) Acunetix直观和易于使用,Acunetix由Invicti帮助中小型组织确保他们的web应用程序是安全的,从昂贵的数据泄露。它通过检测各种网络安全问题并帮助安全和开发专业人员快速采取行动来解决这些问题。特点:

  • 高级扫描7000 + web漏洞,包括OWASP前10名,如SQLi和XSS
  • 自动发现web资产,用于识别废弃或遗忘的网站
  • 先进的爬虫最复杂的网络应用程序,包括。多形式和密码保护的领域
  • 结合交互式和动态应用程序安全测试,以发现其他工具遗漏的漏洞
  • 为许多类型的漏洞提供了利用证明
  • 通过集成流行的问题跟踪和CI/CD工具实现DevOps自动化
  • 监管标准的合规报告,如PCI DSS、NIST、HIPAA、ISO 27001等。


2)入侵者入侵者是一个强大的自动渗透测试工具,可以发现您IT环境中的安全弱点。提供行业领先的安全检查,持续监控和易于使用的平台,入侵者使各种规模的企业免受黑客攻击。特点:

  • 一流的威胁覆盖,超过10,000个安全检查
  • 检查配置缺陷、缺失补丁、应用程序缺陷(如SQL注入和跨站脚本)等
  • 自动分析和优先级扫描结果
  • 直观的界面,快速设置和运行您的第一次扫描
  • 主动监控最新的安全漏洞
  • AWS、Azure和谷歌云连接器
  • API与您的CI/CD管道集成


3) Owasp开放Web应用程序安全项目(OWASP)是一个全球性的非营利组织,致力于提高软件的安全性。该项目有多个工具来测试各种软件环境和协议。项目的旗舰工具包括

  • Zed Attack Proxy (ZAP -集成渗透测试工具)
  • OWASP依赖项检查(扫描项目依赖项并检查已知漏洞)
  • OWASP Web测试环境项目(安全工具和文档的集合)

4) WireSharkWireshark是一个网络分析工具,以前被称为Ethereal。它实时捕获数据包,并以人类可读的格式显示它们。基本上,它是一个网络数据包分析器-它提供有关网络协议、解密、数据包信息等的详细信息。它是开源的,可以在Linux、Windows、OS X、Solaris、NetBSD、FreeBSD和许多其他系统上使用。通过此工具检索的信息可以通过GUI或TTY模式TShark实用程序查看。

5) W3afW3af是一个web应用程序攻击和审计框架。它有三种类型的插件;发现,审计和攻击相互通信在站点中的任何漏洞,例如w3af中的发现插件寻找不同的url来测试漏洞,并将其转发给审计插件,然后使用这些url来搜索漏洞。


安全测试的误区


让我们来谈谈关于安全测试的神话和事实的一个有趣的话题:


误解1:我们公司规模小,不需要安全策略

事实:每个人、每个公司都需要安全策略


误解2:安全测试的投资没有回报

事实:安全测试可以指出需要改进的地方,从而提高效率和减少停机时间,实现最大吞吐量。


误解3:唯一安全的方法就是拔掉插头。

事实:确保一个组织安全的唯一和最好的方法是找到“完美安全”。通过执行姿态评估并与商业、法律和行业理由进行比较,可以实现完美的安全性。


误解4:互联网不安全。我会购买软件或硬件来保护系统和挽救业务。

事实:最大的问题之一是为了安全而购买软件和硬件。相反,组织应该首先理解安全性,然后再应用它。


结论:


安全测试是应用程序最重要的测试,用于检查机密数据是否保密。在这种类型的测试中,测试人员扮演攻击者的角色,在系统中寻找与安全相关的错误。安全测试在软件工程中非常重要,可以通过各种方式保护数据。

相关文章
|
8月前
|
安全 测试技术 网络安全
如何做安全测试?
如何做安全测试?
110 1
如何做安全测试?
|
8月前
|
安全 测试技术 数据库
安全测试的最佳实践
安全测试的最佳实践
188 0
|
8月前
|
测试技术
安全测试需要了解的一些专业术语
安全测试需要了解的一些专业术语
|
4月前
|
监控 中间件 测试技术
『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!
该文章指出软件测试工程师不仅需要掌握黑盒和白盒测试,还应该了解性能测试的重要性及其实现方法,包括负载测试、压力测试等多种性能测试类型及其在保证软件质量中的作用。
『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!
|
8月前
|
SQL 云安全 安全
怎么做好代码审计
代码审计,顾名思义,是一种对软件源代码进行系统性的检查和分析过程,旨在发现源代码中的安全缺陷、性能问题以及其他可能存在的缺陷。这是一种重要的软件质量保障手段,尤其在安全领域中占据着举足轻重的地位。
|
8月前
|
安全 物联网 测试技术
一些安全测试相关的概念梳理
一些安全测试相关的概念梳理
|
安全 测试技术
软件测试实验四 安全测试
软件测试实验四 安全测试
126 0
|
测试技术 程序员 开发工具
嵌入式软件测试笔记7 | 嵌入式软件测试中基于风险的测试策略如何开展?
嵌入式软件测试笔记7 | 嵌入式软件测试中基于风险的测试策略如何开展?
135 0
|
安全 测试技术
面试高频题:安全测试如何做?
大家好,我是阿萨。安全测试作为一项专项测试,越来越重要。如果面试官问安全测试怎么做?,你会怎么回答?
297 0
面试高频题:安全测试如何做?