什么是API
API 帮助跨多个设备互连多个应用程序或软件系统,定义它们可以发出的调用或请求的种类、调用的方式、应使用的数据格式以及应遵守的约定。API 已经发展成为重要的互连,支持不同应用程序架构之间的通信,促进新服务的更快集成和部署。软件开发程序也依赖 API 来提供服务、平台管理和持续部署。涉及移动设备、云数据系统和微服务设计模式的现代应用程序架构需要使用多个 API 作为网关,以促进不同 Web 应用程序之间的互操作性。
在 API 安全领域,“攻击”和“漏洞”这两个词经常互换使用,许多人并不了解 API 攻击/漏洞的真正含义。API 攻击/漏洞是一种威胁类别,在很大程度上未被行业现有的 API 安全框架和指南解决。为了保持基于 API 的安全和可信度,必须改进应对的思维和工具,以应对公司现在面临的各种 API 威胁——以及 API 威胁形势的快速发展。
面对API接口的安全问题,我们可以采取以下安全措施:
1、 失效的对象级授权 (BOLA)
BOLA 指对对象访问请求的验证不充分,它可允许攻击者通过重用访问令牌来执行未经授权的操作。攻击者能够查看其它用户的所有数据,包括被标记为私密的任意数据。该事件造成重大影响,影响范围覆盖开发、运营、营销和公关等所有事业群。
预防 BOLA 的建议:
实施依赖于用户策略的授权机制,验证登录用户是否有权执行请求的操作。
使用随机和不可预测的值作为记录 ID 的 GUID。
编写评估授权的测试。
2、 分布式拒绝服务攻击 (DDoS)
DDoS 是一种常见的攻击类型,恶意攻击者通过故意使用来自多个设备和 IP 地址的大量机器人流量使 API 过载。对于企业而言,关键业务服务因此面临风险,例如登录服务、会话管理和其他为用户提供应用程序正常运行时间和可用性的服务。
可以采取以下措施来阻止 DDoS 攻击:
使用高性能防火墙对流量进行清洗,识别并过滤掉恶意流量
3、 API 注入
API 注入指恶意代码连同 API 请求被注入。注入的命令执行后,这种恶意代码(不仅仅是 SQLi)可以从服务器删除用户的整个站点。恶意攻击者通常以此来获取对私人数据的访问权限。
以下是一些避免注入的方法:
参数化查询
用授权取代过时和不安全的认证方法。
在服务器端添加输入验证机制
避免执行特殊字符
全面的日志记录、监控和警报