服务热线

020-38921330

首页 > 新闻资讯 > 行业新闻

天畅技术园地 | 应对API资产安全问题的治理思路

2022-11-10 0:00:00浏览量:891编辑:管理员来源:天畅

API 是各个不同的应用程序和系统之间互相调用和传输数据的标准方式。我们熟知的手机 App、网络游戏、视频直播、远程会议和 IoT 设备,都离不开终端设备与服务端的连接和数据传输,这些都是通过 API 完成的。在 API 出现之前,数据的传输和交换并没有标准的方式,大多数情况下是通过数据库、Excel 表格、文本,或者是 FTP,不同的系统和程序通过各种五花八门的方式来沟通。这些混乱的背后,隐藏了巨大的开发成本和安全隐患。


而 API 的出现,使得开发者只需要关心其他系统对外暴露的 API 即可,无需关心底层实现和细节,从而构建足够复杂的产品。通常我们有四种常见的API类型:公共、私有、伙伴和复合。


1.
公共API

公共API有时也被称为开放或外部API。顾名思义,任何人都可以公开的方式,在没有限制、或限制相对较少的情况下使用它。此类API通常是方便第三方与本公司开发的Web应用进行通信的一种方式。一些常见的、为大多数中小企业提供服务的公共API有:PandaDoc、BigCommerce、DocuSign、NetSuite等。与公共API集成相对比较容易。不同的公司都会为您提供必要的API文档,其中描述了各种端点、验证与授权其API的使用和调用方法等。



2.
私有API

作为公共API的对立面,私有API仅适用于单个公司。企业开发人员经常使用它们来实现Web应用之间在某种程度上的数据交换、提供对企业数据库和其他内部共享服务的访问权限、以及与其他内部API通信、或为公司员工构建内部应用。由于私有API通常驻留在具有高度安全性的环境中,因此与它们的集成需要通过非常严格的防火墙或VPN服务,来发起调用(当然首先需要能够允许外部可以访问到)。这意味着,如果您想知道本公司的集成中间件是否确实有用,就应该去检查它是否具有某种安全机制/层,去访问本地系统和Web应用。



3.
伙伴API

伙伴API属于内部API的一个类别,但这些API通常在业务伙伴和B2B客户之间共享,而不是在某个组织内自己使用。此类API的一个常见用例是,在供应链集成或销售点的集成中,连接两个内部业务软件的应用程序。由于伙伴API不是公开可用的,因此您可能无法找到允许即时“连接”的集成方案。如果您打算集成此类伙伴API的话,就需要提供良好的手动编码、或者去寻找支持自助服务、以及自定义连接器的集成中间件的帮助。



4.
复合API

复合API的使用场景最广泛。例如在购物车中创建订单时,就需要对多个端点进行多次API调用,其中包括:创建新的客户、创建新的订单、向该订单添加新的商品、展示分类商品等。一个复合API往往可以在一次性调用中,完成所有这些工作。这无疑加快了多任务处理的能力和效率。在集成方面,复合API与常规公共API并没有太大的区别。事实上,如果您的集成平台方案已经具有被用于REST或SOAP的通用连接器的话,您可以轻松地使用它来连接到复合API处。



根据最新研究数据统计,目前公共和私人API的应用数量已接近2亿,而到2031年,这个数字可能会超过10亿。鉴于这种快速的应用增长趋势,API安全问题在各种组织中已经表现得非常广泛,当组织缺乏适当的API可见性、治理机制和生命周期策略时,僵尸、影子和幽灵等可怕的API威胁就会出现,并给企业业务开展造成损害。而产生这些可怕的僵尸API、影子API和幽灵API的主要原因就是API蔓延(API Sprawl),这已经成为现代企业数字化转型发展的重大挑战。


挥之不去的“僵尸”API
(Zombie API)

僵尸API是指一些暴露的API或已经过时、被抛弃的API端点。当一个组织没有对迁移、弃用和淘汰的旧API进行适当控制时,这些API可能会永远存在,并由此形成“僵尸”API。


藏匿风险的“影子”API
(Shadow API)

