安全测试是一种非功能性测试。与功能测试不同,功能测试关注的是软件的功能是否正常工作(软件做什么),非功能测试关注的是应用程序是否被正确设计和配置。
安全测试的主要目标:
- 识别资产-需要保护的东西,如软件应用程序和计算基础设施。
- 识别威胁和漏洞-可能导致资产损坏的活动,或者一个或多个资产中可能被攻击者利用的弱点。
- 识别风险安全测试旨在评估特定威胁或漏洞对业务造成负面影响的风险。通过确定威胁或漏洞的严重性以及利用的可能性和影响来评估风险。
- 执行补救-安全测试不仅仅是对资产的被动评估。它为修复发现的漏洞提供了可操作的指导,并可以验证漏洞是否已成功修复。
安全测试的主要原则
安全测试旨在确保组织的系统、应用程序和数据遵守以下安全原则:
- 机密性-限制对系统管理的敏感访问的访问。
- 完整性-确保数据在其整个生命周期中保持一致、准确和可信,并且不能被未经授权的实体修改。
- 身份验证-确保敏感系统或数据受到验证访问它们的个人身份的机制的保护。
- 授权-确保敏感系统或数据根据角色或权限正确控制经过身份验证的用户的访问。
- 可用性-确保关键系统或数据在用户需要时可用。
- 不可否认性-通过交换带有可证明时间戳的身份验证信息,确保发送或接收的数据无法被拒绝。
安全测试的类型
渗透测试(Ethical Hacking)
渗透测试是在安全条件下刺激针对应用程序,软件,系统或网络的真实网络攻击的过程。它可以帮助评估现有的安全措施在真实的攻击中的表现。最重要的是,渗透测试可以发现未知的漏洞,包括零日威胁和业务逻辑漏洞。
传统上,渗透测试是由一个被称为道德黑客的可信和认证的安全专业人员手动完成的。黑客在商定的范围内工作,试图以受控的方式破坏公司的系统,而不会造成损害。近年来,自动化渗透测试工具正在帮助组织以更低的成本和更高的测试频率获得类似的好处。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】
应用程序安全测试(AST)
应用程序安全测试描述了组织可以用来发现和消除软件应用程序中漏洞的方法。这些方法包括在整个软件开发生命周期(SDLC)中测试、分析和报告软件应用程序的安全状态。
AST的主要目标是在应用程序发布到市场之前防止软件漏洞,如果失败,则在生产中快速识别和修复它们。成功的AST可以带来更健壮、更安全的源代码,更好地了解应用程序安全问题,并改善对内部和外部威胁的保护。
网络应用安全测试
Web应用程序安全测试的目的是确定Web应用程序是否容易受到攻击。它涵盖了各种自动和手动技术。
Web应用程序渗透测试旨在收集有关Web应用程序的信息,发现系统漏洞或缺陷,调查利用这些漏洞或漏洞的成功率,并评估Web应用程序漏洞的风险。
API安全测试
API安全测试有助于识别应用程序编程接口(API)和Web服务中的漏洞,并帮助开发人员修复这些漏洞。API提供对敏感数据的访问,攻击者可以将其用作内部系统的入口点。严格和定期地测试API可以保护它们免受未经授权的访问和滥用。
API特别容易受到中间人(MiTM)攻击等威胁的影响,其中攻击者可以窃听API通信并窃取数据或凭据,API注入,其中攻击者可以将恶意代码注入内部系统,以及拒绝服务(DoS),其中攻击者用虚假流量淹没API以拒绝向合法用户提供服务。
为了减轻这些威胁,必须验证API是否具有对用户请求的强身份验证、根据最小权限原则对用户进行授权、使用SSL/TLS对所有通信进行加密以及对用户输入进行清理以防止代码注入和篡改。
漏洞管理
漏洞管理是一个持续的过程,使组织能够跨端点、工作负载和网络识别、评估、报告、管理和修复安全漏洞。安全团队通常使用漏洞扫描工具来检测漏洞,并实施手动或自动流程来修复漏洞。
强大的漏洞管理计划使用威胁情报并利用IT运营知识来了解漏洞的真实的业务影响、确定风险优先级并尽快修复高优先级漏洞。
配置扫描
安全扫描,也称为配置扫描,是识别软件,网络和其他计算系统的错误配置的过程。这种类型的扫描通常会根据研究组织或合规标准指定的最佳实践列表检查系统。
自动配置扫描工具可以识别错误配置,并提供一份报告,其中包含有关每个错误配置的更多详细信息,以及如何解决这些错误配置的建议。
安全审计
安全审计是根据定义的标准审查/审计应用程序/软件的结构化过程。审计通常涉及根据安全需求审查代码或架构,分析安全漏洞,以及评估硬件配置、操作系统和组织实践的安全状况。它还评估对法规和合规标准的遵守情况。
风险评估
风险评估允许组织识别、分析和分类其业务关键资产所面临的安全风险。风险评估可以帮助了解组织基础设施面临的最重要威胁,并确定系统修复的优先级。它还有助于安全投资的长期规划和预算。
安全态势评价
安全态势评估结合了安全扫描、道德黑客攻击和风险评估,不仅可以识别组织面临的风险,还可以识别其当前的安全控制措施及其有效性。它可以识别当前安全状况中的差距,并建议将提高受保护资产安全性的更改或改进。
安全测试用例和场景
认证系统的安全测试应包括以下内容:
- 检查密码规则-测试网站所要求的密码安全级别和质量。
- 标识用户名枚举的可验证性-检查错误是否因是否有用户而异。
- 测试密码强度-创建密码的最低要求。
- 确定帐户恢复能力-检查攻击是否可以恢复帐户(即,通过更改电子邮件或密码)。
- 检查用户名强度-确保用户名是唯一的。
- 识别失败开放身份验证-检查系统是否提供开放访问,即使身份验证失败。
- 验证cookie作用域-检查cookie是否作用于域,或者攻击者是否可以窃取它们。
输入验证
输入验证测试应包括以下内容:
- 模糊请求参数-检查反射参数和开放重定向。
- 确定SQL注入的可行性-检查系统是否将参数作为SQL处理。
- 确定SOAP注入的可行性-检查应用程序是否响应SOAP。
- 确定LDAP注入的可操作性-测试无法清理输入的情况。
- 确定XML注入的可行性-检查注入的XML是否影响应用程序。
- 确定XXE注入的可行性-检查攻击者是否可以注入外部实体。
应用程序和业务逻辑
这些测试用例对于安全测试很重要,需要人工干预(由于每个应用程序逻辑的独特性,它们太复杂而无法自动化)。测试应包括以下内容:
- 确定应用程序逻辑攻击面-应用程序做什么。
- 检查来自客户端的数据传输-查看应用程序之间的信息传输是否不同。
- 确定客户端的输入验证-检查应用程序基于其逻辑的位置。
- 识别多步骤流程中的逻辑缺陷-检查是否可能绕过步骤。
- 测试不完整的输入处理-检查应用程序是否处理错误的输入。
- 检查信任关系-例如,用户是否可以访问管理功能。
其他测试
还有其他各种测试可帮助确保应用程序的安全性并识别以下漏洞:
- 像XSS这样的DOM漏洞。
- 缺少HTTP安全头。
- 本地隐私漏洞。
- 弱而持久的饼干。
- 弱SSL密码。
- 包含敏感信息的URL参数。
安全测试方法
黑盒测试
在黑盒测试中,安全测试人员从外部评估系统的安全性,而不知道生成响应的内部进程。黑箱是一个不透明的系统,意味着只有输入和输出是可观察的。在某些情况下,测试人员忽略了系统的内部结构,即使它是可以理解的。
黑盒测试确保了测试人员和代码创建者之间的分离。它迫使测试人员采用局外人的视角来测试软件,因为攻击者可能会接近它。测试和软件开发过程之间的社会和技术分离使测试人员能够挑战开发人员-例如,通过以开发人员没有考虑的方式操纵应用程序。
白色盒测试
在白色盒测试中,测试人员根据软件的源代码设计测试用例和测试。测试人员知道并理解代码结构,而不是黑盒测试或灰盒测试(测试人员对代码结构的知识有限)。由于这种可观察性,它也被称为透明,透明或玻璃盒测试。
白色盒测试技术关注于应用程序的内部工作和软件组件,从内部测试其设计和结构。测试团队可以将这种技术应用于系统、集成和单元测试。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。