在零信任架构下的API安全与滥用防护(上)

news2024/11/19 3:23:32

引言

在当今数字化的浪潮中,应用程序编程接口(API)的战略重要性愈发凸显。API不仅仅是现代软件和互联网服务之间沟通的桥梁,更是企业价值创造的核心。随着API的快速发展和广泛应用,安全问题随之而来,其中API滥用尤为引人注目,它已经成为数字安全领域亟待解决的关键挑战。

传统的网络安全模型,以其定义的安全边界为基础,但在如今混合云和移动办公的背景下,这一概念正被重新定义。越来越多的组织开始采纳零信任架构(Zero Trust Architecture, ZTA)的原则,该原则核心在于不再默认信任任何用户或设备,而是要求在每一次访问敏感资源时都进行评估,然后持续地对其信任度进行监控。然而,在许多ZTA的实施过程中,API基于的敏感应用功能和数据访问方式常被忽视,这一点在设计连续信任评估机制时尤其明显。为了填补这一空白,我们需要高度重视API的安全性,并确保它们在零信任架构下得到充分的考虑和保护。

在本篇文章中,我们将探讨API滥用为何构成了一个独特的问题,它如何影响企业的业务逻辑和数据安全,并讨论如何将API安全性纳入零信任架构中,以构建更为强大和灵活的安全策略。通过细致分析这两个领域的交集,我们不仅能更好地理解API的安全威胁,还能为企业提供一系列切实可行的防护措施,帮助它们在这个不断变化的数字世界中立于不败之地。

API滥用的新挑战

在构筑零信任架构的过程中,API作为信息系统中不可或缺的组成部分,其安全性尤为关键。然而,随着技术的演进,API滥用成为了安全领域中的一个新型挑战。这种滥用并非传统意义上的安全漏洞攻击,而是恶意主体利用API执行非预期的操作,这在零信任的理念下,更显得防不胜防。

image-20231128092716734

图:API安全威胁的来源-谷歌云的API安全报告

根据OWASP的2023年API安全前十大风险报告,API滥用可能导致的风险同传统的安全威胁一样严重。滥用者利用合法的访问权限,以合法用户的身份进行操作,这种行为在系统日志中往往与正常活动难以区分,给传统的侵入检测系统带来了巨大的挑战。在零信任架构下,每一次访问尝试都要经过严格的信任评估,这本质上要求我们对API安全采取更为主动和全面的防护措施。除了持续的监控和评估外,组织需要采用更高级的数据分析方法,比如行为分析和机器学习技术,以识别和防范API滥用。例如,Akamai提出,通过强大的计算能力,SaaS模型能够分析大规模的数据集,从而有效地识别API使用中的异常行为,这是实现零信任中连续验证原则的关键环节。

image-20231128093819015

当前,防御API滥用不仅要求技术层面上的创新,也需要在政策和战略层面上进行深思熟虑的规划。在这个不断变化的安全环境中,我们必须重新审视我们的API安全策略,确保它们能够与零信任架构的核心原则相融合,以应对日益复杂的威胁。在零信任的框架内,任何设备或用户都不再是默认可信的,这就要求我们对API的管理策略进行彻底的重新设计。从API发现、认证、授权到行为监控和异常检测,每一个环节都必须严格遵守零信任的原则。通过这种全方位的策略,我们可以更好地防范API滥用,保护企业的关键业务流程免受威胁。

在未来,随着零信任理念的进一步深化和技术的持续发展,API安全策略将变得更加智能化和自动化,但今天,我们必须采取切实可行的步骤,为迎接这些挑战做好准备。

零信任架构的基本原则

在零信任架构中,"永不信任、始终确认"的原则为企业安全构建了全新的基础。这种架构不依赖于传统的边界防御,而是在每一次资源访问中实施严格的身份验证和权限控制。这个转变对API安全尤为关键,因为API是现代企业IT架构中数据和服务交互的关键通道。零信任架构的核心在于消除内部和外部网络之间的信任区别,它要求对网络内的所有访问行为都进行严格的安全检查,无论访问请求来源于内部还是外部。这种模式认为安全威胁可以来自任何地方,因此必须对每个访问请求都实施连续的安全验证。这对于企业意味着必须在每个网络节点、每个数据流程、每个API调用中实施安全控制,从而确保数据和资源的安全。

