安全测试


安全测试

什么是安全测试?

安全测试是软件测试的一个组成部分,它用于发现软件应用程序中的弱点、风险或威胁,也帮助我们阻止来自外界的恶意攻击,确保我们软件应用程序的安全。

安全测试的主要目标是找出应用程序的所有潜在歧义和漏洞,以便软件不会停止工作。如果我们执行安全测试,那么它可以帮助我们识别所有可能的安全威胁,并帮助程序员修复这些错误。

它是一个测试程序,用于定义数据将是安全的,并继续软件的工作过程。

安全测试原理

在这里,我们将讨论安全测试的以下几个方面:

  • 可用性
  • 正直
  • 授权
  • 保密
  • 验证
  • 不可否认性

安全测试

可用性

在这方面,数据必须由官方人员保留,他们也保证数据和报表服务将在我们需要时随时可用。

完整性

在此,我们将保护那些被非官方人员更改的数据。完整性的主要目标是允许接收器控制系统提供的数据。

完整性系统经常使用一些类似的基本方法作为机密性结构。尽管如此,它们通常包括通信数据以创建算法检查的来源,而不是加密所有通信。并且还要验证从一个应用程序向另一个应用程序传送了正确的数据。

授权

这是定义允许客户端执行操作并接收服务的过程。授权的例子是访问控制。

安全测试

保密

这是一个安全过程,可以延长数据从外部泄漏的时间,因为这是我们确保数据安全的唯一方法。

验证

认证过程包括确认一个人的个性,追踪允许访问私人信息或系统所必需的产品的来源。

安全测试

不可否认性

它被用作数字安全的参考,它是一种保证消息的发送者不能不同意已发送该消息并且接收者不能否认已收到该消息的方式。

不可否认性用于确保声称已发送和接收消息的人已发送和接收所传达的消息。

安全测试的关键领域

在对 Web 应用程序进行安全测试时,我们需要重点关注以下几个方面来测试应用程序:

安全测试

系统软件安全

在此,我们将根据操作系统、数据库系统等不同的软件来评估应用程序的漏洞。

网络安全

在此,我们将检查网络结构的弱点,例如策略和资源

服务器端应用安全

我们会做好服务器端应用程序的安全工作,以确保服务器加密及其工具足以保护软件免受任何干扰。

客户端应用程序安全

在此,我们将确保任何入侵者无法在客户使用的任何浏览器或任何工具上进行操作。

安全测试的类型

根据开源安全测试技术,我们有不同类型的安全测试,如下所示:

  • 安全扫描
  • 风险评估
  • 漏洞扫描
  • 渗透测试
  • 安全审计
  • 道德黑客
  • 姿势评估

安全测试

安全扫描

安全扫描可用于自动化测试和手动测试。此扫描将用于查找基于 Web 的应用程序、网站、网络或文件系统中的漏洞或不需要的文件修改。之后,它将提供帮助我们减少这些威胁的结果。这些系统需要安全扫描,这取决于它们使用的结构。

风险评估

为了降低应用程序的风险,我们将进行风险评估。在此,我们将探讨可以在关联中检测到的安全风险。风险可以进一步分为三个部分,分别是高、中、低。风险评估过程的主要目的是评估漏洞并控制重大威胁。

漏洞扫描

它是一个应用程序,用于确定和生成包含与网络相关的台式机、服务器、笔记本电脑、虚拟机、打印机、交换机和防火墙的所有系统的列表。漏洞扫描可以在自动化应用程序上执行,还可以识别那些已经承认安全漏洞的软件和系统。

渗透测试

渗透测试是一种安全实施,网络安全专业人员试图识别和利用计算机系统中的弱点。此测试的主要目的是模拟爆发并找出系统中的漏洞,并同样避免可以从中受益的入侵者。

安全审计

安全审计是一种用于评估组织安全措施的结构化方法。在此,我们将对应用程序和控制系统的安全故障进行内部审查。

道德黑客

道德黑客用于发现系统中的弱点,并帮助组织在讨厌的黑客暴露之前修复这些安全漏洞。道德黑客将帮助我们提高协会的安全地位,因为有时道德黑客会使用与讨厌的黑客相同的技巧、工具和技术,但要经过官方人员的批准。

道德黑客的目标是增强安全性并保护系统免受恶意用户的攻击。

姿势评估

它结合了道德黑客、风险评估和安全扫描,帮助我们展示组织的完整安全态势。

我们如何进行安全测试

安全测试需要在软件开发生命周期的初始阶段进行,因为如果我们在软件执行阶段和SDLC部署阶段之后进行安全测试,我们将花费更多。

现在让我们了解我们如何在软件开发生命周期 (SDLC) 的每个阶段并行执行安全测试。

安全测试

Step1

SDLC:需求阶段

安全程序:在SDLC的需求阶段,我们会对业务需求做安全分析,并验证哪些案例是操纵和浪费的。

Step2

SDLC:设计阶段

安全程序:在SDLC的设计阶段,我们会对设计的风险探索进行安全测试,并在测试计划的制定过程中进行安全测试。

Step3

SDLC:开发或编码阶段

安全程序:在SDLC的编码阶段,我们将进行白盒测试以及静态和动态测试。

第四步

SDLC:测试功能测试、集成测试、系统测试阶段

