一. 概述
云原生技术的迅猛发展已经在全球各行各业产生积极的应用实践。根据Gartner在2019年的容器报告中预测,在2020年将有50%的传统老旧应用被云原生化改造,到2022年,全球75%的企业将会使用云原生的容器化应用。然而,由于应用架构的变革,在遵循面向微服务化的设计方式的前提下,功能组件化、服务API数量的激增,以及配置的复杂性等问题也随之而来。这些架构变化导致了传统Web请求/响应的服务交互模式向API请求/响应的服务交互模式的转变,如RESTful/HTTP、gRPC、GraphQL等。因此,在未来的云原生环境中,API将作为主要的服务交互载体被大规模企业用户使用。
另一方面,从近年的安全事件来看,API安全问题呈现上升的态势,严重威胁了用户的隐私和数据安全。一些典型的安全事件包括:2019年11月,国外安全人员发现超过2.67亿条Facebook ID、电话号码和姓名等信息被存储在某公开数据库中。相关研究显示,该数据库通过某未知API接口抓取,而非来自公开信息。2020年4月,视频会议服务厂商Zoom被爆出多项安全漏洞,其中包括Facebook Graph API滥用导致隐私数据泄露问题。2021年4月,Facebook 5亿用户数据泄露,据暗网上公布的数据截图,涉及到用户昵称、邮箱、电话等信息。2021年6月,国外社交网络服务网站LinkedIn爆发大规模数据泄露事件,近7亿用户信息在暗网上被售卖,据相关研究人员证实,攻击者最终是利用LinkedIn的某一API获取到用户的敏感数据。2021年12月,国内某证券公司的客户信息,包括用户姓名、手机号等敏感数据以每日1万条的量级在数据交易平台被售卖,经验证分析,证实为内部系统数据API管控疏忽导致。2022年4月,WordPress插件Rank Math爆出严重的API安全漏洞,借此漏洞可以直接修改用户数据库表信息。
根据云安全联盟(CSA)发布的云原生技术标准模型[2](如图1所示),我们可以看出横轴是开发运营安全的维度,涉及需求设计、开发、运营阶段,细分为需求、设计、编码、测试、集成、交付、防护、检测和响应阶段。纵轴则按照云原生系统和技术的层次进行划分,包括容器基础设施安全、容器编排平台安全、微服务安全、服务网格安全、无服务器计算安全五个部分。安全机制(蓝色标注部分)基本上覆盖了全生命周期的云原生安全要求。
图1. 云安全联盟(CSA)发布的云原生技术标准模型
根据上图以及笔者的观察,容器安全产品在国内市场中,容器基础设施安全和容器编排平台安全的方案成熟度比较高,也得到广泛的应用和验证。而微服务安全、服务网格安全以及无服务器安全领域的成熟度则相对较低,这也是正常的,技术总是需要经历萌芽期、试探期、成熟期、衰败期等整个过程的。
未来,微服务间必然会使用大量API进行交互,这些API可能产生于FaaS函数、容器应用、Pod等载体中。相应地,云原生API安全风险将随着云原生环境的进一步发展而不断增加,因此API安全的需求也将逐渐增多。在这种背景下,API安全对于保护整个云原生环境的安全性至关重要,将成为云原生安全的下一个重要阶段。
本文将围绕云原生API所面临的安全风险以及相应的防护思路进行探讨,并介绍绿盟在云原生API安全防护上的一些思考与技术方案。希望这些内容能为各位读者带来一些启发与思考。
二. 云原生API安全风险
笔者认为云原生API安全风险应当从缺乏可见性、应用架构变化、东西向流量难以防护这几个方面去考虑。
2.1
缺乏可见性导致的风险
云原生环境中,由于微服务数量增多,每个微服务包含多个API,因此微服务之间的API调用变得更加复杂。这种情况下,整个API系统的可见性变得缺乏,这可能导致以下几个问题:
首先,API资产存在不可见性,当API资产受到黑客攻击时,很难及时定位入侵位置,从而错过最佳处理时间,增加安全风险。