利用 API 安全防护的基本工具和最佳实践防御 API 攻击
原文作者:Andrew Stiefel - F5 产品营销经理
原文链接:利用 API 安全防护的基本工具和最佳实践防御 API 攻击
转载来源:NGINX 中文官网
NGINX 唯一中文官方社区,前往 nginx.org.cn 阅读原文。
近年来,API 的激增极大地改变了企业运营方式。API 支持不同的应用相互通信和交换数据,可让业务流程和软件开发变得更加高效和有效。
然而,随着 API 使用的增多,API 蔓延的风险也随之产生,即跨分布式团队和架构创建和部署 API 往往缺乏适当的监督和管理。这可能会给企业带来一系列新的安全风险,因为每个 API 都是攻击者未经授权访问敏感数据和系统的潜在入口点。
API 优先软件开发的兴起
API 蔓延的主要驱动因素之一是微服务的激增。微服务架构将一个大型应用分解为许多通过 API 相互通信的小型应用。这就将复杂的应用分解为独立的组件,这些组件可由各个团队进行管理,并能够彼此独立扩展以满足流量需求。
微服务为开发人员提供了许多优势,包括更高的灵活性和可扩展性。但这些优势是有代价的,其中就包括额外的复杂性。因此,许多企业采用 API 优先方法来构建微服务。在实施这种策略时,应用和服务的设计流程都是先制定 API 契约,该契约概述了 API 的工作方式,细化到请求和响应格式。
攻击面随 API 激增而不断扩大
若不重视 API 安全防护,特别是在设计和部署过程中,那么 API 优先软件开发的优势就很容易被削弱。从根本上讲,API 越多,攻击面越大。尽管 API 在现代软件开发中发挥着重要作用,但它们同时也更容易被攻击者盯上。
2018 年,Gartner 预测,到 2022 年,API 将成为应用中最常见的攻击向量。实际上,他们对形势的预测过于乐观了。影响数百万用户的重大 API 漏洞事件在多家大型公司不断上演,而且只会愈加频繁:
阻止 API 攻击需要采用正确的策略和工具
防范 API 威胁的最常见方法是结合使用传统 Web 应用安全防护策略与现代 API 安全防护技术。面对当今各种 API 威胁,传统策略往往力不能及。自动化 API 发现和 API 对比测试等现代技术试图弥合这些缺口。
对于企业而言,“右护”(实施全局控制和安全防护策略,以保护已部署的应用和 API)和“左移”(在安全防护嵌入到代码中,从而在应用和 API 投入生产环境前消除漏洞)至关重要。但这两种策略均无法单独提供全面的 API 安全防护,因此防范漏洞的关键在于采取一种涵盖三类 API 安全防护实践的全面方法:
- API 安全防护状态管理 – 提供对 API 集合的安全状态的可见性,包括暴露的数据的类型和请求方法
- API 安全防护测试 – 评估 API 在其生命周期中各关键点的安全防护,以发现潜在漏洞
- API 运行时保护 – 在运行过程中检测并防止恶意请求到达 API
什么是 API 安全防护态势管理?
API 安全防护态势管理可提供对 API 所暴露的数量、类型、位置及数据的可见性。这些信息能够帮助您了解与每个 API 相关的风险,从而采取适当的措施保护 API。
主要功能:
- 自动化 API 发现 – 自动持续的 API 发现,以全面了解环境中部署的 API 情况
- API 表征 – 按协议或架构(REST、GraphQL、SOAP 等)对 API 进行识别和分类,并映射敏感数据流,从而了解所面临的暴露风险
- API 编目 – 维护完整的 API 列表,以方便软件团队复用现有 API,并帮助 SecOps 团队构建安全防护态势的完整视图
代表性技术:
- Web 应用和 API 防护(WAAP) – 利用在 API 基础架构中的特殊全局位置来分析进出环境的流量,识别 API,并构建风险暴露视图
- 内联或基于代理的发现 – 将代理附加到现有 API 网关、负载均衡器或 Kubernetes Ingress Controller,以镜像和分析 API 流量
- 带外或无代理发现 – 使用流量镜像或导出日志和指标来分析 API 流量;与其他技术相比,通常对 API 和威胁的可见性较低
- 域爬虫程序 – API 安全防护提供商可能会提供爬虫程序,以探测您的域中是否有暴露的 API 端点,这些端点允许流量绕过执行安全防护策略的 API 网关和负载均衡器
需要警惕的是,任何技术都无法一个不落地发现架构中的每个 API。大多数发现技术都依赖于现有负载均衡器、API 网关及 Ingress Controller 提供的可见性,不太可能发现能够绕过这些架构组件的错误配置。
从根本上说,执行代码审查和遵循 API 优先最佳实践可提供更有效的长期防御。不过,对于快速构建安全防护态势视图以及发现有可能不受管理和保护的 API 而言,自动化 API 发现工具仍很有用。
什么是 API 安全防护测试?
API 安全防护态势管理关乎企业整体安全防护,而 API 安全防护测试则关乎单个 API。从根本上讲,API 安全防护测试是通过测试 API 运行时(API 背后运行的应用)来帮助识别和防范漏洞及其相关风险。它有助于确保满足基本的安全防护要求,包括身份验证、授权、速率限制及加密条件。
主要功能:
- API 契约测试 – 使用 API 的 OpenAPI 规范,通过比较客户端请求和服务器响应来验证其是否正常运行。它采用“由内而外”的方法,可在部署 API 之前发现它们是否存在漏洞。
- 动态应用安全防护测试(DAST) – 模拟针对 API 运行时的攻击以查找漏洞,像恶意用户一样从“从外向内”评估 API。
代表性技术:
- API 契约测试软件 – 用于运行测试的专用工具,这些测试可对 API 请求和响应进行分段,以验证客户端和服务器行为是否符合 API 契约
- 应用安全防护测试(AST)软件 – 通过模拟攻击来分析和测试应用(包括 API)的工具
什么是 API 运行时保护?
API 运行时保护是指在 API 运行和管理请求时确保其安全防护。它优先考虑将安全防护构建到平台基础架构及 API 本身的代码中,旨在识别和防止部署后出现恶意 API 请求。 主要功能:
- 访问控制 – 执行身份验证(authN)和授权(authZ)策略
- 网络安全防护 – 加密并保护网络通信
- 应用保护 – 保护 API 运行时免受恶意 API 请求和攻击的影响
- 实时监控 – 可视化、跟踪和缓解 API 基础架构中的攻击
代表性技术:
- API 网关 – 应用和执行安全防护策略,包括身份验证、授权、速率限制、访问控制列表及加密
- Web 应用防火墙(WAF) – 根据攻击特征库主动监控并过滤流量,以保护 API 和应用免受复杂的七层攻击
- 身份验证供应商(IdP) – 存储并验证用户身份的服务,通常与单点登录(SSO)提供商协同验证用户身份
API 安全防护的最佳实践
结语
与所有网络安全一样,API 安全防护也是一个持续的过程,需要网络工程师、安全防护运维领导者、平台工程领导者及软件开发工程师等诸多利益相关者之间展开密切协作。好在 API 安全防护并不是深不可测的事情。
大多数企业已经采取相应措施来应对已知攻击,如跨站脚本攻击、注入攻击、分布式拒绝服务攻击以及其他可能针对 API 的攻击。对于经验丰富的安全防护专业人员来说,上述许多最佳实践可能都非常熟悉。无论贵企业运行多少 API,您都要建立可靠的 API 安全防护策略,并主动地对其进行持续管理。
相关资源推荐
NGINX 唯一中文官方社区,前往 nginx.org.cn 阅读原文。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源日报 | 女工程师开源AI模型对抗deepfake;苹果回应iPhone 16 不支持微信;Python开发者调查;“天”系列工业软件
欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.9.3 今日要闻 中科院女工程师开源AI模型对抗deepfake:用AI打败AI 近日“深度伪造”犯罪在韩国引起女性恐慌,中科院女工程师张欣怡(微博名“啦啦啦啦啦啦啦0-0”)表示:经团队同意,已将近期参加在上海举办的外滩大会AI创新赛·全球Deepfake(深度伪造技术)攻防挑战赛的AI模型向全球开源,让所有有需要的人都可以免费使用模型来对抗deepfake,希望通过技术手段,为每一个可能受到伤害的人提供保护。后续还会尽快开发相关应用,降低大家的使用门槛。 C 语言,一周,写一个 3D 建模器 开发者 Daniel Hooper 在一周内使用 C 语言和 raylib 库完成了一个 3D 建模器项目 ShapeUp,代码行数: 2024 行 C 代码 250 行 GLSL 代码 总数 2274 行 Daniel Hooper 发布了一篇关于他在一周内使用 C 语言创建 3D 模型器 ShapeUp 的文章。ShapeUp 使用了 signed distance fields (SDFs) 和 ray mar...
- 下一篇
GreatSQL执行Update失败案例分析
GreatSQL执行Update失败案例分析 一 问题概述 业务反馈在应用核心库的用户基本信息表执行部分update命令失败,报错如下: update xxx.xxx_staffbasicinfo set staffidstatus='04' where staffid in (select * from duyuanyu.tmp_d_xiaoyuan ) > 1265 Data truncated for column 'NOTMODSTATUS at row 1 二 问题分析 经过分析表结构,没有发现异常。 2.1 问题初步定位 $ perror 1265 MySQL error code MY-001265 (WARN_DATA_TRUNCATED): Data truncated for column '%s' at row %ld 进一步分析对于该表的存储过程、触发器等,发现 xxx.xxx_staffbasicinfo 表上建了8个触发器,其中有包括3个update类型触发器。 分析每个update类型触发器,发现xxx.xxx_STAFFBASICINFO_U 触发...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案