安全程序:在SDLC的测试阶段,我们会在黑盒测试的同时进行一轮漏洞扫描

第 5 步

SDLC:实施阶段

安全程序:在SDLC的实施阶段,我们将再次进行漏洞扫描,并进行一轮渗透测试

第 6 步

SDLC:维护阶段

安全程序:在SDLC的维护阶段,我们将对影响区域进行影响分析

测试计划应包含以下内容:

  • 测试数据应与安全测试相关联。
  • 对于安全测试,我们需要测试工具。
  • 借助各种安全工具,我们可以分析多个测试输出。
  • 编写依赖于安全目的的测试场景或测试用例。

安全测试示例

通常,安全测试的类型包括基于过度思考的问题步骤,但有时简单的测试会帮助我们发现最重要的安全威胁。

让我们看一个示例来了解我们如何对 Web 应用程序进行安全测试:

  • 首先,登录到 Web 应用程序。
  • 然后注销 Web 应用程序。
  • 然后单击浏览器的 BACK 按钮以验证它要求我们再次登录,或者我们已经登录了应用程序。

为什么安全测试对 Web 应用程序至关重要

目前,Web 应用程序日益增长,大部分 Web 应用程序都处于危险之中。在这里,我们将讨论 Web 应用程序的一些常见弱点。

  • 客户端攻击
  • 验证
  • 授权
  • 命令执行
  • 逻辑攻击
  • 信息披露

客户端攻击

该客户端的攻击手段,一些非法执行外部代码的发生在Web应用程序。并且数据欺骗行为占据了用户认为作用在 Web 应用程序上的特定数据有效且并非来自外部来源的位置。

注意:在这里,欺骗是一种创建重复网站或电子邮件的技巧。

验证

在此,身份验证将涵盖针对 Web 应用程序验证用户身份的方法的爆发,其中用户帐户个性将被盗用。不完整的身份验证将允许攻击者在不执行正确身份验证的情况下访问功能或敏感数据。

例如,强力攻击,蛮力攻击的主要目的,是为了获得访问Web应用程序。在这里,入侵者将反复尝试 n 个用户名和密码,直到它进入,因为这是阻止暴力攻击的最精确方法。

毕竟,一旦他们尝试了所有定义的错误密码,帐户将被自动锁定。

授权

每当某些入侵者试图非法从 Web 应用程序中检索敏感信息时,授权就会出现。

例如,授权的一个完美示例是目录扫描。此处的目录扫描是一种将缺陷注入到网络服务器中以实现对公共区域中未提及的文件夹和文件的非法访问的爆发。

一旦入侵者成功获得访问权限,他们就可以下载敏感数据并在服务器上安装有害软件。

命令执行

当恶意攻击者将控制 Web 应用程序时,将使用命令执行。

逻辑攻击

当 DoS(拒绝服务)爆发时,正在使用逻辑攻击,避免 Web 应用程序帮助常规客户操作并限制应用程序的使用。

信息披露

信息披露用于向入侵者展示敏感数据,这意味着它将涵盖计划获取有关 Web 应用程序的精确信息的较量。当 Web 应用程序泄露敏感数据时,就会发生信息泄漏,例如可能有助于攻击者滥用系统的错误消息或开发人员评论。

例如,密码正在传递到服务器,这意味着密码应该在通过网络通信时进行编码。

笔记:

Web 应用程序需要更高的访问安全性以及数据安全性;这就是为什么 Web 开发人员会以这样一种方式来制作应用程序,以保护应用程序免受暴力攻击、SQL 注入、会话管理、无法限制 URL 访问和跨站点脚本 (XSS)。而且,如果 Web 应用程序简化了远程访问点,那么它也必须受到保护。

这里,会话管理:用于在登录阶段检查cookies是否可以在另一个计算机系统中重复使用。

SQL注入:将破坏性的SQL语句植入到一些查询中,由服务器端实现的代码注入方式。

跨站点脚本 (XSS):这是一种技术,用户通过这种技术在 Web 应用程序的用户界面中引入客户端脚本或 HTML,并且其他用户可以看到这些添加内容。

安全测试的误区和事实

在这里,我们将讨论安全测试的误区和事实:

神话 事实
安全测试中的资产没有利润。 安全测试可以突出显示增强的部分,这有助于我们提高生产力和减少中断,并允许最大输出。
现在互联网并不安全,我们会购买硬件或软件来拯救业务和保护系统。 在这里,实际上是购买任何软件或硬件,公司首先了解安全,然后遵循安全流程。
如果我们有一家小型企业并且我们不需要安全程序。 在这种情况下,事实是每个组织都需要一个安全程序。
唯一的安全技术是断开它。 保护关联的一种也是最出色的方法是识别 Perfect Security。与业务、许可和制造验证相比,这里可以通过执行实施来实现完美的安全性。

安全测试工具

我们在市场上有多种安全测试工具,具体如下:

  • SonarQube
  • ZAP
  • Netsparker
  • Arachni
  • IronWASP

结论

对于应用程序或软件,需要进行安全测试以验证敏感信息仍然是私密的。在软件测试中,安全测试是必不可少的,因为它可以帮助我们最终保存必要的数据。在这种情况下,测试工程师将充当入侵者并测试系统或检测安全缺陷。