VMware在他们最新更新的第五版《现代银行劫案》报告指出,94%的金融机构(130家金融机构参与调研)表示他们正经历API攻击。报告指出,API已发展成为“中枢神经系统”,换句话说,API作为现代应用程序的基本和核心组件,这也注定了它几乎是攻击者眼中的完美目标。
API增速惊人 但安全问题常常被忽视
451 Research和Noname Security在一份API安全调研报告中指出,过去12个月内参与调研的企业在API增长方面高达201%,平均使用15564个API。他们指出,随着各组织对API的依赖增加,其相关的安全挑战也随之增加,例如身份验证、授权和意外泄露或数据泄露等安全挑战。
Akamai此前发布的一项关于API威胁格局演变的研究报告称,尽管在开发和测试方面已经做出了改进,但通常情况下,API安全性往往会被忽视,业务优先的原则更追求的是快速的将产品推向市场,而API安全正是在此时被抛到脑后,许多组织更加依赖传统的网络安全解决方案。
他们认为,虽然DDoS攻击和勒索软件都是主要问题,但对API的攻击并没有得到同等程度的关注,这在很大程度上是因为攻击者利用API的方式不如利用勒索软件攻击那样引人注目,但这并不意味着它们应该被忽视。
Salt Security发布的API安全报告指出,API安全理应得到重视,而基于调查显示,缺乏API安全专业知识或资源和预算限制是企业积极实施API安全策略的最大障碍。人们理解API的重要性,但对API攻击危害还没有上升到足够的理解,他们大多还没有对此做好准备。
安全金融先行 金融行业API安全发展现状
在网络安全领域,金融行业因其业务安全的重要性决定通常会被严格监管,其也代表着安全性方面要领跑全行业。根据Forrester此前调查显示,在金融服务领域,有28%的受访者已将提高应用程序API的安全性作为首要任务,其中70%的金融机构已经部署了API安全的相关措施,16%计划在12个月内持续部署采用。
金融机构目前正在寻找能够处理应用程序整个生命周期的工具,同时金融机构有义务遵守非常严格的规定,这就使得API变得很重要。有相当多的API被开发出来,甚至经历了PoC过程,然后被抛弃和遗忘。正如NewWave CIO Robert Wines II指出的那样:“因为API经常被遗忘,所以更需要保证应用程序的所有组件,包括API,都是安全的。”
2020年2月13日,中国人民银行发布《商业银行应用程序接口安全管理规范》(JR/T 0185—2020)金融行业标准。目的是对使用商业银行应用程序接口的各类金融服务进行规范,主要从技术和管理两方面规范个人金融信息保护措施和金融API安全措施。
该《规范》对商业银行和应用方提出明确要求,规定了商业银行应用程序接口的类型与安全级别、安全设计、安全部署、安全集成、安全运维、服务终止与系统下线、安全管理等安全技术与安全保障要求,贯穿API的整个生命周期。
API安全问题导致数据泄露事件频发
据此前报道,2021年12月,国内某证券公司的客户信息数据,包括:用户姓名、手机号、开户时间、交易情况等敏感数据,以每日1万多条的量级在数据交易平台被售卖。经验证分析,证实为内部系统数据API管控疏忽导致。
事实上不仅仅只是金融行业,其他很多行业的数据泄露事件中,也时常会看到是因为API管控不当所导致。
API存在安全缺陷是导致API被攻击的主要原因
永安在线API安全研究报告(2022年Q1)指出,API存在安全缺陷是导致API被攻击的主要原因,基于永安在线API安全管控平台Q1的流量审计结果,他们从危害性、可利用性、普遍性三个维度,梳理了需要引起重视的五个API安全缺陷:
1.未授权访问
从Q1的审计结果来看,存在未授权访问缺陷的API接口不多,但由于具有严重的危害性,所以仍然是最值得关注的API安全缺陷之一,在OWASP API Security Top 10 排名第一的 "API 1 : Broken Object Level Authorization(失效的对象级别授权)"中也包含了这类缺陷。2021年底,知名开源项目APISIX Dashboard就曾曝出过未授权访问漏洞(CVE-2021-45232)。
安全建议
1)除非资源完全对外开放,否则访问默认都要授权,尤其是访问用户的资源或者受限制资源。
2)通过白名单的方式来严格控制无需授权的API接口的访问。
2. 允许弱密码
虽然很多安全开发规范都有提到设置密码时,需要满足一定的强度,但从Q1的审计结果来看,仍有不少的API接口,尤其是一些管理后台登录的API接口,存在着弱密码缺陷。在OWASP API Security Top 10 排名第二的 "API 2 : Broken Authentication(失效的用户身份验证)"中,也包含了允许弱密码这类缺陷。
需要引起重视的五个API安全缺陷分别是未授权访问、允许弱密码、敏感数据过度暴露、URL传输凭证或账号密码、错误提示不合理。
安全建议
1)设置密码时,需要对密码强度做要求,比如长度至少8位,字母、数字、特殊符号多种组合等。
2)不建议将密码设置为用户名、生日、手机号等关联信息。
3. 敏感数据过度暴露
敏感数据过度暴露指的是API接口不加任何限制或过滤,把后端存储的敏感数据返回到前端,这很容易导致数据泄露问题。在OWASP API Security Top 10中,这个缺陷排在第3位 - "API 3 : Excessive Data Exposure(过度的数据暴露)"。
安全建议
API接口要对返回到前端的敏感数据进行严格过滤,只返回前端需要的数据。
4.URL传输凭证或账号密码
很多人不太重视URL传输凭证或账号密码问题,甚至不认为是安全缺陷,因此在Q1的审计结果中存在很多这类缺陷的API接口,但这类缺陷还是有挺高的危害性,不应该忽视。在OWASP API Security Top 10排名第二的 "API 2 : Broken Authentication(失效的用户身份验证)"中也明确指出通过URL传输敏感数据,包括凭证或密码是有问题的。
安全建议
以POST方式发起请求,在请求体中传输账号密码或凭证。
5. 错误提示不合理
错误提示不合理往往出现在账号注册、登录或者找回密码相关的API接口上,很多时候也会被忽略。从Q1的审计结果来看,存在这个缺陷的API接口也是较为普遍的。
安全建议
1)针对登录、注册等接口的错误提示信息进行模糊化处理,比如返回“用户名或密码不正确”。
2)针对登录、注册等接口,加强对调用量过大或调用频率过高等异常行为的监控力度。
因API管控不当引发的数据泄露会越来越多,API安全问题越来越值得被重视。随着大数据、微服务、云原生等技术的持续发展,API发挥着越来越重要的作用,我们当前丰富的数字生活背后,就是成千上万个API在工作,因此,承载着企业核心业务逻辑和敏感数据的API,一旦被攻击,将对企业及其所服务的客户造成巨大的危害。
并且,随着《中华人民共和国网络安全法》、《中华人民共和国数据安全法》、《中华人民共和国个人信息保护法》等法律法规在2021年的施行,无论是政府还是普通大众,对于数据和隐私越来越重视,而作为数据泄露的主要来源之一,API安全应当被提到重要位置。