API网关是如何提升API接口安全管控能力的

2023-09-21 17:52:14

API安全的重要性

近几年,越来越多的企业开始数字化转型之路。数字化转型的核心是将企业的服务、资产和能力打包成服务(服务的形式通常为API,API又称接口,下文中提到的API和接口意思相同),从而让资源之间形成更强的连接和互动关系,释放原有资产的价值,提升企业的服务能力。企业数字化转型使得基于API的业务系统剧增,随之而来带来的安全问题也日渐凸显。Gartner预测,到2022年,API滥用将成为最常见的攻击媒介,导致企业出现数据泄露。
企业数字化转型使得API数量激增

API安全事件频发,技术能力领先的头部企业也屡遭数据泄露。2020年3月19日,有用户在暗网上发现微博的5.38亿用户信息在暗网出售,其中1.72亿条有账户基本信息,原因就是来自于终端APP的业务逻辑API被非法流量调用超过40亿次而导致。

API给企业带来的挑战有:1)资产理不清,有多少API对外开放、有多少敏感数据、有什么类型数据、是什么等级的数据;2)滥用管不住,API未经脱敏就直接使用、开放API被第三方系统滥用;3)审计日志不详细,导致API安全事件发生后没有有效的溯源手段。

API安全性越来越重要,对API安全进行防护既有利于用户安全的使用API所提供的服务,又能够为用户的隐私数据进行保驾护航。所以,提高API安全防护能力的问题亟待解决。
面对以上形势,现在越来越多的企业采用API网关来管理内部API。以下从API资产管理、API安全防护、API风险溯源三个方面介绍API网关如何对API进行全生命周期的安全管理。
API全生命周期涉及的安全问题

API资产管理

API网关支持API注册、分级分类、资产清单导出和API签约审批等。通过API网关,API提供者可以清晰掌握每个调用方的使用情况,并且可严格把控API的签约使用,实现API的可管可控。
API注册流程

API安全防护

1. 认证鉴权

API网关支持根据能力提供者提供的相关API鉴权要求,要求能力使用者在使用相关API时,遵循相应的鉴权要求。

1)IP黑白名单认证

IP黑白名单API策略适配器帮助能力提供者对能力使用者的API 调用按照请求端IP黑白名单进行控制,确保API访问的安全性。能力提供者针对每个API可独立设置IP黑白名单,每个IP地址都与能力使用者存在对应关系。

2)APPID身份认证

能力使用者在使用API时,需要先注册APP,并获取APPID。 调用API时,以APP为单位调用,而不是以能力使用者身份调用。理论上同一个能力使用者的多个APP之间不允许在非授权情况下互相使用对方APP不具备的API。API网关网关需提供“APPID+ SecretKey”用于身份认证,认证通过后才允许该能力使用者调用API。APPID和SecretKey由系统分配。当能力使用者在系统中成功创建APP后,系统就自动为其分配APPID和SecretKey。能力提供者可以针对每个API设置APPID认证策略。

3)能力鉴权

即使APPID认证通过,若该能力使用者调用未申请的接口,同样会被API网关拦截。

4)密钥更换

API网关为每个系统或应用分配专属的秘钥,调用方系统使用秘钥才有权限调用申请的API,秘钥一旦泄露,第三方就可以非法调用API,该功能可以避免秘钥泄露导致的API安全问题。

5)签名认证

API网关支持签名认证,例如使用RSA非对称加密模式时,能力使用者在使用API时,需要使用APP私钥进行签名,从API网关获取 API响应或者API网关主动发送消息给APP时,API网关会使用私钥进行签名,能力使用者需要通过API网关公钥验证,以确保消息来源可靠。
签名认证功能示例

2. 流量控制

流量控制主要指对应用接入的流控和API访问的流量控制。针对 API,流量控制策略适配器帮助能力提供者对能力使用者的API调用按照设置的TPS进行访问速率控制,从而可以拦截非法调用并保护后端API服务器。能力提供者针对每个API、签约应用加API、 签约应用等不同维度,可独立设置TPS,当能力使用者调用API时,API网关系统将按照能力提供者设置的TPS值进行API 调用速率控制

3. 数据脱敏

数据脱敏(Data Masking),又称数据漂白、数据去隐私化或数据变形。数据脱敏的定义为:指对某些敏感数据通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样,就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。
敏感数据,又称隐私数据,常见的敏感数据有: 姓名、身份证号码、地址、电话号码、银行账号、邮箱地址、所属城市、邮编、密码类 ( 如账户查询密码、取款密码、登录密码等 )、组织机构名称、营业执照号码、银行帐号、交易日期、交易金额等。

4. 传输安全

API网关系统支持接口的HTTPS协议传输。HTTPS顾名思义,即安全的HTTP,普通的HTTP请求和响应对任何监控网络传输的用户都可见,而HTTPS传输的信息通过安全传输层(TLS,也被称为SSL)隐藏和保护。HTTPS的主要作用是,确认双方的身份,和建立安全通道,保证传输数据的安全,保障接口业务在调用过程中的防篡改等安全能力。

API风险溯源

