什么是安全测试?(包含类型和示例)
安全测试的目的何在?
安全测试是一种软件测试,用于识别软件程序中的漏洞、风险和威胁,并防止入侵者攻击。安全测试的目的是发现软件系统中任何可能导致数据、收入或声誉损失的潜在缺陷和漏洞,这些损失可能是由员工或外部人员造成的。
安全测试的好处有哪些?
安全测试的基本目的是查找和评估系统中可能的漏洞,以便应对攻击,防止系统停止工作或被利用。它还有助于发现系统中任何潜在的安全漏洞,并帮助开发人员通过代码解决问题。
本指南将教你如何:
- 安全测试的目的何在?
- 安全测试类型
- 如何进行安全测试
- 安全测试场景示例
- 安全测试方法、途径和技术
- 安全测试中的角色
- 安全测试工具
- 安全测试的误区和事实
安全测试类型
根据开源安全测试方法文档,共有七种基本的安全测试类型。以下是解释:
**漏洞扫描** - 使用自动化工具根据已知的漏洞特征扫描系统。
**安全扫描** - 包括发现网络和系统漏洞,然后提出缓解风险的补救措施。这种扫描可以通过两种方式进行:手动和自动。
**渗透测试** - 此类测试模拟恶意黑客的攻击。此测试包括检查特定系统在外部黑客攻击事件中的潜在漏洞。
**风险评估** - 此类测试包括分析公司已识别的安全威胁。风险分为三个级别:低、中和高。此测试建议降低风险的控制措施和程序。
**安全审计** - 这是对应用程序和操作系统中安全问题的内部检查。还可以使用逐行代码检查来进行审计。
入侵组织的软件系统被称为道德黑客。与为个人利益窃取数据的犯罪黑客不同,其目标是发现系统安全问题。
姿态评估结合了安全扫描、道德黑客和风险评估,以揭示组织的整体安全态势。
如何进行安全测试
人们普遍认为,将安全测试推迟到软件实施过程之后或部署之后会增加成本。因此,必须在 SDLC 生命周期早期就包含安全测试。
让我们看看 SDLC 的每个步骤都应该使用哪些安全程序。
SDLC 阶段 | 安全流程 |
---|---|
需求 | 检查滥用/误用事件并进行安全分析。 |
设计 | 对于设计,进行安全风险分析。创建包含安全测试的测试计划 |
编码和单元测试 | 安全测试和静态和动态测试白盒测试 |
集成测试 | 黑盒测试 |
系统测试 | 漏洞扫描和黑盒测试 |
实施 | 漏洞扫描,渗透测试 |
支持 | 分析补丁的影响 |
测试策略应包含以下内容:
与安全相关的场景或测试用例
与安全测试相关的数据
安全测试需要使用测试工具。
分析来自各种安全技术的多个测试结果
安全测试场景示例
示例测试场景,让您了解可用的安全测试类型:
密码必须以加密方式存储。
不允许无效用户访问应用程序或系统。
对于应用程序,检查 Cookie 和会话时间。
浏览器后退按钮不应在金融网站上运行。
安全测试方法、途径和技术
安全测试中使用了不同的方法,如下所示:
**老虎盒** - 此类黑客攻击通常在装有各种操作系统和黑客工具的笔记本电脑上进行。此测试帮助渗透测试人员和安全测试人员评估和攻击漏洞。
**黑盒** - 测试人员被允许测试网络架构和技术的一般情况。
**灰盒** - 白盒和黑盒模型的组合,其中测试人员只获得关于系统的一些部分信息。
安全测试中的角色
**黑客** - 未经授权访问计算机系统或网络
**破解者** - 渗透计算机系统以窃取或破坏数据。
**道德黑客** - 在所有者的许可下执行大部分破解行为。
脚本小子或数据包猴子是不懂编程的经验不足的黑客。
安全测试工具
1. 不速之客
Intruder 是一款用户友好的企业级漏洞扫描程序。它对您的 IT 基础设施进行超过 10,000 次高质量的安全检查,包括但不限于配置缺陷、应用程序缺陷(例如 SQL 注入和跨站点脚本)和缺少的补丁。Intruder 通过提供智能排序的结果以及对最新威胁的主动扫描,节省时间并保护各种规模的组织免受黑客攻击。
功能
AWS、Azure 和 Google Cloud 连接器
针对您的周界量身定制的结果,以减少您的外部攻击面
高质量的报告
与 Slack、Microsoft Teams、Jira 和 Zapier 集成
使用 API 与您的 CI/CD 流程集成
2. OWASP
开放式 Web 应用程序安全项目 (OWASP) 是一家致力于提高软件安全的非营利组织。作为该项目的一部分,有多种工具可用于对不同的软件环境和协议进行渗透测试。该项目的旗舰工具包括
Zed Attack Proxy (ZAP - 一种集成的渗透测试工具) 是一款允许您测试网络漏洞的程序。
检查 OWASP 依赖项(它扫描项目依赖项并根据已知的漏洞进行检查)
Web 测试环境项目 (OWASP)(安全工具和文档的集合)
3. Acunetix
Invicti 的 Acunetix 是一款简单易用的工具,可帮助中小型企业保护其在线应用程序免受代价高昂的数据泄露的影响。它通过识别各种在线安全问题并帮助安全和开发专家快速解决这些问题来实现这一点。
功能
扫描超过 7,000 个在线漏洞,包括 OWASP Top 10 漏洞,例如 SQLi 和 XSS。
自动在线资产发现可以帮助您查找已被遗弃或遗忘的网站。
具有多表单和密码保护区域的高级 Web 爬虫,适用于最复杂的在线应用程序。
使用交互式和动态应用程序安全测试的组合来查找其他技术忽略的缺陷
为各种漏洞提供了漏洞利用证明。
与常见的缺陷跟踪和 CI/CD 系统集成,实现 DevOps 自动化。
PCI DSS、NIST、HIPAA、ISO 27001 等法规标准需要合规性报告。
4. Wireshark
Wireshark(以前称为 Ethereal)是一个网络分析工具。它实时捕获数据包,并以人类易于理解的方式显示它们。它本质上是一个网络数据包分析器,它为您提供有关网络协议、解密、数据包信息等的详细信息。它是免费且开源的,并且适用于 Linux、Windows、OS X、Solaris、NetBSD、FreeBSD 和各种其他操作系统。可以使用 GUI 或 TTY 模式下的 TShark 实用程序检查此实用程序获取的信息。
5. W3af
W3af是一个用于Web应用程序攻击和审计的框架。它具有三种类型的插件:发现、审计和攻击,它们相互通信以查找站点中的任何漏洞。例如,W3af中的发现插件查找不同的URL以测试漏洞,并将它们转发到审计插件,然后审计插件使用这些URL搜索漏洞。
安全测试的误区和事实
让我们来看一些有趣的安全测试的迷思与真相:
迷思 #1:因为我们公司很小,所以不需要安全策略。真相:每个个人和公司都需要安全策略。
迷思 #2:安全测试没有投资回报率。
真相:安全测试可以识别可以改进效率和减少停机时间的领域,从而实现最大吞吐量。
迷思 #3:拔掉电源是唯一保护它的方法。
真相:找到“完美安全”是保护组织的唯一且最佳方法。通过进行态势评估并将其与商业、法律和行业标准进行比较,可以实现完美安全。
迷思 #4:互联网是一个危险的地方。我会购买软件或硬件来保护系统并拯救公司。
真相:购买安全软件和硬件是最困难的任务之一。相反,公司应该首先了解安全知识,然后再实施。
结论
对应用程序而言,最关键的测试是安全测试,它确保秘密数据保持机密。在这种测试中,测试人员扮演攻击者的角色,并探索系统以寻找安全漏洞。安全测试在软件工程中至关重要,因为必须不惜一切代价保护数据。
对应用程序或程序进行安全测试至关重要,以确保敏感数据保持机密。安全测试在软件测试中至关重要,因为它最终使我们能够保护关键数据。在这种情况下,测试工程师将模拟入侵者并测试系统或寻找安全漏洞。