影子API是创建和部署在安全监控范围外的API端点,这些令人厌恶的API有时是从影子IT中产生的。开发人员通常希望更快地部署API或端点这也造成了影子API大量出现。影子API会带来的安全风险包括:

  • 没有适当的身份验证和授权;

  • 不正确地暴露敏感数据;

  • 没有遵循最佳实践,更容易受到攻击。


无所不在的“幽灵”API
(Ghost API)

幽灵API的概念是指第三方开发(或代写)的API,并在组织生产环境中公开使用。幽灵API可以暴露在任何地方:打包的应用程序(商业的和开源的)、基于SaaS的服务、基于本地和云的基础设施组件(例如虚拟设备上的admin API)等等。


API蔓延的防护措施


API蔓延会加剧企业在业务开展和安全运营方面的挑战,需要尽早采取积极的措施应对API蔓延。


01
制定API治理计划

指定一个集中式API管理计划在防止API失控方面有很大帮助。它还使查找、连接和保护API变得更加容易,这也有助于避免API蔓延。拥有集中式API治理策略可以帮助组织概念化诸如API架构、层次结构等内容。实现企业范围的API策略(如速率限制或授权)也更容易。


02
集中统一管理API

跟踪API本就是件棘手的事情,当API蔓延失控时,它会变得更加复杂。拥有一个集中式API发现和管理解决方案可以实现所有API的集中统一管理,这样每个人都可以快速找到并使用它们,此举也有助于避免影子API或有风险的僵尸端点。


03
跟踪API指标

API架构可能很快就变得非常复杂。根据规模的不同,组织可能需要一个完整的开发人员团队来跟踪每个API的位置以及它们的交互方式。通过监测API指标,企业可以看到所有API在整个组织中的执行情况。没有这一点,想要优化或保护网络应用系统将非常困难。



04
在整个组织中规范API安全性

目前,90%使用了API的组织都经历了某种不同程度的安全事件。可以说,每创建一个新的API,就可能会为网络犯罪分子创造更多的可利用空间。这也可能导致API被误用和滥用,从而导致API进一步蔓延。


05
寻求通用的解决方案

API的采用只会日益增加。因此,最好在问题失控之前就解决API蔓延问题。创建一个通用的解决方案,确保所有API都是可发现的,并且能够彼此通信,这将有助于阻止API的蔓延,并缓解许多其他问题。


06
遵循API规范

遵循API规范(如OpenAPI)并不复杂,但却可以有效减少API的蔓延,因为它使观察发现API及其所有组件变得更加容易。这大大降低了API在混乱中丢失或被遗忘的可能性。此外,遵循API规范可以使API应用生成自动化文档,从而进一步降低API蔓延的风险。





随着API不断变化及应用的越来越广泛,API的安全问题也会越来越重要,基于API的攻击也在不断变化,相应的API安全检测防护技术也在不断变化,所以,API安全是API业务重要的组成部分的,API安全要重点关注以下几个方面:


API的发现:

可持续的对API使用情况进行检测,发现除了未被注册/登记的API外,还包括被滥用、误用的API。

Bot识别及防护:

Bot不仅可以探测API,爬取数据,还可以通过暴力破解、撞库等直接非法侵入,甚至还可以通过自动化扫描,发现漏洞,进而入侵;以及利用大量的Bot发起DDoS攻击等。

API入侵检测:

检测利用API漏洞的攻击,包括API业务平台的Web服务器及中间件漏洞。

API的数据泄漏检测:

检测通过API传输的敏感数据、隐私数据,防止数据泄漏。威胁检出只是其中关键功能,还需要考虑API的发现和获取,尤其是当前API几乎都是加密传输情况下,以及检测出攻击、异常后的实时阻断能力。



如今API安全已经成为提供API服务的企业之间以及企业内部都需要关注的一个安全问题,一旦没有很好的保护好提供服务的API,不仅会对用户的使用体验以及个人隐私带来威胁和风险,而且可能会使企业面临安全威胁和风险。对于开发人员来说,为了提高API安全性需要在设计和开发阶段,对API的安全性进行良好的构建和设计,此外要遵守API安全开发规范进行实施。对于管理人员来说,应该使用API管理平台对API服务所面临的风险进行检测和防护。