image-20231128093714339

在零信任框架下,API安全成为实现安全目标的重要支点。每个API都是一个潜在的访问点,需要被严格控制和监管。以下是零信任原则与API策略交集的关键点:

  1. 身份验证:在零信任架构中,所有API调用都需要强验证,确保只有经过验证和授权的用户和系统可以访问API。
  2. 最小化权限:每个API的访问权限都应该限制在绝对必要的最小范围内,以减少过度权限所带来的安全风险。
  3. 动态策略:API访问策略应根据访问上下文动态调整,实时反映访问请求的风险级别,以及用户和系统的信任度。
  4. 持续监控:实时监控API的使用情况,分析访问模式,以便于快速发现和应对异常行为和潜在的安全威胁。

通过这些策略的实施,API不仅成为服务和数据交互的桥梁,也成为实施零信任架构的关键环节。这确保了企业能够在开放和灵活的IT环境中保持强大的安全防护,为企业的数字化转型提供了坚实的安全基础。

零信任的七大基本原则与API安全

下表包括 NIST SP 200-807 中定义的 ZTA 的七个基本原则,以及使组织的 API 安全实践与这些原则保持一致的建议。

零信任架构的 7 个基本原则API 安全隐患
1.“所有数据源和计算服务都被视为资源。”ZTA 范围内的许多应用程序和数据源除了直接的用户界面外,还可以通过 API 访问。因此,您的 ZTA 评估和策略执行模型应包括 API 接口。
2.“无论网络位置如何,所有通信都是安全的。”即使 API 仅供私有数据中心或云环境内部使用,您也应该像面向外部一样实施加密、身份验证和授权,以确保数据的机密性和完整性。
3.“对单个企业资源的访问权限是按会话授予的。”您应该在授予对 API 资源的访问权限之前评估信任。应以尽可能最少的权限授予访问权限。使用行为分析来监控 API 使用情况并持续评估信任。
4.“对资源的访问由动态策略决定——包括客户端身份、应用程序/服务和请求资产的可观察状态——并且可能包括其他行为和环境属性。”要将 ZTA 应用于 API,您必须能够识别所涉及的实体、推断业务上下文并使用行为分析来识别与正常使用模式的偏差。值得注意的一个行为属性是通过快速 API 调用拒绝服务。 这就是为什么缺乏API 速率限制在(OWASP) API 安全 Top 10中被归类为对敏感业务流的无限制访问。正如NIST指出的那样,“这些规则和属性基于业务流程的需求和可接受的风险水平。”
5.“企业监控和衡量所有拥有和相关资产的完整性和安全状况。”此要求基于美国网络安全和基础设施安全局 (CISA) 定义的持续诊断和缓解 (CDM) 概念。CDM 包括资产管理、漏洞管理和配置/设置管理等元素。 就像实物资产一样,API 必须不断发现、分类和跟踪。同样,持续的漏洞评估应该超越传统的网络和应用程序安全漏洞,包括可能的基于 API 的漏洞。
6.“所有资源身份验证和授权都是动态的,并且在允许访问之前严格执行。”这个概念可以而且应该扩展到 API。采用 ZTA 的组织应对 API 使用情况进行持续监控,并使用自动化技术(例如阻止、限制、撤销凭证)在经过身份验证和授权的 API 流量中检测到异常或滥用行为时做出响应。
7.“企业收集尽可能多的有关资产、网络基础设施和通信当前状态的信息,并利用这些信息来改善其安全状况。”要成为 ZTA 的有效组成部分,您的 API 安全措施必须能够在较长时间内捕获数据 - 理想情况下,应该有足够的时间来检测微妙的 API 滥用。 这种详细程度对于执行行为分析以进行实时风险评估和 ZTA 设计的持续改进是必要的。这包括向威胁搜寻者提供对 API 和威胁数据的按需访问,以用于确定可能的策略改进。还应该使用您的团队使用的开发和操作工具以及工作流程来创建类似的集成点。

