提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
部分安全引发问题正在通过API的形式隐藏在企业的数字化基础设施中,其存在不断扩展组织的网络攻击面,攻击者可以通过API从而获取更多高价值的信息及数据。此种类型的攻击模式也被称为API蔓延(API Sprawl),其正在逐渐成为现代企业数字化转型发展的重大挑战和不可避免的问题,需要引起安全人员和系统管理人员的重视。
一、API是什么?
如果你在百度百科上搜索API的定义,你会得到如下的解释:
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
如果用再通俗一点的语言来解释,API究竟是什么呢?其一个主要功能是提供通用功能集,同时也是一种中间件,为各种平台提供数据共享。我们可以不知道其具体实现的机制、代码、逻辑是什么,但我们可以通过调用等方式获取到返回的数值。
二、造成API蔓延的原因
1.灰色资产遗留的API(僵尸API)
当组织未识别到此类的风险,未对API可见性、生命周期等存在不可控的治理策略,以及对资产未形成有效的管理措施时,通常会对外暴露出一些已经过时、被抛弃的API端点。当一个组织没有对迁移、弃用和淘汰的旧API进行适当控制时,这些API的安全风险点可能会永远存在,并且对于安全管理员来说不可见,由此形成“僵尸”API。此类API基本上被遗忘和忽略了,不会进行任何功能或安全方面的持续补丁、维护或更新,在实际上的安全运营及红蓝对抗过程中,此类僵尸API常常会成为攻击者的跳板,深入到企业内部的核心网络,带来严重的安全风险。
根据Salt Security State发布的《API安全研究报告》内容显示,僵尸API是企业和组织需要关注的首要API安全问题,需要安全管理人员及时梳理资产的API信息,掌握当前可能存在风险的API情况并及时修复。
2.未知资产的API(影子API)
影子API一般是指创建和部署在企业安全监控范围外的API端点,比如未出现在API资产列表中,或者是由于监控范围、人员精力有限而无法全面覆盖安全监测,这些令人厌恶的API有时是从影子IT中产生的。同时,企业内部部分IT开发人员在项目周期内需要更快地部署API或端点,未经过安全验证过程,这也容易造成了影子API大量出现。
影子API会带来的安全风险包括:
-
没有适当的身份验证和授权,无法确认安全登录;
-
不正确地暴露敏感数据,或者被攻击者越权获取敏感数据;
-
没有遵循最佳落地实践步骤和经验,更容易受到外界攻击。
3.供应链/第三方软件的API
第三方开发或供应链设备的API在企业生产环境中公开使用,如打包的应用程序(商业的和开源的)、基于SaaS的服务、基于本地和云的基础设施组件(例如虚拟设备上的admin API)等等。许多组织有意地在其扩展基础设施中依赖和使用第三方开发的API,享受其带来便利的同时,也将其作为数字供应链和日常基础设施管理的一部分。有时第三方开发的API并非在完善的devops周期中发布,没有得到适当的治理、测试、监视和维护,这也为企业的应用程序带来了大量的安全风险。
根据最新研究数据统计,目前公共和私人API的应用数量已接近2亿,而到2031年这个数字可能会超过10亿。鉴于这种快速的应用增长趋势,API蔓延问题在各种应用中已经表现得非常广泛,其主要原因包括:
-
缺乏关于API的全球标准是API蔓延如此普遍的原因之一。标准缺失意味着需要创建多个独立的API来服务于一个功能。如果没有将API配置为协同工作,就会导致兼容性问题;
-
大多数企业都在向微服务体系结构发展,而API通常是微服务体系结构和容器化的重要组成部分,这也导致它们的受欢迎程度有所上升;
-
持续的软件开发是API蔓延的另一个常见原因。每个新版本都会有新的API,或者需要现有API版本升级;
-
不同部门之间缺乏沟通也是API蔓延的一个常见原因,因为每个部门可能会开发自己的API;
-
边缘计算或“一切即服务”(EaaS/XaaS)等新技术的兴起导致更多的API被创建应用
三、API 蔓延带来的风险
企业如今依赖的许多服务都依赖API。如果组织不能将适当的API治理部署到位,整个数字化业务系统就会有崩溃的可能。
1. 减少时间和资源的浪费
在当今高度饱和的商业世界中,保持竞争力对企业来说可谓前所未有的重要,高层必须考虑每一个减少开支和削减成本的机会,减少不必要资源和人力的消耗。开发、实现和部署过程中通过减少API蔓延来节省资金,可以让企业将资源投资到更有价值的追求上,从而帮助实现业务增长。
2. 减少影响业务正常运行的风险点
未受管理或管理不当的API容易导致服务中断,API基础设施的某一环节中断都可能影响业务的正常运行。考虑到用户对系统正常运行的期望和需求,因此需要在API失控之前阻止它蔓延的另一个原因。
3. 减少安全风险的可能性
未经识别、不再更新、缺乏管控的API也是网络中常见的安全风险来源。管理员需要把控企业内部所有API的位置,它们是什么、做什么、怎么做,这对于保障系统安全非常重要。随着API的数量和应用程序的复杂性不断增长,跟踪、更新API位置的挑战也会愈发困难。在组织内外发现它们可能很困难,并且会影响到端到端连通性。
API容易出现欺诈和恶意行为,从安全性上考虑,外部API访问必须持续验证才能获得信任,但如果内部API密钥被泄露,攻击者就能够轻松访问关键的基础设施和数据,攻击者使用最小成本获得最大收益。
总结
API蔓延会加剧企业在业务开展和安全运营方面的挑战,需要尽早采取积极的措施应对API蔓延。
指定一个集中式API管理计划在防止API失控方面有很大帮助。它还使查找、连接和保护API变得更加容易,这也有助于避免API蔓延。拥有集中式API治理策略可以帮助组织概念化诸如API架构、层次结构等内容。实现企业范围的API策略(如速率限制或授权)也更容易。跟踪API本就是件棘手的事情,当API蔓延失控时,它会变得更加复杂。拥有一个集中式API发现和管理解决方案可以实现所有API的集中统一管理,这样每个人都可以快速找到并使用它们,此举也有助于避免影子API或有风险的僵尸端点。
API的采用只会日益增加,API架构可能很快就变得非常复杂。根据规模的不同,组织可能需要一个完整的开发人员团队来跟踪每个API的位置以及它们的交互方式。通过监测API指标,企业可以看到所有API在整个组织中的执行情况。没有这一点,想要优化或保护网络应用系统将非常困难。