随着云计算、移动互联网的发展,越来越多的企业开始重新思考应用程序的扩展方式,企业应用系统开发不再通过虚拟机等基础设施,而是通过创建由多个互操作服务组成的API的微服务方法。

打开网易新闻 查看精彩图片

API是什么?

API是什么?

API(应用程序编程接口)是计算机程序相互交互的一种方式,可以简单理解为,它相当于城市交通控制系统的中间人,主要是为了确保不同区域之间的交通无缝衔接。

为什么API是攻击者眼中的“香饽饽”?总的来说,主要是因为API可以提供对后端系统和敏感数据集的随时访问。与传统的“黑客攻击”不同,API攻击并不取决于API有什么问题。相反,黑客可以合法地使用API,并且可以简单地发现它是否通过标准交互安全开发。

为什么API是攻击者眼中的“香饽饽”?总的来说,主要是因为API可以提供对后端系统和敏感数据集的随时访问。与传统的“黑客攻击”不同,API攻击并不取决于API有什么问题。相反,黑客可以合法地使用API,并且可以简单地发现它是否通过标准交互安全开发。

十大API安全常见漏洞和应对风险

十大API安全常见漏洞和应对风险

01、损坏的对象级授权(BOLA)

BOLA以前称为不安全的直接对象引用 (IDOR),它允许攻击者通过重用访问令牌来执行未经授权的操作。这种方法已被广泛用于攻击物联网设备,它通过允许攻击者访问其他用户账户,更改设置,并造成严重破坏。

BOLA攻击依赖于API的资源ID或没有足够验证措施的对象。在某些情况下,API使用的数据是没有用户验证,公众可以访问,而在其他情况下,错误消息返回的信息太多,从而为攻击者提供了有关如何滥用API的更多信息。

应对措施

防御 BOLA攻击需要验证API中所有功能的用户权限。API授权应在规范和随机/不可预测的ID中明确定义。同时,定期测试这些验证方法也很重要。

02、断开的用户身份验证

如果用户身份验证存在缺陷,攻击者就可以模拟真实用户。用户的登录、注册和密码重置等机制都可能会受到自动攻击的轰炸,如果系统安全性较差,还将出现允许弱密码,向用户返回错误消息、信息过多、缺乏令牌验证、加密较弱或不存在,诸如此类情况。

应对措施

防止这些滥用需要在开发过程中优先考虑安全问题,开发团队需要识别上述所有身份验证机制,并应用多因素身份验证(MFA),同时还应该考虑实施容量和账户锁定保护机制,以防止暴力攻击。

03、数据曝光过多

该问题集中在一些已发布的API上,由于它们依赖于客户端应用程序而不是后端系统进行过滤,所以会暴露过多数据。而攻击者正好可以利用这些数据来进行枚举攻击,并了解哪些有效,哪些无效,从而创建一本“食谱”,用于窃取数据或在后期策划大规模攻击。

应对措施

解决数据暴露问题需要业务部门了解API,并根据用户需求定制API。其目的是提供所需的最小数据量,因此API需要在选择返回的属性中具有高度选择性。敏感或个人身份信息 (PII) 应在后端系统上进行分类,API不应依赖客户端过滤。

04、缺乏资源和费率限制

如果API没有对响应超时、内存、有效负载大小、进程数、记录和请求等参数应用足够的内部速率限制,则攻击者可以发送多个API请求,从而创建拒绝服务(DoS)攻击。这将淹没后端系统,导致应用程序崩溃或资源成本上升。

应对措施

需要设置API资源消耗限制,这意味着为API调用和客户端通知(如重置和锁定)的数量设置阈值。服务器端根据记录数和资源消耗容差验证响应的大小。最后,使用字符串长度和数组元素数等指标,定义并强制API在所有传入参数和有效负载上支持的最大数据大小。

05、功能级授权中断

这实际上是对 BOLA 的另一种解读,即攻击者可以向不允许访问的函数发送请求。这实际上是特权升级,因为访问权限没有强制执行或隔离,使攻击者能够模拟管理员、帮助台或超级用户,并执行命令或访问敏感功能,从而为数据泄露铺平道路。

应对措施

停止此级别跳跃活动需要记录身份验证工作流程,并强制执行基于角色的访问。这需要一个强大的访问控制机制,从“父级到子级”流动并且不允许反向。

06、质量分配

攻击者发现可修改的参数和服务器端变量,然后通过创建具有提升权限的新用户或修改现有用户配置文件来利用这些参数和变量进行攻击。

应对措施

可以通过限制或避免使用将输入绑定到对象或代码变量的函数来防止。API模式应包括输入数据有效载荷,并通过将客户端可更新属性列入白名单和将应受限制的属性列入黑名单来强制隔离。

07、配置错误

不完整、临时或不安全的默认配置,错误配置的HTTP标头,不必要的HTTP方法,允许的跨域资源共享 (CORS) 以及包含敏感信息的详细错误消息在API中太常见了。它们通常是由于缺乏应用程序加固,较差的修补做法或不正确的加密而导致的人为错误,当被攻击者发现时,可能会被利用,从而导致欺诈和数据丢失。

应对措施

配置要在API生命周期中采取正确的步骤,因此建议实施可重复的强化过程,配置审查和更新过程,并定期评估设置的有效性。定义和强制执行响应(包括针对错误响应)也可以阻止信息返回给攻击者。同时还应制定CORS策略来保护基于浏览器的部署。

08、注入攻击

注入攻击将代码不受信任地注入到API请求中,以执行命令或获得对数据的未经授权访问。当数据库或应用程序缺少对客户端或计算机数据的过滤或验证时,就会发生这些攻击,攻击者可以通过直接向数据库或应用程序发送查询和命令来窃取数据或注入恶意软件。

应对措施

防御注入攻击需要分离数据,命令和查询。应识别数据类型和参数模式,并限制返回的记录数量。来自客户端和外部集成系统的所有数据都应该经过验证、测试和过滤。

09、资产管理不当

安全性较差的 API(如影子API、弃用API或报废API)极易受到攻击。其他威胁媒介包括无意中向公众公开的预生产 API,或缺少导致暴露缺陷的API文档,如身份验证、错误、重定向、速率限制等。

应对措施

在发布新API时,替换或更新风险分析来查看API发布过程,同时持续监控整个API环境,从开发、测试、生产、服务和数据流。使用OpenAPI规范可以帮助简化过程。

10、日志记录和监控不足

如果没有记录和监控API活动,攻击者可以完全逃避检测。日志记录和监控不足的例子包括错误配置的 API 日志记录级别、缺少详细信息的消息、无法保证日志完整性以及在现有日志记录和监控基础架构之外发布的API。

应对措施

日志记录和监控需要捕获足够的细节来发现恶意活动,因此它应该报告失败的身份验证尝试、拒绝的访问和输入验证错误。开发团队应使用与标准安全工具兼容的日志格式,并且无论是在传输中还是在静止时,API日志数据都应被视为敏感数据。

以上的这十种攻击方法都揭示了保护API的难度,这些API不断地被启动、更新或替换,有时每天更新或替换。企业想要减轻面临的API安全威胁,需要正确的安全实施战略和程序。同时还应该制定一个包含审计标准、变更控制系统、管理流程、访问控制措施等在内的管理计划。

更多阅读

更多阅读

ECSC课堂 | MySQL安全事件排查

基于风险的漏洞管理计划,把安全隐患消灭于未然!

数据安全 | 大数据时代,如何有效预防数据泄露?

打开网易新闻 查看精彩图片

了解更多内容,欢迎持续关注安胜网络~