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

news2024/11/24 17:30:03

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多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1037952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理课程设计

操作控制和顺序控制 操作控制就是由各种微命令来构成的顺序控制就是由P测试和后续微地址构成的 这就构成了整个微指令的三个部分 访存指令就是实现对主存中的数据进行访问或存储 一、 操作控制字段是由各种微命令来构成的,这些微命令怎么来设计? 一个萝卜…

全新贝锐蒲公英客户端6.0:如何实现快速部署、高效异地组网?

贝锐蒲公英客户端6.0版本进行了全新的升级,此次升级对原有企业版、个人版和个人管理端进行了深度整合,不同身份的用户现在可以统一登录,大大简化了异地组网的流程,同时提升了效率。那么贝锐蒲公英客户端6.0,做了哪些深…

Cortex-M3/M4之SVC和PendSV异常

一、SVC异常 SVC(系统服务调用,亦简称系统调用)用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它…

更新至2022年上市公司ESG评级评分数据合集(含华证、盟浪、wind、彭博、润灵环球、商道融绿、和讯网、富时罗素数据)

更新至2022年ESG评级评分数据合集(含华证、盟浪、wind、彭博、润灵环球、商道融绿、和讯网、富时罗素及世界各国ESG数据) 1、来源:整理自wind和csmar 2、具体时间: 华证:2009-2022年、盟浪:2018-2022年、…

Python实现猎人猎物优化算法(HPO)优化LightGBM分类模型(LGBMClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

【教学类-35-02】学号+姓名+班级(小2班)学号字帖(A4横版2份)

图片展示: 背景需求: 突然接到通知,明天下午临时去带小2班。 小班刚入园的孩子,能给他们提供什么样的可操作的学具呢? 思来想去,还是让生成一份学号字帖,让幼儿熟悉自己的学号,让我也熟悉幼儿的名字和学…

苹果手表 Series 6 拆解

步骤 1 苹果手表 Series 6 拆解 Series 6(右)与具有一年历史的姐妹(左)的外部比较仅显示出细微的差异,但这就是拆卸的目的。我们已经知道这些细节: LTPO OLED Retina 显示屏针对常亮功能进行了优化——这次…

Nginx浏览器缓存

浏览器缓存 配置浏览器缓存可以加速静态资源的访问,浏览器对用户访问的资源进⾏存储,下次访问,不⽤再去向服务器寻求资料,直接本地显示,加速访问体验,节省⽹络资源,提⾼效率。Nginx通过 expires…

基于YOLOv8模型的头盔行人检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型的头盔行人检测系统可用于日常生活中检测与定位头盔与行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练…

安全测试之w3af 安装

背景: 学习安全测试时,离不开一些安全扫描工具,在类目众多的工具中,w3af是个绕不开的集成工具。由于没有linux环境,故在windows下利用wsl进行部署。亦可通过其它虚拟机安装亦可。 借鉴:Win10下安装w3af_Da…

kali linux多版本java共存并自由切换 update-alternatives

Kali Linux通过apt和dpkg安装的Java不是一样的。 它们安装的Java版本和管理方式可能不同。 1. **apt 安装 Java:** 当您使用apt包管理器在Kali Linux上安装Java时,您实际上是安装了由Kali Linux官方仓库提供的Java版本。 这个版本通常是经过Kali Linux团…

万字总结HTML超文本标记语言

一、前言:什么是网页? 网站是指在因特网上根据一定的规则,使用 HTML 等制作的用于展示特定内容相关的网页集合。网页是网站中的一“页”,通常是 HTML 格式的文件,它要通过浏览器来阅读。 网页是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。通常…

MySQL 中的索引

文章目录 一、索引的创建二、聚簇索引与非聚簇索引三、B 树索引 一、索引的创建 创建索引的方式包括两种: 隐式创建:数据库一般会在创建 PRIMARY KEY 和 UNIQUE 约束列时自动创建索引。显示创建:使用 CREAT INDEX 语句创建,建立…

Java流式编程的使用

流式编程的使用步骤 使用流式编程的步骤就是: 设置数据源, 设置数据处理的方式,设置收集结果的方式。 使用filter方法实现过滤条件 例子为下&#xff08;查询年龄大于18的用户&#xff09;: Testpublic void streamTest1() {List<Student> students Arrays.asList(ne…

【Java 基础篇】Java Function 接口详解

在 Java 编程中&#xff0c;Function 接口是一个非常重要的函数式接口&#xff0c;它允许你定义一个接受一个参数并产生结果的函数。Function 接口通常在各种数据处理和转换操作中使用&#xff0c;例如集合处理、流处理以及函数式编程。 本文将详细介绍 Function 接口的使用方…

基于蚁群算法的航线规划

一、背景 二、代码 main.m clear;clc; r21; %21*21 c21; intau20; xstart1; ystart3; %起点 xend20; yend18; %终点 gd1; xt[5,11,8,16,12,15,17,19]; %障碍物 yt[9,15,7,3,12,8,15,12];threat8; NCmax200; %迭代次数%初始化数据 Gamma_A0.9; Rho_A0.2; Alpha_A1; Beta_A3;…

SpringBoot集成easypoi实现execl导出

<!--easypoi依赖&#xff0c;excel导入导出--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version></dependency>通过Exce注解设置标头名字和单…

RocketMQ源码解析(下 )

一、Producer发送消息过程 1、普通发送消息过程 一般发送消息都是new一个DefaultMQProducer&#xff0c;所以先找到DefaultMQProducer类 先进行DefaultMQProducerImpl的初始化&#xff0c;所有Producer的启动过程&#xff0c;最终都会调用到DefaultMQProducerImpl#start方法…

Llama2-Chinese项目:2.3-预训练使用QA还是Text数据集?

Llama2-Chinese项目给出pretrain的data为QA数据格式&#xff0c;可能会有疑问pretrain不应该是Text数据格式吗&#xff1f;而在Chinese-LLaMA-Alpaca-2和open-llama2预训练使用的LoRA技术&#xff0c;给出pretrain的data为Text数据格式。所以推测应该pretrain时QA和Text数据格式…

C++11 - 右值引用

临时空间 临时空间具有常性&#xff0c;什么时候会产生临时空间呢&#xff1f; 1、函数传值返回 把aa拷贝给临时空间&#xff0c;如果是很大的对象并且进行深拷贝&#xff0c;消耗会很大 证明&#xff1a; 这是list模拟实现迭代器的和&#xff01;重载时&#xff0c;while( it…