如今,数据已成为新兴的生产要素,是国家基础性和战略性资源,随之而产生的数据安全需求也愈发凸显。而作为连接数据和应用之间的重要通道,API正成为攻击者眼中撬开数据“蜜罐”的开瓶器,API目前所面临的严峻安全挑战,很容易被管理者所忽视。
今年3月初,安全公司Salt Security发布API安全报告,报告综合了该公司针对200名IT及安全人员的调查反馈和来自该公司客户的实证数据。结果显示,91%的受访公司企业过去一年经历过API相关问题。超过半数(54%)的受访企业在其API中发现了漏洞,46%的受访企业出现了身份验证问题,而20%指出了爬虫和数据抓取工具引发的问题,API成数据安全最大风险敞口。OWASP在2019年将API安全列为未来最受关注的十大安全问题,2020年,中国人民银行发布了《商业银行应用程序接口安全管理规范》,三大运营商也相继发布了API安全管理规范。这里我们先回顾一下2019年OWASP 10大API安全风险。
1、损坏的对象级别授权
API倾向于暴露那些处理对象识别的端点,造成了广泛的攻击面访问控制问题。在每个能够访问用户输入数据的功能中,都应考虑对象级别授权检查。
2、损坏的用户身份验证
身份验证机制通常实施不正确,从而使攻击者可以破坏身份验证令牌或利用实施缺陷来临时或永久地假冒其他用户的身份。损害系统识别客户端/用户的能力会整体损害API安全性。
3、数据泄露过多
开发人员倾向于公开所有对象属性而不考虑其个体敏感性,依靠客户端执行数据过滤并显示。
4、缺乏资源和速率限制
通常,API不会对客户端/用户可以请求的资源大小或数量施加任何限制。这不仅会影响API服务器的性能,从而导致拒绝服务(DoS),而且还为诸如暴力破解之类的身份验证漏洞敞开了大门。
5、功能级别授权已损坏
具有不同层级、分组和角色的复杂访问控制策略,以及管理功能和常规功能之间的模糊不清,往往会导致授权缺陷。通过利用这些问题,攻击者可以访问其他用户的资源和/或管理功能。
6、批量分配
将客户端提供的数据(例如JSON)绑定到数据模型,而没有基于白名单的适当属性过滤,通常会导致批量分配。无论是猜测对象属性、浏览其他API端点、阅读文档或在请求有效负载中提供其他对象属性,都是攻击者可以修改权限之外的对象属性。
7、安全性配置错误
最常见的安全配置错误是不安全的默认配置、不完整或临时配置、开放的云存储、错误配置的HTTP标头,不必要的HTTP方法、跨域资源共享(CORS)以及包含敏感信息的冗长错误消息导致的。
8、注入
当不受信任的数据作为命令或查询的一部分发送到解释器时会发生注入缺陷,例如SQL、NoSQL的命令注入等。攻击者的恶意数据可能会诱使解释器执行非预期的命令,或未经授权访问数据。
9、资产管理不当
与传统的Web应用程序相比,API倾向于公开更多的端点,这使得文档的准确性和及时更新显得尤为重要。健康的主机和最新的API版本能够有效减轻诸如API版本过期以及调试端点暴露之类的安全问题。
10、日志和监控不足
日志和监控不足,再加上事件响应的缺失或无效集成,使攻击者可以进一步攻击系统,长期驻留,并横向移动到更多系统以篡改、提取或破坏数据。
整体来看,API所面临的风险包括:凭据失陷、越权访问、数据篡改、违规爬取、数据泄露等。从API的安全访问流程上进行评估,实施的防护措施应包含有效的身份认证、可控的访问授权、针对特定数据返回结果的筛选、访问异常行为检测及响应等。而在大多数业务场景下,API在对外提供服务时并没有部署良好的防护机制。
为了提高API安全性,根据OWASP提出的API威胁所包含的攻击威胁,API管控应做到内化于心、外化于行。在内部做到心中有数,在外部做到知行合一。我们可以在以下方面进行应用或者提升,以保障API服务使用体验。
1、API的安全防护离不开业务层面上对API的开发管理。一般来说,API的安全开发需要开发人员具备API安全开发的知识和意识,并遵循安全开发规范对API进行开发和部署。
2、对API资产的统一管理,基于数据建模自动发现被保护站点的API资产,对API资产进行梳理、分析和上下线,帮助客户实现API资产的生命周期管理。
3、利用智能规则匹配及行为分析的智能威胁检测引擎,持续监控并分析流量行为,有效检测威胁攻击。智能威胁检测引擎在用户与应用程序交互的过程中收集数据,并利用统计模型来确定HTTP请求的异常。一旦确定异常情况,智能引擎就会使用机器学习获得的多种威胁模型来确定异常攻击。
4、对API传输中的敏感数据进行识别,针对敏感数据可以进行脱敏处理或者实时拦截,防止敏感数据泄露。
5、对API接口的访问行为进行分析,通过多维度建立API访问基线、API威胁建模,发现异常访问行为,避免恶意访问和接口滥用造成的业务损失。通过分析和监测API接口被访问和调用的频率来确保API接口未被攻击者攻击以及数据被泄漏。一般来说被攻击的API接口往往会出现被调用次数增多或者频率与正常情况出现较大差异,因此通过限制API接口被访问的情况,进行限流等方式可以防护API出现被攻击者攻击甚至是拒绝服务的情况。
6、使用令牌技术,通过令牌建立API接口的可信身份,然后使用属于可信身份的令牌才能够实现对服务和数据资源等进行访问以及控制。
API安全已经成为企业时刻需要关注的安全问题,缺乏良好防护策略的API服务,不仅会对用户的使用体验以及个人隐私带来威胁,而且还会使企业面临未知的安全风险。为了提高API安全性,建立起保护整个API生命周期的机制,开发人员需要在设计和开发阶段,对API的安全性进行良好的构建和设计。对于管理人员来说,则可以使用API安全管理工具,从而更好地对未知风险进行检测和防护,做到未雨绸缪、防患于未然。