阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

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:002357
用户头像

发布了 376 篇内容, 共 200.4 次阅读, 收获喜欢 949 次。

关注

评论

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

图像检索(image retrieval)

Geek_e369a5

图像搜索 图像检索

LeetCode-168. Excel表列名称(java)

bug菌

LeetCode 7月月更

Lombok使用引发的血案

技术小生

7月月更

多年锤炼,迈向Kata 3.0 !走进开箱即用的安全容器体验之旅| 龙蜥技术

OpenAnolis小助手

开源 容器 云原生 龙蜥技术 Kata Containers

Python|字符串操作

AXYZdong

7月月更

Numpy 的仿制 2

祖维

c slice Numpy

【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子

萧然🐳

游戏开发 Unity ScrollView 7月月更 UGUI

什么是低代码开发?

AIRIOT

低代码 物联网 低代码,项目开发

TCP两次挥手,你见过吗?那四次握手呢?

C++后台开发

网络编程 网络协议 TCP/IP 后端开发 C++开发

深入JS中几种数据类型的解构赋值细节

猪痞恶霸

前端 js ES6 7月月更

2022年国内云管平台厂商哪家好?为什么?

行云管家

云计算 云管平台 云管平台厂商

智捷云——元宇宙综合解决方案服务商

智捷云

区块链 元宇宙 智捷云 区块链技术开发

Python 入门指南之使用 Python 解释器

海拥(haiyong.site)

7月月更

PingCode 性能测试之负载测试实践

PingCode研发中心

软件测试 PingCode

OPPO 小布预训练大模型揭秘:可大规模工业化应用的十亿级模型

OPPO小布助手

AI 智能助手 预训练模型 预训练

31年前的Beyond演唱会,是如何超清修复的?

字节跳动视频云技术团队

容器环境minor gc异常频繁分析

wgy

Java minor gc

科普达人丨一文看懂阿里云的秘密武器“神龙架构”

阿里云弹性计算

云计算 虚拟化 资源管理 神龙架构

如何实现一个延时队列 ?

领创集团Advance Intelligence Group

延时队列 Redis 数据结构 redis 底层原理

产品好不好,谁说了算?Sonar提出分析的性能指标,帮助您轻松判断产品性能及表现

龙智—DevSecOps解决方案

华为云数据库DDS产品深度赋能

程思扬

数据库 华为云 DDS

uni-app与uviewUI实现仿小米商城app(附源码)

优秀的李

小程序 uniapp 7月月更 uviewui

同事悄悄告诉我,飞书通知还能这样玩

Jianmu

自动化 建木CI 飞书通知 定时

太方便了,钉钉上就可完成代码发布审批啦!

阿里云云效

云计算 阿里云 钉钉 jenkins 代码

五千字讲清楚团队自组织建设 | Liga 妙谈

LigaAI

团队管理 个人提升 敏捷开发管理 LigaAI 自组织协作

一加10 Pro和iPhone 13怎么选?

Geek_8a195c

DataKit——真正的统一可观测性 Agent

观测云

华为云ModelArts的使用教程(附详细图解)

逝缘~

华为 华为云 7月月更

被忽视的问题:测试环境配置管理

老张

软件测试 测试环境治理

【一库】vueuse:我不许身为vuer,你的工具集只有lodash!

摸鱼的春哥

Vue 前端 Vue3 7月月更

第十八届IET交直流输电国际会议(ACDC2022)于线上成功举办

E科讯

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