最近一连串的API安全事件(Peloton、Experian、Clubhouse等)无疑迫使许多安全和开发团队仔细检查他们的API安全状况,以确保他们不会成为下一个线。创建面向外部受众的所有API的清单是组织在组装或重新评估API安全程序时最常见的起点。有了这份清单,下一步就是评估每个暴露的API是否存在潜在的安全风险,例如弱身份验证或以明文形式暴露敏感数据。OWASPAPISecurityTop10为评估API清单的风险类型提供了一个很好的框架。它们被列在前10名中是有原因的,最常见和最严重的问题排在首位。例如,列表中的前两个涉及身份验证和授权,这两个都可以追溯到上面提到的一些最近的API事件,这些事件在安全公司客户环境中很常见。未经身份验证的API未经身份验证的API是迄今为止在面向公众的API中检测到的最糟糕的事情,对于处理可能包含符合PCI或PHI法规的信息的基本业务信息的API尤其如此。处理必要业务数据的面向公众的API中缺乏身份验证的一个常见原因是,API过去故意不进行身份验证,以支持不支持身份验证的遗留应用程序。以前可能就是这种情况,但这并不意味着API应该保持开放状态。今天,许多用户(包括外部和内部)将可以完全开放地访问API。了解旧限制历史的人可能已经离开公司,因此企业现在需要努力填补这一空白。为这些例外开门是绝对不能接受的,因为很少有人会在稍后的某个时间点回去关门。最佳实践:永远不要部署未经验证的API,无论是内部的还是面向公众的。使用非空身份验证令牌的API虽然很难想象,但通常会发现根本不使用身份验证令牌进行任何身份验证的API,而只是检查请求中是否存在身份验证令牌。这个问题通常比API中缺少身份验证更为严重,API中允许用户通过在API请求中传递身份验证令牌来访问资源。令牌的实际值无关紧要,因为应用程序仅检查请求中是否存在授权令牌(任何授权令牌)。很难想出以这种方式开发API的充分理由。也许他们没有时间在后端应用程序中实现身份验证逻辑?不幸的是,攻击者无需花费太多精力或时间就可以利用这些API。他们只需要为授权令牌发送一个非空值,API请求就会被成功处理。决不应该允许具有非空值的标记。一次。它会带来“暂时”使用但从未删除的重大风险。最佳实践:始终为内部或面向公众的API分配令牌值。已验证但未授权的API已验证但未授权的API是另一个常见漏洞。这部分是由于实施用户身份验证“足够好”的概念,验证用户的授权权限几乎没有好处。缺点是这允许用户访问不属于他们的资源。例如,假设用户登录以检查他们的个人资料,而后端不强制执行强授权检查。通过更改用户标识符,用户将能够通过相同的API“嗅探”并获取信息。在这种非常常见的API风险中,经过身份验证的用户可以通过简单地枚举标识符来获取有关许多其他用户的信息。如果标识符是一个简单的数值,例如攻击者可以轻松枚举的6位数字,则此问题会变得更糟。最基本的建议是使用随机生成的字母数字标识符,这至少可以减轻(但不能消除)此类枚举攻击的风险。最佳实践:始终实施强授权机制以补充强身份验证。API令牌扩散应用程序开发团队通常支持针对其API的不同消费者进行不同类型的身份验证集成。这最终导致API的身份验证方法支离破碎,应用程序所有者难以管理。例如,消费者A可能会在请求标头中发送一个名为X-api-token的API令牌,以向应用程序验证自己的身份。相反,具有相同API的消费者B可能会在名为API-key的请求参数中发送他们的API令牌,而第三个消费者C可能会在Authorization标头中发送他们的信息。这种不同的方法导致API以多种方式接受身份验证令牌,并且这些方法中的任何一种(类似于我们上面看到的)的潜在漏洞都可能危及对所有这些方法的访问。我们的建议是强制API定义(如Swagger规范)的一致性,然后在发布之前测试结果以降低风险。至少,重要的是在运行时发现API并检测其中是否存在此类碎片验证问题。最佳实践:强制遵守API规范框架,并通过基于特性的测试计划超越基本的渗透测试。授权逻辑不正确的API授权逻辑不正确的API通过接受在低权限环境(如开发或暂存)中生成的身份验证令牌,允许访问高权限环境,如生产环境。如果用户可以轻松访问生产环境中的敏感业务数据,这可能会迅速升级为重大漏洞。精明的攻击者可能能够从较低的环境中获取身份验证令牌并将它们重播到生产服务器。身份验证实施不当将允许此类访问,因为身份验证令牌本身可能有效,但适用于错误的环境。为了解决这个风险,authtoken的授权范围需要适当地限制在它被允许访问的资源范围内。最佳实践:使用OAuthScopes或其他工具来创建和实施设计良好的授权后端。总结API身份验证令牌实际上是您应用程序中的密钥。这5个身份验证漏洞都是在客户环境中发现的,使他们的API容易受到攻击者的攻击,从而破坏他们的应用程序并泄露他们无权访问的信息。创建清单并分析面向公众的API以在攻击者发布或发现身份验证漏洞之前找到它们非常重要。本文翻译自:https://securityboulevard.com/2021/07/api-security-need-to-know-top-5-authentication-pitfalls/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+SecurityBloggersNetwork+%28Security+博主+网络%29如有转载,请注明原文地址。
