数字化转型下企业的API安全剖析

 

API(Application Programming Interface,应用程序接口)是一种计算接口,定义了软件之间的数据交互方式、功能类型。随着互联网的普及和发展,API从早期软件内部调用的接口,扩展到互联网上对外提供服务的接口。调用者通过调用API,可以获取接口提供的各项服务,而无须访问源码,也无须理解内部工作机制的细节。

 

针对API的安全分析,安全专家将从API的发展历程、主要类别、风险趋势、风险应对策略、最佳实践及应用场景等方面进行详细梳理,将以系列专题的形式逐步呈现,诚邀您的持续关注。

 

API的发展历程可以看作企业数字化转型过程中系统需求不断变化的一个过程。

 

 

在2000年伊始,随着企业内部管理系统(如:ERP、CRM)的发展,各系统之间沉淀了海量的关联数据,基于早期的数据库和http1.0通信协议,在企业内部数据打通后API开始崭露头角,API步入1.0时代。

在2007年左右,随着Web2.0时代的到来,企业信息和数据跨出企业内部,各企业内部系统不再处于孤立状态,系统资源和数据的整合需求也扩散至外部,进而出现了UDDI 技术规范和基于SOAP 协议的API接口,API步入2.0 时代。

在2015年以后,云服务主导了企业服务市场,大型企业在内部系统集成理顺的基础上,将企业核心资源以带有适当安全和监管措施的“API+云服务”形式向合作伙伴、客户、乃至普通大众输出。基于此,RESTful API开始被大量应用,API 服务正式步入3.0时代。在API3.0时代,客户和普通大众可以利用企业通过 API 输出的资源来完成各自产品和服务的开发,最终延伸出庞大的价值链。

Google Cloud 的研究显示:为应对 2020 年的新冠疫情对企业带来的连锁效应,近 3/4 的企业持续投入数字化转型。这些企业当中,有 2/3 正在增加投资或完全改变战略,追求成为领先的数字型公司。

在即将到来的数据时代,API是业务连接和通信的唯一切入点,API决定着数据时代的业务发展。API将成为传统企业走向互联网+的重要组成部分。

API发展是一种必然的趋势

随着云计算的发展与兴起,后端功能更多依赖于API,而不是web服务器。向云计算不断加速过渡的进程中,API在整合和促进云迁移方面扮演着更为关键的角色。

API是企业的核心数字资产

据统计截至目前,全球有2000万+的开发者、超过百亿的API。所有的应用程序,均需要通过API进行数据通信。在未来,一切皆是软件,一切数据都可以通过API获得,因此API是所有数据交互的关口。同时API也是企业核心的数字资产,是企业数据、服务输出和获取的唯一渠道。

API 快速增长面临新的安全挑战

根据Akamai的一项统计,API请求已占所有应用请求的83%,预计2024年 API请求命中数将达到42万亿次,但API面临的安全威胁却比API调用增长更加迅猛。根据Salt Security 发布《State ofAPI Security Report, Q3 2021》的报告指出,针对API的攻击流量正在以普通API流量的三倍速度增长。

API作为影响数据安全和个人信息保护的重要风险来源,一旦发生安全问题,影响面不可估量;报告发现,安全问题在API项目关注的名单中位于前列,很少有企业认为他们有信心识别和阻止API攻击。

结合API安全现状,安全专家梳理出以下三大类 API安全风险点:

 

01  资产认不全

 

API资产不清晰

由于API数量增长太快,很多企业都不清楚自己拥有多少个API,以及API处于什么样的状态。如果没有深度的API资产梳理,安全团队根本无法了解企业API的真实资产情况,也无法预估数据暴露的风险。

 

API行为不可控

高频访问行为:在设计API接口之初未对访问频率做有效限制,导致部分用户在短时间内可以访问大量API接口,造成API接口访问频率过高、资源消耗大,引起API接口不稳定等风险。

大量数据下载行为:未限定API接口在某一时段内的下载次数、下载内容大小等,导致用户可通过多次下载达到获取大量数据的目的,造成大量敏感数据泄漏及隐私数据被贩卖等危险。

网络爬虫行为:若将API 接口开放至公网,且未设置反爬虫机制,则攻击者可以使用虚假IP或修改参数隐匿身份,利用网络爬虫爬取账号权限以及开放在公网上所有的API接口数据,导致大量数据泄漏。

 

02  攻击面递增

 

因身份认证缺失导致的攻击面

在设计之初未充分考虑用户群体或者具体的使用场景而未进行身份认证。身份认证的缺失导致API可被任意访问,导致数据泄露。

 

因参数输入未校验导致的攻击面

API的请求参数决定API返回的数据,若API未对请求参数值的类型进行校验,则可能会被攻击者利用来进行注入类攻击。

 

因明文传输导致的攻击面

未对API传输的数据进行加密设计,攻击者可通过网络分析工具等手段直接获取API的交互格式以及数据,通过对获取的数据进行分析进行下一步的攻击。

 

因权限设计不合理导致的攻击面

由于在设计之初未充分考虑到用户权限的划分,可能导致用户访问数据紊乱,致使用户A可以访问到属于同一角色用户B的数据。

 

因安全配置有误导致的攻击面

安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置或不完整的临时配置等问题所造成的。

 

因代码缺陷导致的攻击面

在开发维护阶段,由于开发人员疏漏导致存在安全漏洞等脆弱性因素可能为 API带来严重安全隐患。

 

03  攻击多样化

 

利用公开漏洞

服务请求伪造:恶意攻击者可以利用该类型漏洞对服务所在内网环境进行探测、攻击内网/外网中的其他应用以及读取服务器中的敏感信息等。

注入:该类型漏洞通常可以分为 SQL 注入、代码注入以及命令注入等,这种类型的漏洞危害性极高,可能导致的后果包括但不限于敏感信息泄漏、服务器沦陷,一旦被利用给企业带来的损失无可估量。

 

其他攻击手段

安全配置错误:配置错误可以发生在一个应用的任何层面,包括平台、Web 服务器、数据库、容器等。比如应用报错信息未处理直接返回给调用端导致敏感信息泄漏。

认证和授权失败:用户的身份验证、身份管理和会话管理失败,会产生与身份验证相关的攻击,例如:使用弱或无效的凭据恢复和忘记密码流程、使用纯文本、加密或弱散列密码、用户会话或身份验证令牌在注销或一段时间不活动后未正确失效。

失效的访问控制:访问控制执行策略失效,可以使用户在其预期权限之外进行功能操作或数据访问。策略失效通常会导致未经授权的信息泄漏、修改、所有数据被破坏或执行超出用户限制的业务功能。例如:特权提升、强制以未经身份验证的用户身份浏览经过身份验证的页面或以标准用户身份浏览特权页面。

明文传输:可能导致用户凭证未加密传输或密文容易被破解, 例如:传输层没有使用 TLS 加密导致嗅探、中间人劫持攻击。

未授权漏洞:一般是由于认证机制存在漏洞导致身份认证过程被绕过或将特权接口对外网开放以及默认开放的 API 未及时关闭等, 例如: Kubernetes 的 8080 端口、Docker 的 2375 端口的未授权访等。

API 安全风险应对策略

API 安全是当今时代数据安全保护的重要一环。企业在数字化转型的过程中,应在把握自身现状的基础上梳理API相关安全风险,建立健全API安全管理制度、API安全生命周期管控,部署相应安全防护措施,加强企业建设企业数据安全风险防范。

 

01  API资产发现与管理

 

持续发现API资产

通过主动、被动多种识别方式,帮助用户在攻击者之前发现 API,避免安全事件的发生。

 

建立健全API管理制度

对API进行深度的资产梳理,帮助安全团队了解不同应用程序使用的API 的业务属性以及对应API的关联性。

 

02  API潜在漏洞识别

 

自身业务漏洞发现

随着攻击面的变化及攻击者手段的隐秘多变,企业应建设持续挖掘、收集 API相关漏洞的能力和机制,并做好补丁管理。

 

第三方组件漏洞发现

企业应在引入第三方组件时充分考虑组件自身安全,避免第三方组件引入的漏洞。

 

03  异常行为检测

 

企业应关注API的异常行为,如高频访问行为、异常数量级数据访问行为、异常时间访问等异常行为,针对异常行为应建立全面可视化。

 

04 敏感数据识别

 

企业应进行数据分级分类治理,并通过技术手段对API 访问的数据进行持续监测,自动梳理API 接口中的敏感数据流并生成 API接口与敏感数据映射,确保个人隐私数据、商业数据以及其他敏感数据进行持续监控。

 

05  建立认证授权体系

 

企业应构建完整的认证授权体系,实现统一的认证授权,对所有的API内部、外部访问执行可信认证策略。

 

06  业务数据加解密策略

 

企业应对敏感数据的传输进行加密,在整个业务数据传输的过程中,特殊的敏感信息需要被加密或做脱密处理,例如身份证号、姓名、手机号码、银行卡号等,以减少敏感信息的泄漏风险。

 

07  访问控制限制

 

企业应对API 的请求有一定的限制策略,从系统的处理能力方面考虑,对 API请求做一定的限流管控。此策略可以缓解基于API的DDoS攻击,能够有效防止资源消耗在无意义或恶意的API请求上。

未来,企业将面临诸多未知的API安全攻击,API的安全建设将成为数字化企业的重点工作。结合自身多年的安全实践与技术优势,为企业用户提供适应新要求、新形势下的新一代API风险解决方案,构建合规要求下的数据安全治理体系,持续提高数据安全治理能力。