所有文章 > API安全 > API安全性以及凭证和访问控制的重要性
API安全性以及凭证和访问控制的重要性

API安全性以及凭证和访问控制的重要性

API 彻底改变了我们开发和部署软件的方式。它们也增加了数据泄露和网络攻击的风险。考虑到 API 管理着服务器到服务器通信、数据处理和 IT 系统集成等关键功能,保护 API 对保持业务正常运转至关重要。

API 安全性在很大程度上取决于实施强大的访问控制并保护解锁该访问权限的凭据。这也是许多组织在 API 安全性方面失败的方面。由于 API 在 IT 运营的后台运行,因此凭据很容易脱离安全团队的监控,从而允许 API 在没有适当监督的情况下进行广泛访问。

在本博客中,您将了解最常见的 API 安全风险以及缓解这些风险的最佳实践示例。您将了解攻击者如何查找和利用 API 凭据来访问您的 IT 环境。有了这些知识,您可以更好地了解您的 API 安全状况,并开始实施有效的 API 安全控制。

无论您是设计 API 的开发人员、依赖 API 的云架构师还是致力于降低风险的信息安全专家,这些都是您增强组织 API 安全性所需的信息。

API 如何工作?

提高 API 安全性的第一步是准确了解 API 的工作原理。API 定义了开发人员用于从远程应用程序或服务请求和操作信息或服务的方法和数据格式。

典型 API 图表

API 类型

API 根据其用途而具有多种形式,这有助于您确定潜在的安全风险,并为您应采用的 API 安全技术和策略类型提供指导。

凭证如何影响 API 安全性

有权访问 API 凭证的任何人都有权向 API 发出请求,以便他们可以与 API 提供的敏感数据、应用程序或 Web 服务进行交互。

API 凭证的两个组件对于加强 API 安全性至关重要。

  1. API 密钥/令牌:一种独特的字母数字字符串,可作为一种身份证明。它由 API 提供商提供给开发人员或应用程序,并在发出安全 API 请求时作为身份证明。
  2. 密钥:在某些情况下,API 密钥或令牌会与密钥配对,密钥是只有 API 提供商和授权应用程序才知道的机密信息。此密钥用于生成加密签名或执行其他与 API 安全相关的操作。

API 安全最佳实践包括随机生成密钥和机密、为不同的应用程序使用不同的密钥和机密、定期轮换密钥和机密以及在不再需要时删除密钥和机密。现代特权访问管理 (PAM)保险库可自动管理这些流程,甚至以快速开发周期和DevOps 工作流所需的速度进行管理。

访问控制如何影响 API 安全性

API 访问控制决定谁可以访问哪些资源并执行特定操作。您可以利用多种手段来确定 API 访问控制的“谁、什么和何时”,以改善您的 API 安全状况。

  • 身份验证:您选择的 API 密钥、令牌或其他身份验证方法(如 OAuth 2.0)可验证发出 API 请求的用户或应用程序的身份。对于许多应用程序,单点登录在后台进行身份验证
  • 授权:您可以通过定义角色、权限和策略来确定经过身份验证的用户或应用程序可以执行哪些操作。
  • 范围:您可以在身份验证过程中使用范围定义特定的权限,从而可以对用户或应用程序可以访问 API 的哪些部分进行细粒度的控制。
  • 会话管理:基于令牌的身份验证可避免使用不安全的会话 cookie。您可以通过确保令牌具有适当的到期日期并且可以撤销来提高 API 安全性。

采用细粒度的访问控制方法可帮助您根据最小权限原则保护 API ,以便人员和系统仅访问他们需要的数据和功能。PAM 解决方案允许您设置基于风险的访问控制,提供即时、足够的访问权限以提高 API 安全性。

设计 API 的安全注意事项

除了管理 API 凭证和特权访问之外,设计最佳实践还可以帮助您提高 API 安全性。创建自己的 API 时,请仔细检查是否已正确配置它们以消除漏洞。如果您使用的是第三方设计的 API,请在将它们集成到您的 IT 环境中之前确认这些元素已到位,以免引入漏洞。

请记住检查:

  • 速率限制/节流– 您可以限制用户或应用程序在特定时间范围内发出的 API 请求数量。这可以防止过度使用或恶意滥用 API,从而导致服务质量下降。
  • 加密– 使用加密保护静态和传输中的数据。使用 HTTPS (TLS/SSL) 进行安全数据传输。使用行业标准加密算法加密静态敏感数据。
  • 错误处理– 向客户端提供通用错误消息,但不泄露有关系统的敏感信息。
  • 输入验证– 验证并清理所有输入以防止 SQL 注入、XSS 和其他注入攻击。
  • 网关配置——如果您的 API 在云中使用,请确保您的 API 网关配置正确。
  • 内容安全策略 (CSP) – 实施 CSP 标头来限制 API 可以加载的内容来源,从而降低 XSS 攻击的风险。
  • 跨域资源共享 (CORS) – 配置 CORS 策略来控制哪些域可以访问您的 API。
  • 文件上传– 如果您的 API 支持文件上传,请验证并清理上传的文件,以防止文件包含攻击和恶意软件上传等安全问题。
  • 修补– 使用安全补丁使所有 API 组件保持最新。

接下来,让我们看看如果不遵循这些最佳实践会发生什么。

API 安全漏洞和攻击路径示例

攻击者获取您的 API 初始访问权限的最常见方式是利用代码中的凭据。

源代码是一种易泄露的资产。开发人员通常会在 Wikis 留言板和 Slack 频道中保护代码。但很多时候,这些代码最终都会出现在 GitHub 等公共存储库中。不幸的是,这些源代码中的大部分都包含嵌入式 API 凭据。在我们的 401 Access Denied 播客——与 Mackenzie Jackson 一起发现和窃取秘密——中, GitGuardian 分享了他们扫描了 GitHub 中超过 10 亿次提交,发现了 1000 万个秘密,包括 API 密钥。

一旦攻击者通过 API 凭证进行身份验证,他们就可以轻松避免检测,因为他们在预期的参数范围内工作

攻击者正在积极搜索这些公共存储库,以查找用于恶意目的的 API 凭据。他们使用这些凭据获得对 API 的初始访问权限,然后继续枚举以查找其他凭据来访问您 IT 环境中的更多资源。一旦攻击者使用 API 凭据进行身份验证,他们就可以轻松避免检测,因为他们在预期的参数范围内工作。这就是 API 安全性如此难以攻克的原因之一。

有了 API 凭证,攻击者就可以进行任意数量的活动,即使您遵循了上面详述的安全 API 设计指南。

通常,它们可能会通过 SQL 注入或 NoSQL 注入攻击注入恶意代码并危害您的系统。因此,您应该始终在 API 中处理用户输入之前对其进行验证和清理,并使用参数化查询来防止注入攻击。

API 可能成为 DDoS 攻击的目标,这可能会使您的基础设施不堪重负并导致服务中断。当 API 托管在云中时,这些攻击可能尤其具有破坏性。为了提高 API 安全性,您应该始终采用 DDoS 缓解解决方案和流量监控来及时检测和缓解 DDoS 攻击。如果您的 API 托管在云中,基于云的 DDoS 保护服务是关键。

通过黑客场景测试并提高您的 API 安全技能

提高对 API 安全性的理解的一个好方法是逆向分析黑客在现实生活中会采取的攻击路径。您可以使用 Hackthebox 平台来试用为此目的设置的 API。

黑客攻击场景 1:利用弱凭证

Hackthebox 的“Secret”是一台退役的 Linux 机器,难度为简单。它使用具有弱身份验证的自定义 API。为了镜像黑客的攻击路径,您可以对机器进行典型的侦察,这会显示三个开放端口:端口 22 – SSH、端口 80 – NGINX 和端口 3000 – Node.js。

浏览该网站会显示有关基于 API 的身份验证、安装和其他详细信息的详细信息。它还提供源代码供下载。

下载源代码后,它会显示一个包含多个提交的 .git 存储库。

探索 .git 提交会揭示代码更改的详细信息,该更改会删除硬编码令牌并将其替换为通用的“秘密”。

一旦您了解了令牌,您就可以伪造自己的令牌并找到访问网站和系统的方法。

使用 Delinea DevOps Secrets Vault 管理应用程序、数据库、CI/CD 工具和服务的凭据

黑客攻击场景 2:利用错误配置

在这种情况下,黑客会利用未充分保护数据的 API 端点,无意中通过错误消息泄露信息。“Monteverde”是Hackthebox提供的 Windows 计算机,它演示了暴露的配置文件和硬编码凭据如何导致端点入侵。

它的工作原理如下。

Hackthebox 的“Monteverde”是一台中等难度的 Windows 机器,并具有 Azure AD Connect。

通过侦察机器发现的弱凭证获得访问权限后,您将看到暴露域管理员凭证的配置文件。在这种情况下,敏感信息未加密或屏蔽。它会显示在错误消息中。

API 安全资源助您培养技能

由于网络犯罪分子不断改进其策略,API 安全性变得越来越具有挑战性。网络社区有许多资源可帮助您掌握最新技术并实施 API 安全性的最佳实践。以下是您应该查看的一些优秀资源:

OWASP API 安全项目

与其他 OWASP 项目一样,API 安全项目受益于多元化专家社区的协作。这种协作方式可确保所提供的指导和资源具有相关性且最新。该项目做了许多事情:

  • 记录常见的 API 安全威胁和风险。
  • 提供设计、实施和保护 API 的指导
  • 提供工具和资源来增强 API 安全性,例如库、中间件和框架,以有效地实施安全控制。
  • 通过安全测试(包括漏洞扫描和渗透测试)帮助组织提高 API 的安全性。

APISEC 大学

这是专门针对 API 安全的免费实践课程的绝佳资源。

黑客 API

Corey J. Ball 的《黑客 API》将教您如何测试 Web API 是否存在安全漏洞。您将了解常见的 API 类型(REST、SOAP 和 GraphQL)在实际中的工作方式,以及如何设置 API 安全测试实验室来执行常见攻击,例如针对 API 身份验证机制的攻击和 Web 应用程序中常见的注入漏洞。

你成功了!

实施本博客中的建议将帮助您消除 API 中的漏洞并降低数据泄露和网络攻击的风险。记录您的 API 安全策略,以便任何设计、实施或管理 API 访问权限的人都有一份可遵循的清单。

此外,请务必监控 API 的使用情况并定期进行渗透测试,以确认安全控制措施按预期发挥作用。这样,您就可以向任何审计员、监管机构或网络保险提供商证明,您正在尽一切努力确保 API 安全。

文章来源:API security and the importance of credentials and access control

#你可能也喜欢这些API文章!