API网关基于日志行为审计的风险溯源, 解决3个核心,5个要素。3个核心主要是指:谁,使用了什么账号(用户)?访问了哪些API(应用)?查询了哪些敏感数据(内容)?5个要素是指:什么时候(时间)?什么IP(地点)?查询了哪些涉敏数据(操作)?成功与否和次数多少(结果)?此外还有账户行为详细分析与可视化统计有效避免事故责任难追溯的问题(画像)。
基于以上要素,API网关提供日志审计的功能,可对系统日志和接口调用的的异常进行分析,日志审计内容包括:

  1. 登陆日志的审计。提供用户登录次数,登陆地点,登陆时间,校验失败次数,验证码验证情况等的分析记录,为运营者提供平台是否被暴力破解,攻击等行为的判断。
  2. 系统用户的操作日志审计,提供操作行为的统计分析数据,为运营者提供破坏者等的行为判断依据。
  3. 安全调用审计,提供访问请求来源,访问频率,流量,访问时段等的分析数据,为运营者提供平台是否收到非法攻击,恶意调用的行为判断依据。
  4. 数据安全审计,提供数据存储的访问情况,访问账号,访问数据信息及记录等,为运营者提供数据是否被恶意窃取,被批量操作等提供判断依据。

总结

  1. API网关对API的安全管控基于多种规则的交叉,实现对网络层、应用层、信息层的安全策略的应用、审计和控制,来保障对外开放API时业务、数据、应用的安全。
  2. API网关对API的保护贯穿API的创建、上线、开放、传输、以及最终销毁的全生命周期。
  3. 除以上本文提到的API安全管控功能外,API网关也提供实时的告警监控,能够及时对API调用的异常情况发出告警,有效保障API的稳定运行和对外服务。

本文由mdnice多平台发布

更多推荐

人工智能安全-5-网络入侵检测

0提纲概述数据集数据预处理特征工程天池AI上的实践棘手问题1概述入侵检测是网络安全中的经典问题,入侵是指攻击者违反系统安全策略,试图破坏计算资源的完整性、机密性或可用性的任何行为。不管是哪种类型的入侵检测系统(IDS),其工作过程大体是相同的,可以分为三个主要的环节,即信息收集、分类检测和决策,其中,分类检测和决策环节

Git操作

前期准备:1、安装2、身份认证gitconfig--globaluser.name"your_username"gitconfig--globaluser.emailyour_email@domain.comgitconfig--list查看所有配置常见的Git命令gitstatus.命令用于显示工作目录和暂存区的状态

React useRequest解读

源码结构:可以看到虽然是一个hooks(具有一定功能且具备状态的单一函数)但是各种文件功能分得也是很细的,方便抽离和复用useRequest.ts抽离的原则还是单一功能原则可以看出真正的hooks实现是在Implement里对于类型type的引入我们需要显示声明这是importtypeuseRequestImpleme

华清 Qt day5 9月21

QT+=coreguisqlnetwork/*****************************************************************/#ifndefWIDGET_H#defineWIDGET_H#include<QWidget>#include<QWidget>#include

为何学linux及用处

目前企业使用的操作系统无非就是国产类的,windows和linux类。我们要提升自己的技能,需要学习这两款。我记得在大学时期,学习过windows以及linux,但当时觉得又不常用,就学的模棱两可。毕业之后,你会发现,其实这两种操作系统是很主流的。为什么学?下面就是一些工作中遇到的例子分享一下。我记得在企业中有次遇到数

【python第7课 实例,类】

文章目录一、实例1.1实例的变量1.2实例方法1.3构造方法1.4析构函数1.4预置实例属性:二,类1.1类变量1.2类方法1.3静态方法1.4类属性的增删改查一、实例1.1实例的变量使用示例classdog:def__init__(self,k,c,a):self.kinds=kself.color=cself.ag

【Hash表】两数之和-力扣 1 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kaf

Docker笔记

安装卸载旧版本以及相关的依赖项sudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine安装所需的软件包

leetcode分类刷题:二叉树(一、简单的层序遍历)

二叉树的深度优先遍历题目是让我有点晕,先把简单的层序遍历总结下吧:配合队列进行的层序遍历在逻辑思维上自然直观,不容易出错102.二叉树的层序遍历本题是二叉树的层序遍历模板:每次循环将一层节点出队,再将一层节点入队,也是所有可用层序遍历解二叉树题目的模板,只需要在模板里稍加改动即可解题fromtypingimportLi

Docker学习大纲

Docker是一个用于自动部署应用程序在轻量级容器中的平台。下面列出一些Docker的基础和必知概念。1.容器(Containers)容器是独立的应用程序运行环境。命令:dockerrunhello-world解析:该命令会从DockerHub下载一个叫做“hello-world”的镜像,并运行一个容器。2.镜像(Im

模型分类model

模型可以按照多个维度进行分类,以下是常见的几种模型分类方式:(1)根据应用领域分类:数学模型:基于数学原理和方程式来描述和解决问题,如微积分模型、线性代数模型等。物理模型:基于物理原理和规律来模拟和解释现象,如力学模型、电路模型等。经济模型:用于研究和预测经济系统的行为和变化,如供求模型、消费者行为模型等。生物模型:用

热文推荐