谈谈API安全测试的最佳实践

admin 2022年9月25日18:40:50评论21 views字数 1761阅读5分52秒阅读模式

 

序言


 

API 使应用程序能够交换和使用数据和服务。由于 API 能够访问组织的数据,因此它们是黑客和威胁参与者的一个有吸引力的目标。企业必须保护其 API 以保护企业资源以及使用 API 的其他应用程序。


安全测试必须确保API在负载下仍然可用。测试还必须确保 API 公开的数据和资源的机密性、完整性和可用性。


下面梳理下对API安全测试的一些流程和实践思路。

 

API安全测试和维护负责任者


 

许多团队都会参与了 API 的生命周期,随着项目的进展,项目将经历大量的快速变化和迭代。通过指定一个人来记录所有 API 并确保完成所有测试并根据结果采取行动,可以更好保障API安全。

 

安全测试的成本预算


 

安全测试需要时间和金钱,因此企业项目团队在开始新项目时需要考虑这些因素。威胁建模将突出需要缓解的潜在 API 风险和漏洞,并且一旦项目上线,维护和更新 API 测试的预算也是必要的。

 

确保API用途分类


 

记录 API 及其使用是很重要和很关键。使用这些文档中的信息,测试可以评估 API 是否可以处理可接受的操作和有效数据,以及不可接受的操作或无效数据。OpenAPI Specification、AsyncAPI和GraphQL Introspection等标准能够确保和理解这些API 详细功能,通过基于 API 工具,并使用这些规范来加快 API 的开发生命周期。

 

自动化测试


 

如果在开发生命周期的早期发现安全问题,每个人都可以节省时间和金钱。有大量可用的API 安全工具,包括一些开源的工具源码,都可以集成到现有工作流和持续集成/持续交付管道中。具有模拟服务的工具消除了构建生产系统的完整副本的需要。


还要确定谁将执行测试,如果缺乏内部技能,开发人员、安全团队或外部渗透测试人员——以及何时运行测试。理想情况下,应该在应用程序的每个构建上运行测试。

 

定义安全测试类型


 

每个 API 都应经过以下测试:

输入无效。来自 API 的输入应该像来自不受信任的来源一样进行处理,并相应地进行清理和验证。Fuzzing 可用于向 API 发送随机数据,以查看它是否可以在不崩溃的情况下处理意外数据。


注入攻击。使用这些测试攻击来确保 API 拒绝那些试图操纵后端数据库或在服务器上执行操作系统命令而不暴露任何敏感信息的请求。


参数篡改。通过 API 请求发送的参数(例如购物车中商品的价格)很容易被攻击者更改。检查 API 是否在处理参数之前对其进行验证和意义检查。


未处理的 HTTP 方法。使用所有八种 HTTP 方法发送请求,以确保服务器上不允许使用不必要的方法,例如 CONNECT、DELETE、PUT和 TRACE。如果这些方法返回有效响应而不是错误,则会带来安全风险。如果应用程序确实需要其中一种方法,请确保将其使用正确地限制为受信任的用户。


业务逻辑漏洞。API 的设计和实现中的缺陷可能使攻击者能够通过以开发人员从未想过的方式与 API 交互来引发意外行为——例如,在未经过预期购买工作流程的情况下完成交易。使用自动化工具测试此类漏洞通常很困难,因为该漏洞通常是应用程序及其特定功能所独有的。清晰的设计和数据流文档详细说明交易和工作流程,包括在每个阶段做出的假设,有助于防止引入此类漏洞。

身份验证、访问和加密控制。确保请求的发起者在服务器上经过身份验证并被授权访问所请求的资源。实施OpenID Connect和OAuth等身份和授权协议可能很困难,相关密钥和令牌的管理也很困难。分配额外的时间来测试这些安全控制非常重要。


负载过重。速率限制控制——在一段时间内可以调用 API 的次数——有助于阻止未经批准的连接并防止DDoS确保设置这些限制以获得最佳性能。

最后,错误消息、日志条目和故障转移处理是测试的重要方面,因此每次测试后都会记录检查消息和日志以检查正确信息。

 

修复失败的处理


 

应将测试报告反馈给指定人员,以确保修复警告和错误。然后,重新测试以确保更新的代码解决了问题。

 

了解安全风险和更新文档


 

参与构建 API 的每个人都需要了解网络犯罪分子用来攻击 API 的最新技术,以便他们能够更新代码、安全控制和测试。安全团队应定期向参与项目的每个人更新新威胁和最佳实践。


API 是网络中最暴露的组件之一,最近受到攻击。由于安全风险不断上升,API 测试必须成为任何项目的核心。


原文始发于微信公众号(安全架构):谈谈API安全测试的最佳实践

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月25日18:40:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   谈谈API安全测试的最佳实践http://cn-sec.com/archives/1313952.html

发表评论

匿名网友 填写信息