【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Netflix:微服务架构中的应用程序 DDoS 防护

  • 2017-08-03
  • 本文字数:1188 字

    阅读完需:约 4 分钟

日前,Netflix 发布了一篇博文,阐述了在微服务架构中缓解应用程序 DDoS 攻击的策略。该博文概要阐述了如何识别触发这种攻击的请求,如何使用开源的 Repulsive Grizzly Cloud Kraken 框架进行测试,最后,还提供了保护系统的一些最佳实践。

Netflix 应用程序安全专家 Scott Behrens 与产品和应用程序安全主管 Bryan Payne 首先指出,微服务架构特别容易受到应用程序 DDoS 攻击,这是因为频繁的 API 调用会导致服务周围产生多个网络跳跃( network hops),很容易导致系统攻击自身:

“微服务架构中的单一请求可能会生成数以万计的复杂中间层和后端服务调用。”

这些应用程序 DDoS 攻击带来的第一个挑战是识别。有些看起来像是用户合法的 API 调用,当这种调用即将引发大量内部资源消耗时,如何及时检测出来?

他们列出的首要策略之一就是确定 API 调用需要多长时间。这里我们不会监控前端的请求时间,这有可能会带来误报,监控后端服务的请求时间更为有利。然后对这些请求进行逆向工程,以确定哪种原始 API 调用可能会触发它。

当开发人员找寻出这些 API 调用时,它是一个查看请求本身的过程,并找出可以使其更为耗时的方法。比如,我们可以扩大搜索请求中的范围参数,以获得更大的结果集。在确定是否找到了正确的请求时,可以使用错误指示器(indicator),比如速率限制和异常,或简单地增加延迟。

一旦开发人员确定了这些请求,我们建议使用 Repulsive Grizzly (一个应用层 DDoS 测试框架)来运行它们。它并非一个识别工具,它会针对被测系统触发这些请求,从而提供了一种简化测试过程的方法。

他们还引入了 Cloudly Kraken,这是一个开源的 AWS 测试工具,有助于在全球范围内协调测试运行。这是通过管理一组可扩展的跨区域 AWS 实例完成的,每个实例都运行 Repulsive Grizzly 测试套件。它还提供时间同步功能,确保测试并行运行。

一旦请求被识别并通过测试验证,我们会建议采取以下缓解策略:

  • 生成这样的一种架构,最大限度减小微服务之间的依赖关系。如果一个服务失败,理想状况下,它应该实现故障隔离,而不会影响其他服务。
  • 了解服务队列和服务请求。例如,限制批量大小或请求的对象。
  • 提供从后端服务到 Web 应用程序防火墙的反馈环路。这为它提供了在 API 调用时下游资源利用率的额外信息,在很多 Web 应用程序防火墙的部署中,它只会监控边缘(edge)服务器,无法得到请求对 API 网关的影响。
  • 监视缓存未命中,多数情况下可能是因为高速缓存未正确配置。
  • 利用客户端的各种弹性模式,如断路器和超时设定。

完整的博文可以点此处在线阅读,在文章中作者通过案例研究深入分析了该主题。

查看英文原文: Netflix: Application DDoS Protection in Microservice Architectures


感谢张卫滨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-08-03 19:001978
用户头像

发布了 368 篇内容, 共 170.3 次阅读, 收获喜欢 939 次。

关注

评论

发布
暂无评论
发现更多内容

Programming Abstractions in C阅读笔记:p248-p253

codists

2024-01-24:用go语言,已知一个n*n的01矩阵, 只能通过通过行交换、或者列交换的方式调整矩阵, 判断这个矩阵的对角线是否能全为1,如果能返回true,不能返回false。 我们升级一下:

福大大架构师每日一题

福大大架构师每日一题

提高Nginx网络吞吐量之buffers优化教程

百度搜索:蓝易云

nginx 云计算 运维 云服务器 buffers

应用监控 eBPF 版:实现高效协议解析的技术探索

阿里巴巴云原生

阿里云 云原生 可观测

如何从 Jira 成功迁移到极狐GitLab,看这个就够了!

极狐GitLab

Live Home 3D Pro for Mac(苹果电脑3D室内家居设计软件)

Rose

Mac软件 Live Home 3D Pro 家居设计软件 Live Home 室内设计

左耳听风 - 分布式架构「读书打卡 day 14」

Java 工程师蔡姬

读书笔记 程序员 个人成长 分布式 职业发展

阿里云 SAE 2.0 正式商用丨云原生 2023 年 12 月产品技术动态

阿里巴巴云原生

阿里云 云原生

《Java核心编程》PDF

程序员李木子

听GPT 讲Rust源代码--compiler(28)

fliter

10分钟白嫖一套监控系统

Yestodorrow

可观测性 用户体验 网站监控 # 监控系统

Apache Dubbo 下一代云原生微服务挑战赛启动报名!五大赛题 50 万奖金池

阿里巴巴云原生

Apache 阿里云 云原生 dubbo

mac系统u盘启动盘制作教程,更新至macOS Sonoma 14

Rose

mac系统

C# Break 和 Continue 语句以及数组详解

小万哥

C# 程序人生 编程语言 软件工程 后端开发

Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制

阿里巴巴云原生

阿里云 云原生 Koordinator

使用navicat误删mongodb数据库 能够找回吗?

百度搜索:蓝易云

mongodb Linux 运维 云服务器 navicat

CDP技术系列(一):使用bitmap存储数十亿用户ID的标签或群体

京东科技开发者

钉钉飞书的AI大战,一场繁花还是一地鸡毛?

脑极体

AI

写作,写作,先写后作

zhumingwu

百万并发!API 网关抗住了亚运会流量高峰

阿里巴巴云原生

阿里云 云原生

云原生网关哪家强:Sealos 网关血泪史

阿里巴巴云原生

阿里云 云原生 Sealos

Kube Queue:Kubernetes 任务排队的利器

阿里巴巴云原生

阿里云 Kubernetes Kuber 云原生

CentOS7下通过sshfs挂载sftp资源教程

百度搜索:蓝易云

centos 运维 云服务器 sftp sshfs

数值计算: 精度、溢出、舍入

西格玛

百度智能云千帆AppBuilder新手指南

AI大咚咚

AI API LLM AI原生应用

uniapp+unicloud开发一个网页端,小程序端,APP端,桌面端的博客CMS系统——万能的三三

万能的三三

JavaScript 小程序 uni-app CMS 博客

期待已久!阿里云容器服务 ACK AI 助手正式上线

阿里巴巴云原生

阿里云 容器 云原生

DRM音频格式转换好帮手-NoteBurner iTunes DRM Audio Converter 兼容M1和macos14系统

Rose

DRM 音频转换器

左耳听风 - 时间管理「读书打卡 day 15」

Java 工程师蔡姬

读书笔记 程序员 个人成长 时间管理 职业发展

CDP技术系列(二):ClickHouse+Bitmap实现海量数据标签及群体组合计算

京东科技开发者

《凤凰架构:构建可靠的大型分布式系统》PDF

程序员李木子

Netflix:微服务架构中的应用程序 DDoS 防护_架构_Andrew Morgan_InfoQ精选文章