移动设备和IoT设备的广泛应用、托管在公有云中的新兴‘无服务器’架构以及越来越依赖机器对机器通信,都是造成现代应用架构发生改变的原因。
应用编程接口(API)已经成为了促进不同应用架构之间信息交流的桥梁。API可以实现新服务的更快集成和部署。此外,DevOps也需要利用API实现端到端的流程自动化,进而实现服务开通、平台管理和持续部署。
尽管可以实现快速广泛的部署,但API却仍未得到很好的保护,自动化威胁也在增加。由于机器人程序攻击,个人身份信息(PII)、支付卡明细和关键业务服务都处境堪忧。
针对API的机器人程序攻击的特征
• 单个HTTP请求(来自唯一的浏览器、会话或设备)
• 错误率增加(如,HTTP状态码404、数据验证失败、授权失败等,)
• 来自单个IP地址或API令牌的极高的应用使用率
• 来自大量分布式IP地址的API使用量的突然上升
• 与合法用户相比,利用GET/POST对用户/会话/IP地址/API令牌发起HEAD请求的比例要高
主要的API漏洞和自动化攻击
身份验证漏洞和账户入侵。在请求来自真实用户时,许多API就不会检查身份验证状态。攻击者可以以不同方式利用这些漏洞,如会话劫持和账户聚合等,来模拟真正的API调用。攻击者还会对移动应用进行反向工程,来发现API是如何被调用的。如果API密钥是嵌入在应用中的,那么就可能发生API漏洞。API密钥不应该被用于用户身份验证。网络犯罪分子还会对入侵的用户账户执行证书填充攻击。
缺乏强劲的加密。许多API在API客户端和服务器之间都缺乏强劲的加密。攻击者可以通过中间人攻击来利用这些漏洞。攻击者会拦截未加密或未受保护的API交易,来窃取敏感信息或修改交易数据。此外,由于在促进不同Web应用之间的互操作性上涉及到了多个网关,因此移动设备、云系统和微服务模式的普遍应用又进一步复杂化了API安全。对流经所有通道的数据进行加密至关重要。
业务逻辑漏洞。API极易遭受到业务逻辑滥用。这也是为何需要专门的机器人程序管理解决方案以及为何采用对Web应用和移动应用都有益处的启发式检测会产生误报和漏报等诸多错误。
端点安全性不佳。多数的IoT设备和微服务工具都被设定为通过API通道与服务器进行信息交流。这些设备会使用客户端证书在API服务器上对自身身份进行验证。黑客会试图从IoT端点获取对API的控制权,如果他们成功了,他们就可以轻易对API序列进行重新排序,进而引发数据泄露。
API安全清单
为了保护API基础架构不会遭受到黑客攻击和滥用,企业必须实现这9个最佳实践。
• 监控并管理来自自动化脚本(机器人程序)的API调用
• 删除原始的身份验证
• 采取措施防止复杂的类人机器人程序访问API
• 强劲的加密至关重要
• 部署基于令牌的速率限制,且具备限制基于IP数量、会话和令牌的API访问等功能
• 全面记录请求和响应
• 扫描传入请求是否有恶意企图
• 支持集群API部署,以处理容错
• 追踪API调用的使用情况和路径,以发现异常