SALT API安全最佳实践

SALT API安全最佳实践


在多数情况下,专门部署的API安全工具可以更容易、更自动化解决API安全问题。此类平台在整个API生命周期中支持一系列功能,并为组织的API业务逻辑提供必要的上下文以阻止攻击和数据暴露。

这份API安全最佳实践将帮助企业弥补API安全策略中的差距,以下是关于如何确定问题范围和活动优先顺序的一些建议:

  • 测试API安全性同时,还需要API运行时捕获未经过标准构建更改的API和测试工具不能发现的API。
  • 确保覆盖所有环境和软件供应链,而不仅仅是由API网关或API管理平台管理的API。
  • 如果您不采取API防护措施,可以将重点放在API运行时防护上,将其作为“止血”措施、减缓攻击者的速度并为应用程序和API团队争取时间的一种方式。

以下内容翻译来至:SaltSecurity Checklist-API_Security_Best_Practices,部分内容掺杂博主本人的观点和看法,如果有问题或者建议,请及时联系本人,鄙人将不胜感激。

1、API安全设计与开发

不需要在安全需求上重新创造轮子,可以参考OWASP应用程序安全验证标准(ASVS),也可以参考安全开发厂商的安全需求自动化推导相关系统,对所有类型的应用程序设计都有用,确保可以进行API集成,并简化API的威胁建模。

  • 制定开发和集成API安全方案
  • 在设计评审时增加业务逻辑审查
  • 制定符合当前开发现状的API编码指南和配置基线

2、API文档

不需要在安全需求上重新创造轮子,可以参考OWASP应用程序安全验证标准(ASVS),也可以参考安全开发厂商的安全需求自动化推导相关系统。充分的文档还为一系列活动提供了好处,包括设计审查、安全测试、安全运维和保护。

  • 严格遵循API规范,比如owasp OpenAPI(OAS)
  • 将API架构重新用于基本测试方法和保护方法
  • 为API文档差异和API变化制定应急方案

3、API 发现和管理

尽管API文档本身是一种最佳实践,可能不会始终如一地完成。API地址、参数和数据类型的自动发现对所有组织都至关重要。如何创建准确的API清单,以满足公司内部的众多IT需求。

  • 尽可能发现API,而不仅仅在生产环境下
  • 包括依赖的API和第三方API
  • 标记并标识API和微服务

4、API安全测试

使用传统的安全测试工具来验证API安全风险,例如众所周知的错误配置或漏洞,但安全人员要意识到这些工具有局限性。没有一个扫描器擅长解析业务逻辑。API地址、参数和数据类型的自动发现对所有组织都至关重要。这一部分重点介绍如何创建准确的API清单,以满足公司内部的众多IT需求。

  • 静态分析 API 代码,作为版本控制和 CI/CD 的一部分
  • 检查 API 代码中已知的易受攻击的依赖组件
  • 动态分析和模糊测试部署的API

5、前端安全

保护前端应用程序或API客户端(它们依赖于后端API来提供功能和数据)可以作为分层安全方法的一部分。这部分包括一些用于保护前端的关键元素,但是要注意客户端设计的缺陷。如客户端行为分析和设备标识不经意间造成隐私问题。

  • 制定前端安全要求,包括JavaScript,Android,iOS
  • 由于客户端容易被攻击和逆向分析,在客户端尽可能存储少量数据或者不存储数据
  • 如果后端API已经加固,可以尝试客户端加固
  • 由于监管要求,对于敏感数据需要进行处理和脱敏

6、日志和监控

日志记录和监控数据对于构建构成“正常”的基线也很有用,这样就可以快速识别和解决异常事件。

  • 必须记录所有架构、应用和API的日志信息
  • 考虑非安全的场景,比如API的性能,上线时间
  • 为API分配足够的资源,可以考虑增加云资源

7、API的适配和架构

API中间件将帮助企业加速交付、灵活运维、改进实施能力,特别是在涉及到 API 访问控制时。

  • 采用API中间件提高观察和监控能力
  • 采用中间件机制(如:API网关)实施访问控制
  • 采用能够提供深入上下文的API安全工具来增强中间件机制

8、网络安全

零信任体系架构的一个主要目标是实施最小特权并动态限制网络访问。但是,API必须具有连接性才能正常工作,而且许多API攻击仍然发生在可信通道和经过身份验证的会话中。

  • 启用加密传输来保护API传输的数据
  • 如果API使用者数量较少,请使用IP地址白名单和黑名单列表
  • 寻求动态速率限制,并将静态速率限制作为最后的手段

9、数据安全

数据安全方案旨在提供数据的机密性、完整性和可用性,但85%的组织缺乏信心,他们不知道哪些API会暴露敏感数据。参考这部分可以减少敏感数据的暴露,敏感数据泄露会导致重大的监管处罚、大规模的隐私影响和公司品牌损害。

  • 启用加密传输以保护API传输的数据
  • 如果API使用者数量较少,请使用IP地址白名单和黑名单列表
  • 寻求动态速率限制,并将静态速率限制作为最后的手段

10、认证和授权

在考虑用于身份验证和授权的API安全最佳实践时,需要同时考虑用户和计算机基础设施,尽可能将API访问控制和身份存储外部化,包括API网关、用户和计算机凭证存储、IAM解决方案、密钥管理服务、公钥基础设施和机密管理等安全机制。

  • 持续认证和授权API使用者
  • 避免使用API密钥作为身份验证手段
  • 使用带有安全扩展的现代授权协议,如OAuth2

11、运行时保护

任何运行时保护都应该是动态的,并不断学习。识别API基础架构中的错误配置以及诸如凭据填充、暴力破解或恶意爬虫等行为异常。

  • 如果可以,启用API网关和APIM的威胁防护功能
  • 增加API系统 DoS 和 DDoS 防护
  • 超越传统依赖规则的运行时控制,利用AI/ML和行为分析引擎来检测API攻击

12、安全运营

SoC安全人员必须经常依赖最了解应用程序体系结构和API逻辑的应用程序开发人员和API项目团队。详细的应用程序和业务逻辑在数字取证和事件响应中至关重要。安全管理人员需要更多地强调SecOps的人员和流程方面,而不是技术方面。

  • 明确API运营体系中涉及的非安全和安全角色
  • 创建以API为中心的事件响应手册
  • 显示可操作的API事件和不转储数据,避免SOC资源耗尽

参考