在零信任架构下,API不仅仅是数据交换的管道,它们是维护企业安全的关键资源。实施零信任的基本原则要求我们从新的角度审视API安全策略,确保每一个原则都在API管理中得到体现。

首先,将所有数据资源和计算服务视为资源,意味着ZTA中的API也应当包括在内,每个API都应受到和直接用户界面同等级别的安全评估和策略执行。这要求企业对API进行全面的发现和分类,确保API接口的每次访问都经过严格的安全评审。 其次,所有通信都必须安全,不受网络位置限制。对API而言,这意味着无论是内部还是外部API,都应实现加密、身份验证和授权,确保传输数据的机密性和完整性。在动态策略的指导下,API的访问控制应根据请求的上下文动态调整,包括用户身份、应用状态和其他可能的行为及环境属性。这种方法有助于识别和防范诸如快速API调用导致的服务拒绝等异常行为。监控和衡量所有拥有和关联资产的完整性和安全状况对于API来说尤其重要。这包括实时跟踪API的健康状况和安全配置,以及对API进行持续的漏洞评估和缓解。所有资源的身份验证和授权必须动态执行并严格控制。对于API,这意味着认证和授权机制需要能够适应不断变化的安全环境,并在检测到异常或滥用行为时能够及时做出反应。最后,收集关于资产和网络基础设施状态尽可能多的信息对于API安全至关重要。这些信息有助于组织通过行为分析来识别可能的滥用行为,并为ZTA设计的持续改进提供数据支持。

通过上述原则的应用,零信任安全模型强化了API的安全防护,确保了企业资产的安全,同时为未来可能的安全策略改进奠定了基础。在零信任架构下,API安全不再是一项附加任务,而是构建强健安全体系的核心组成部分。

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

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

相关文章

保障海外业务发展,Coremail提供高效安全的海外通邮服务

11月22日,Coremail举办《全球通邮:如何保障安全、快捷的海外中继服务》直播分享会,直播会上Coremail安全团队和直播嘉宾复旦大学校园信息化办公室徐艺扬老师就海外中继服务进行了深度分享。 ​ 海外通邮困难重重 境外垃圾邮件数量居高不下…

【Spring Boot 源码学习】BootstrapRegistryInitializer 详解

Spring Boot 源码学习系列 BootstrapRegistryInitializer 详解 引言往期内容主要内容1. 初识 BootstrapRegistryInitializer2. 加载 BootstrapRegistryInitializer3. BootstrapRegistryInitializer 的初始化 总结 引言 书接前文《初识 SpringApplication》,我们从 …

【动态规划】LeetCode2552:优化了6版的1324模式

本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 动态规划 本题其它解法 C前缀和算法的应用:统计上升四元组 类似题解法 包括题目及代码C二分查找算法:132 模式解法一枚举3C二分查找算法&am…

通用plantuml模板头

通用plantuml文件 startuml participant Admin order 0 #87CEFA // 参与者、顺序、颜色 participant Student order 1 #87CEFA participant Teacher order 2 #87CEFA participant TestPlayer order 3 #87CEFA participant Class order 4 #87CEFA participant Subject order …

logcat日志的使用——Qt For Android

前言 最近一直用qt开发安卓app,一直无法用真机调试,可能是缺什么东西。但是如果通过Qt Creator在真机上运行,可以在电脑控制台看打印(安卓本身的日志、qDebug之类的打印),所以我是通过打印猜测问题所在&am…

autojs-ui悬浮按钮模板

注释很详细,直接上代码 涵盖很多常用知识点,也可当知识点看 运行效果长这样: 开始按钮相当于开关,按钮内容会随点击变换控制台按钮可让运行框显示或隐藏退出按钮退出程序并在3s后关闭运行框只需在对应函数内添加需要实现的内容即可…

基于Netty实现TCP通信

创建一个Maven项目添加下面依赖 <dependencies><!-- 日志依赖 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency><dependency><g…

基于PaddleOCR银行卡识别实现(三)

前言 基于PaddleOCR银行卡识别实现&#xff08;一&#xff09; 基于PaddleOCR银行卡识别实现&#xff08;二&#xff09; 前两篇文章讲了检测模型和识别模型的实现&#xff0c;这一篇文章姗姗来迟&#xff0c;将讲解下两个模型的串联应用和PaddleOCR的源码精简&#xff0c;下面…

AI - FlowField(流场寻路)

FlowField流场寻路&#xff0c;利用网格存储每个点对目标点的推力&#xff0c;网格上的单位根据对于推力进行移动。用于大量单位进行寻路对于同一目的地的寻路&#xff0c;常用于rts游戏等。 对应一张网格地图(图中黑块是不可行走区域) 生成热度图 计算所有网格对于目标点(…

蓝桥杯第199题 扫地机器人 暴力优化 二分法 简单题 C++

题目 扫地机器人 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/199/learning/?page1&first_category_id1&name%E6%89%AB%E5%9C%B0%E6%9C%BA%E5%99%A8%E4%BA%BA 思路和解题方法 首先&#xff0c;通过cin语句输入了终点位置n和障碍物数量k。使用一个数组a来…

零基础也可以学编程,分享中文编程工具开发软件

零基础也可以学编程&#xff0c;分享中文编程工具开发软件 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;象如图这个实例就是用…

MySQL 插入数据报错 Incorrect string value

当在sys_dict_data表中执行插入语句&#xff1b; insert into sys_dict_data values(1, 1, 男, 0, sys_user_sex, , , Y, 0, admin, sysdate(), , null, 性别男);报错信息如下&#xff1a; insert into sys_dict_data values(1, 1, 男, …

记录一次现网问题排查(分享查域名是否封禁小程序)

背景&#xff1a; 收到工单反馈说现网业务一个功能有异常&#xff0c;具体现象是tc.hb.cn域名无法访问&#xff0c;客户地区是河南省&#xff0c;这里记录下排查过程和思路。 首先梳理链路 客户端域名 tc.hb.cn cname—> domainparking-dnspod.cn(新加坡clb)—> snat—&…

Mysql DDL语句建表及空字符串查询出0问题

DDL语句建表 语法&#xff1a; create table 指定要建立库的库名.新建表名 &#xff08;... 新建表的字段以及类型等 ...&#xff09;comment 表的作用注释 charset 表编译格式 row_format DYNAMIC create table dev_dxtiot.sys_url_permission (id integer …

深度学习毕设项目 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

基于深度学习的表情动作单元识别综述

论文标题&#xff1a;基于深度学习的表情动作单元识别综述 作者&#xff1a;邵志文1&#xff0c;2&#xff0c;周 勇1&#xff0c;2&#xff0c;谭 鑫3&#xff0c;马利庄3&#xff0c;4&#xff0c;刘 兵1&#xff0c;2&#xff0c;姚 睿1&#xff0c;2 发表日期&#xff1a…

python爬虫AES案例:某招聘网站

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行 atob(‘aHR0cHM6Ly93d3cua2Fuemh1bi5jb20vc2VhcmNoLz9xdWVyeT1weXRob24mdHlwZT0w’) 拿到网址…

sqlserver12 数据库的安装步骤

点击独立安装或向现有安装添加功能 点击下一步&#xff1a; 点击我接受许可条款&#xff0c;然后点击下一步&#xff1a; 点击包含SQL server产品更新&#xff0c;然后点击下一步&#xff1a; 继续点击下一步&#xff1a; 点击SQL server&#xff08;功能安装&#xff09; 最后…

Thrift RPC Java、Go、PHP使用例子

文章目录 1、Thrift RPC介绍1.1、Protocol 支持的数据传输协议1.2、Transport 支持的数据传输方式1.3、Server 支持的服务模型1.4、IDL语法数据类型1.5、开发步骤 2、接口定义文件2.1、创建接口定义文件2.2、生成对应平台语言代码2.2.1、下载生成工具2.2.2、生成各平台语言代码…

Spring-事务支持

目录 一、事务概述 二、引入事务场景 三、Spring对事务的支持 Spring实现事务的两种方式 声明式事务之注解实现方式 1.在Spring配置文件中配置事务管理器 2. 在Spring配置文件引入tx命名空间 3. 在Spring配置文件中配置“事务注解驱动器”&#xff0c;通过注解的方式控…