解码API安全-挑战、威胁和最佳实践

一、序言

API为当今大多数数字体验提供了动力,API安全性仍然是大多数CXO最关心的问题。尽管数字化转型不断推动API在各个行业的应用,但恶意威胁行为比以往任何时候都更加瞄准API。当前API的安全状态与组织的需要存在很大差距,组织经常受困于难以理解的攻击面,缺乏正确的策略来构建防御,本文的目的即是讨论当今API生态系统面临的不同挑战和威胁,并提供保护API的最佳实践。

二、API安全面临的挑战

API处于数字化体验的中心,移动应用、WEB网站和应用程序的核心功能、微服务架构、监管机构的要求等等,均离不开API的支持,根据Akamai的一项统计,API请求已占所有应用请求的83%,预计2024年API请求命中数将达到42万亿次。与此同时,针对API的攻击成为了恶意攻击者的首选,相对于传统WEB窗体,API的性能更高、攻击的成本更低,Gartner预测,到2022年API滥用将是最常见的攻击方式。之所以API安全问题如此严重,主要是因为API安全面临着如下挑战:

1.应用和逻辑迁移上云,暴露更多攻击面

随着云计算技术的广泛应用,越来越多的Saas被迁移上云,在为更多的用户提供服务的同时,也将API暴露到云中,相对于传统数据中心的单点调用,东西向和南北向都可能成为API的攻击面。

2.创新强调速度和灵活,忽略构建API安全

敏捷开发模式是当今主流开发模式,敏捷开发强调个体和互动、工作的软件、客户合作、响应变化,虽然提升了创新速度和灵活性,但是对于如何构建API安全性却缺少合适的方法,导致在软件构建过程中难以顾及API安全。

3.API接口对外不可见,引发多种攻击隐患

由于API是由程序员书写,除了编写代码的程序员,很少有人意识到这些API的存在,缺少维护的API经常容易被忽略,然而恶意攻击者却可以利用网络流量、逆向代码、安全漏洞等各种手段找到不设防API并实施攻击。

4.组织经常低估API风险,造成安全措施遗漏

人们通常会假设程序会按照想象中的过程运行,从而导致API被攻击的可能性以及影响被严重低估,因此不去采取充分的防护措施。此外,第三方合作伙伴系统的API,也容易被组织所忽视。

三、API面临的安全威胁

据权威报告显示,以API为目标的攻击是以HTML应用为目标攻击的三倍,部分攻击造成了严重的业务中断,攻击者利用弱身份认证、授权和注入漏洞实施攻击的方法仍然普遍,而利用Json、XML等基于解析器的攻击以及第三方API集成带来的风险正在增加,经综合分析,API的攻击类型包括:

1.凭证类攻击

据统计,2018-2020期间,有1000亿次的凭证盗用攻击,而且每年攻击的复杂度和数量都在持续增加,凭证盗用攻击的代价高达2280万美元,平均每30秒就有一位凭证盗用的受害者。攻击者通过购买、钓鱼、漏洞利用等方式获得API登录凭证,继而利用僵尸网络接入客户站点API,盗取客户数据或者个人信息。

2.可用性攻击

当API端点对外暴露,攻击者就可以利用DDOS或者攻击API解析器,造成API无法提供相应服务。对于DDOS,除了部署常规Anti-DDOS设备以外,还要关注合作伙伴API的DDOS攻击承受能力,如果仅仅依靠合作伙伴的安全措施,原始API就得不到保护。而针对API解析器的攻击则更具有针对性,可能造成哈希值冲突或者反序列化异常,进而拒绝API请求。

3.漏洞利用攻击

漏洞利用是所有应用程序面临的安全威胁,API也不能例外。通过在API的函数参数、Json、XML等有效负载嵌入恶意代码,实施目录转换、命令注入、SQL注入、XSS、绕过身份认证和授权等常见的API攻击手段,达到敏感数据窃取或破坏系统的目的。更进一步,API攻击已经工具化,攻击者能够利用工具搜集用于攻击的域名和API列表,再使用其他工具查找或删除敏感数据。

四、API安全防御的最佳实践

API安全防御是系统化工程,相对于传统防御侧重访问控制、签名、速率调节、加密等具体的技术手段,新的安全实践更加强调API治理、新型解决方案以及持续API安全检视的系统化措施。

1.API治理

首先,对全部API进行全面文档化管理,为了规避API变动频繁的困难,推荐使用开源自动化管理工具,在API变更时添加描述性说明,自动生成最新API文档,同时自动检查流量以发现和分析未知或更改的API,以便快速响应基于API的攻击。其次,梳理API之间的调用链,梳理API之间的调用关系,找出僵尸API,防止安全防护措施遗漏,该步骤也可通过工具完成。最后,对API实施契约测试和白盒测试,减少漏洞存在的可能性。

2.新型解决方案

针对API面临的安全威胁,可采用新的解决方案提供安全防护。包括使用高级BOT检测,实现预登陆验证,拦截API非授权访问;部署API网关对API请求进行身份验证、授权和访问控制;使用正向和负向安全模式对API参数进行合法性验证;发现API流量行为并提供与WAF/DDoS快速集成的工具等等。

3.持续API安全检视

从发现、保护和分析三个维度,制定API安全检视列表,持续对API进行安全检视,以此发现隐患,制定策略、实施防护。在发现维度检视API开发、测试和部署的安全措施是否全面。在保护维度,检视用户标识、DDOS攻击防护措施、数据校验黑白名单是否完整。在分析维度,检视API风险评估、API审计日志是否充分。

五、展望

随着信息技术的快速发展,API安全防护也在持续演进过程中,最初API安全防护解决无效输入、DOS攻击、认证绕过等攻击,现今的防护重点则落地在缓冲区溢出、XSS、SQL注入等漏洞防护,安全防护的措施也从单个漏洞防护升级为网关、应用系统防护。未来,多向量、自动化工具、武器化人工智能类的攻击将成为API攻击的主流,相应的,安全防护措施也需加强系统化、自动化、深度学习、智能化能力,向以体系对抗体系,以智能防护智能的方向演进。

标签: