API安全浅析
2022-3-8 09:22:28 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

一、什么是API

API通过定义一组函数、协议、数据结构,明确应用程序中各个组件之间通信与数据交互方式。将Web应用、操作系统、数据库以及计算机软硬件的能力以接口的形式提供给外部使用。
  • API技术解决的是程序之间的连接问题。

  • API提供能力,调用方不用访问源码或理解程序内部工作机制。

二、API安全形势

1、API发展趋势

目前随着互联网、物联网等快速发展,越来越多的开发者会使用API接口为客户提供各种微服务并通过云原生应用快速部署容器进行快速迭代开发。因此无论是在互联网访问网络资源或者通过物联网进行系统应用的控制都会利用API接口。

为了让客户获得更好的服务体验,银行机构正在采用、甚至迁移到API式的敏捷模型中,以实现高效、强适应性的金融安全架构。

医疗保健行业的从业人员通过各种可用的API,向患者和客户提供集成化的医疗保健服务,并能提高自身产品的互操作性。

零售商正在使用API为其客户提供更加智能化的电子商务平台,例如:多元化的移动支付应用等。

2、API安全面临的挑战

据统计,API请求已占所有应用请求的83%,预计2024年API请求命中数将达到42万亿次。与此同时,针对API的攻击成为了恶意攻击者的首选,相对于传统WEB窗体,API的性能更高、攻击的成本更低,有专家预测,到2024年API滥用将使得针对API的攻击成为最常见的攻击方式。之所以API安全问题如此严重,主要是因为API安全面临着如下挑战:

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

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

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

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

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

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

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

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

3、API安全面临的威胁

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

(1)凭证类攻击

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

(2)可用性攻击 

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

(3)漏洞利用攻击 

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

4、API相关的常见数据安全问题

(1)数据滥用风险 

例如第三方超出业务需要,私自大量缓存、调用接口数据;接口返回超出最小必要原则的敏感个人信息字段;高敏感级别字段(例如《个人金融信息保护技术规范》定义的C3级别个人金融信息)未按规定脱敏或脱敏策略不一致。 

(2)数据泄露风险 

例如数据接口权限漏洞被外部攻击者利用窃取敏感数据;或者内部员工利用遗留后门接口获取敏感数据。 

(3)隐私合规风险 

 例如隐私数据采集未经用户授权;隐私数据接口违规开放给第三方等。
 API安全一旦出现问题,可能导致的是百万、千万、甚至亿级的个人信息泄露,使企业面临违反《网络安全法》第四十二条“网络运营者应当采取技术措施和其他必要措施,确保其收集的个人信息安全,防止信息泄露、毁损、丢失”的合规风险。由此可以看出,API安全应当作为一项重要抓手,用于管控组织级别的数据安全与个人信息安全风险。

三、OWASP API Top 10

  • A1:失效的对象级授权

预防措施:

 (1)基于用户策略和继承关系来实现适当的授权机制

 (2)使用随机且不易推测的IDs (UUIDs)

  • A2:失效的用户身份认证

预防措施:

 (1)凭据重置、忘记密码端应被视作认证端点,在暴力破解、请求频率限制和锁定保护上同等对待

 (2)使用标准认证、令牌生成、密码存储、多因素认证

  • A3:过度的数据暴露

预防措施:

(1)不要依赖客户端来过滤敏感数据
(2)检查API的响应,确认其中仅包含合法数据
  • A4:资源缺失&速率限制

预防措施:

(1)  对用户调用API的频率执行明确的时间窗口限制
(2)在突破限制时通知客户,并提供限制数量及限制重置的时间
  • A5:失效的功能级别授权

预防措施:

(1) 强制执行机制应拒绝所有访问,要求显式授予特定角色才能访问每个功能
(2)确保常规控制器内的管理功能根据用户的组和角色实施授权检查
  • A6:批量分配

预防措施:

(1)不要自动绑定输入数据和内置对象
(2) 在设计时准确定义您将在请求中接受的模式、类型和模型,并在运行时强制执行
  • A7:安全配置错误

预防措施:

(1)防止异常追踪和其他有价值的信息被传回攻击者,定义和强制使用统一的API响应格式,包括错误信息
(2)  在所有环境中持续评估配置和设置有效性的自动化过程
  • A8:注入

预防措施:

(1)将数据与命令和查询分开
(2) 严格定义所有输入数据:模式、类型、字符串模式,并在运行时强制执行
  • A9:资产管理不当

预防措施:

(1)对集成服务进行清点并记录重要信息,如它们在系统中的角色、交换了什么数据(数据流)及其敏感性
(2) 采用开放标准自动生成文档,包括在CI/CD管道中构建的文档
  • A10:日志和监控不足

预防措施:

(1)所有失败的安全策略,如日志中失败登录尝试,拒绝访问,输入验证失败,都要接受检查
(2) 配置一个监控系统,以持续监视基础设施、网络和API功能

四、API安全治理

1、API风险调查

  • 溯源定位

通过将告警的源地址与资产数据进行匹配,以及提取APIurl中的账号等参数信息,来识别出告警主体的更多信息。如果是来自内部的操作,则可以直接定位到当事的操作员工,以及所在团队或者营业部。

  • 告警聚集性挖掘

通常来说,我们需要特别关注聚集性的告警。在溯源定位完成之后,我们利用聚类分析,将告警从多个维度进行聚类,挖掘告警的聚集性和作案的团伙性。如是否存在营业部聚集、是否存在地理位置聚集、是否存在对某一类数据的聚集等,并将其呈现在面板上。
  • 情报印证

API告警的背后,是疑似API被滥用和数据被泄露。我们将告警中涉及的数据与外部泄露情报进行自动比对,如果比对印证成功,则API被滥用和数据被泄露的实锤加大,同时也省去了大量人工调查环节的证据搜索时间。

  • 行为链路梳理

一个真实的风险事件,可能会伴随着一系列的异常行为。如通过频繁调用API接口获取了大量个人隐私数据,后续可能会出现数据外发的DLP事件,或者之前已申请离职,意图将敏感数据带走等。因此对于一条告警,我们会搜索告警时点前后的重要行为,并将其展现到调查面板中。

2、API管理

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

3、API安全防护措施

  • 使用令牌技术

通过令牌建立API接口的可信身份,然后使用属于可信身份的令牌才能够实现对服务和数据资源等进行访问以及控制。

  • 使用加密和签名技术

例如使用TLS等加密方式对数据进行加密,保证数据在传输过程中被加密并防止被篡改。使用签名技术可以保证只有拥有数据访问权限的用户才能够对数据进行解密并对数据进行修改。

  • 主动识别API中的漏洞

可以使用检测嗅探器对API安全进行检测并检查数据被泄漏的情况,确保在网络环境下API服务的安全性,实时追踪API接口是否被非法黑客进行攻击以及漏洞被利用的情况。

  • 使用API安全网关

目前API安全网关已经被作为防护API安全的一个关键技术被使用,由于API安全网关可以用来控制和管理API接口的使用情况,同时也可以对使用API接口和服务的用户进行身份认证,因此在保护数据和API安全性上具备一定优势。

  • 对API接口的访问频率进行限制

由于业务的不同,API接口被调用的情况也会不同,通过分析和监测API接口被访问和调用的频率来确保API接口未被攻击者攻击以及数据被泄漏。一般来说被攻击的API接口往往会出现被调用次数增多或者频率与正常情况出现较大差异,因此通过限制API接口被访问的情况,进行限流等方式可以防护API出现被攻击者攻击甚至是拒绝服务的情况。

4、API安全检视

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

5、展望

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

文章来源: https://mp.weixin.qq.com/s?__biz=Mzg3NDY3NjcxOA==&mid=2247484007&idx=1&sn=668008a524bad7ea91f74c2f54853a87&chksm=cecc6ae6f9bbe3f06bb067e63536e7a438217ef2cef0add732e074cec4aaa10e20b1c51eb723&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh