En 400-6655-581
5
返回列表
> 资源中心 > 身份安全 | 国内外API安全事件引发的探讨 - 再谈API安全(一)

身份安全 | 国内外API安全事件引发的探讨 - 再谈API安全(一)

2020-08-31浏览次数:990
背景介绍

随着越来越多的企业通过网站应用对外提供服务,除了用户界面,相关的API也成为访问数据和服务的对外入口;近年来,由于API漏洞引发的安全事件,影响面积大,造成了广泛的影响;例如:脸书2018年由于API的安全漏洞造成2900万用户的个人信息泄露,2019年Instagram因API接口漏洞导致用户数据以及照片被泄露;国内2018年发生华住信息泄露事件导致大量用户个人信息以及开房信息被泄露,这些事件使API安全相关的问题得到越来越多的关注。


许多企业对于自身有哪些API对外提供服务或使用了哪些API缺乏统一的管理,增加了API安全实现的复杂度;业界将API安全划分为2种实现机制,一是API威胁防护,指检测和阻止API的攻击;另一个是API访问控制,指提供用户授权访问哪些应用的API;企业需要构建自己的API安全策略,通过对API的全面的防护,避免出现可能引发的安全问题。


方法介绍

企业API安全的实施策略首先要走在攻击者和黑客的前面了解和发现自己的API;上面这些事件中的企业不知道他们存在这些不安全的API直到发生问题。企业可以先从移动端应用和网站应用开始梳理,这些应用通常是基于前后端分离的开发框架,前端基于Angular或React访问后端服务API;另外就是应用集成的API,这些API通过ESB或iPaas(集成平台及服务)提供应用和数据的访问;这些API无论是否发布,还是处于研发过程中都需要符合安全和管理要求;企业可以通过构建API开发者门户管理内部和外部的API;对于使用的第三方API,如果出现安全漏洞,同样会影响到到API使用的客户端。


企业需要有API平台团队通过使用API管理平台实现企业API的管理和治理,有些API管理工具可以自动发现云平台和容器环境的API,生成API清单;接下来就是对这些API分类管理;这些分类可以在API管理平台中进行标注;用于区分不同API对应的安全管理要求。

发现并将API分类后,就是识别API的潜在漏洞



下图是通常出现API漏洞的路径




1
在资料库或共享存储中的API密钥




API密钥或其他账号信息,例如SSH访问密钥、数据库访问账号等,这些密钥保存在云储存(Amazon S3, 百度云盘)或代码资料库(Github),由于没有配置访问控制,使得这些信息可以被公开访问,上述华住信息泄露事件就是由于开发人员将内部数据库访问信息和账号放在公开Github资料库中导致被黑客利用。



2
硬编码的API密钥




Web和移动端应用包含硬编码的API密钥或账号信息,黑客可以通过反编译攻击获取;例如智能家居和物联网厂商Zipato被发现其某个设备的API接口实现代码中包含超级用户的登录密钥。参见https://blackmarble.sh/zipato-smart-hub/amp/



3
API逻辑缺陷




API存在可以被利用的Bug或逻辑缺陷;例如在线游戏平台Steam被发现其某个API的Bug可以用于获取激活任何一个游戏的密钥。参见https://www.zdnet.com/article/steam-bug-could-have-given-you-access-to-all-the-cd-keys-of-any-game/



4
API访问嗅探




通过中间人攻击获取API报文,从而获取API密钥或发现不安全的API。

另外还需要注意“影子API”:未使用、示例用途或原型API,同样会存在上述安全漏洞,需要发现并加以保护。


企业通过API管理平台发现和整理自身提供和使用的API,识别API的潜在漏洞;接下来需要通过基础架构平台中的相关组件来实现API安全,这将在后续的文章中详细介绍并探讨。




参考文档:

- Gartner报告:API Security: What You Need to Do to Protect Your APIs