DDoS 即分布式拒绝服务攻击已经存在很久了,臭名昭著且难以处理(与任何其他攻击一样)。顾名思义,DDoS 攻击会导致应用程序或服务因资源超出其容量而对用户不可用,并导致应用程序崩溃或无响应。DDoS 是 DoS 的一种形式,其中攻击来自多个来源(机器人),通常分布在各个地理位置。想象一下,您的手机在很短的时间内收到数千个垃圾电话,而其中一个合法电话正在尝试与您联系。您如何确保您参加合法的通话?
插播一条信息,最近开通了视频号,不到1000粉,无法申请认证,看到的同仁用你不写bug的小手点个关注,诚挚感谢🙏。
在 Kubernetes 环境中,当服务暴露于 Internet 时,DDoS 可能会从外部源攻击应用程序。对于在 Kubernetes 集群内获得立足点并希望利用恶意软件感染多个工作负载以进一步放大 DoS 攻击的攻击者,为了避免此类问题,您需要制定强大的零信任工作负载访问控制策略来限制横向移动。
为什么您应该为容器应用程序投资 DDoS 解决方案
在我们了解 DDoS 攻击的技术方面以及 Calico 如何帮助检测和缓解此类攻击之前,让我们先考虑一下它可能造成的损害。尽管 DDoS 攻击的目的不是直接窃取金钱、数据或安装勒索软件,但任何类型的应用程序停机都会间接转化为金钱损失。当团队已经承受多个安全警报的负担时,故障排除和缓解工作还会导致团队生产力下降。部署 DDoS 缓解解决方案的一些原因包括:
由于受战争影响地区的政治局势 DDoS 攻击有所增加。
云原生应用程序旨在在入站请求激增时自动扩展,从而导致更高的使用费用。
当恶意软件被成功植入以进行 DDoS 活动时,很难保护横向通信。
攻击者的 DoS 技术变得越来越老练。
DDoS 攻击是如何进行的?
威胁者使用各种技术作为 DDoS 攻击的一部分。他们可以操纵 TCP 等网络协议来设计 SYN 洪水攻击、基于 ICMP (ping 洪水) 的攻击、基于应用层 (HTTP) 的攻击或 DNS 放大攻击。这些攻击使线路(网络)充满大量数据包,导致路由过程最终崩溃并导致网络停机。虽然此博客可以提供有关传统 DDoS 攻击机制和类型的良好参考,但威胁行为者已开始针对云原生应用程序使用一些更新的技术。旨在根据用户需求自动扩展和缩减资源的云原生应用程序已成为一种被称为“Yo-yo 攻击”的新型 DoS 攻击。
基于 Kubernetes 的云原生应用程序中的Yo-yo攻击
对基于 Kubernetes 的应用程序进行的一种有趣且麻烦的攻击是 Yo-yo 攻击。每当应用程序的用户活动激增时,Kubernetes 就会像 EC2 实例一样,使用 pod 自动缩放器或集群自动缩放器机制自动扩展资源(pod、CPU 周期、内存等)。这促使攻击者生成非法请求,从而使企业最终因不必要的资源扩展而蒙受损失,而没有产生实际的业务收入。本文在学术研究中阐明了这一概念,并展示了如何将此类 DDoS 归类为 EDoS 或经济拒绝可持续性攻击。
使用 Calico 检测 Kubernetes 中的 DoS 攻击
Calico 嵌入到 Kubernetes 的网络层中,可以访问集群中所有网络流量的丰富的流日志(第 3 层和第 4 层)、应用程序层(第 7 层)日志和 DNS 日志。有了这些信息,我们就任何给定时间段内的正常流量建立了节点、Pod 和服务的基线行为。这些日志被进一步转发到 Elasticsearch,我们从中构建行为建模算法。每当出现与基线行为的偏差时,就会生成警报,通知用户有关偏差的情况。
Calico 有一个异常检测器列表,可以预测和检测拒绝服务攻击。其中一些是http_connection_spike、generic_dns, generic_l7、inbound service bytes
等异常值较高的探测器bytes_in
以及少数其他探测器。
如果您遭受 DDoS 攻击,CISA 的建议以及 Calico 如何提供帮助
作为一般规则,一旦您识别并检测到可能的 DDoS 攻击,您可以使用网络安全和基础设施安全局 (CISA) 提供的建议来执行 CISA 建议中的以下一些任务,以了解 DDoS 的性质攻击以及 Calico 如何帮助完成每项任务。
用于传播攻击的 IP 地址范围是多少?
借助 Calico,用户可以通过动态服务和威胁图直接从 UI 仪表板获取丰富的第 3 层、第 4 层、HTTP 和 DNS 流日志信息。这将有助于识别 IP 地址信息和相关上下文以进行修复工作。
查找针对某些正在运行的服务的特定攻击。
使用 Calico 广泛的容器安全工具,特别是在运行时进行异常检测,如果网络或容器上存在任何恶意活动,我们的警报功能可以为操作员提供有关任何即将发生的威胁的快速而详细的信息。
将服务器 CPU/内存利用率与网络流量日志和应用程序可用性相关联。
Calico 可以通过各种 Kibana 仪表板以及本地动态服务和威胁图来帮助用户获取 HTTP 流日志和应用程序级可见性,并以可视化方式表示流量和相关工作负载。将此与其他指标(例如本地云提供商的 CPU、内存利用率或任何传统的可观察工具)相结合,可以全面了解攻击场景,以开始缓解工作。
一旦了解了攻击,就可以实施缓解措施。
这是部署 Calico 安全策略的最重要步骤生效的地方,下一节将对此进行详细介绍。
直接对 DDoS 活动进行数据包捕获 (PCAP),或与安全/网络提供商合作获取 PCAP。分析 PCAP 以验证防火墙是否阻止恶意流量并允许合法流量通过
对于需要集成数据包捕获工具来执行 RCA 并在出现性能或安全问题时进行故障排除的团队来说,Calico 的动态数据包捕获是真正的救星。只需点击几下,您就可以根据您的环境和需求自定义捕获。
使用 Calico 响应 DDoS
由于我们正在处理 Kubernetes 中的 DDoS 攻击,因此我们将首先验证基本的 Kubernetes 网络策略是否可以帮助响应 DDoS 攻击。默认的 Kubernetes 网络策略无法执行两项对于阻止 Kubernetes 中的 DDoS 攻击至关重要的操作。
全局网络策略
用于策略执行的主机端点 (HEP)
Calico 提供这两个功能,当与 Global NetworkSets 和 XDP 卸载相结合时,我们可以在 DDoS 攻击导致中断或造成金钱损失之前有效阻止它。
在我们进入现实生活中如何逐步创建策略的示例之前,以下是对上述功能的简要描述:
Calico 全局网络策略
一种资源类型,可应用于任何类型的端点(在本例中为主机端点),以便可以为底层主机定义策略,而不管命名空间如何。
主机端点 (HEP)
部署 Kubernetes 工作负载的主机上的网络接口。我们可以将标签与这些端点一起使用,并在 Calico 网络策略中使用它们。
全局网络集
由单个或一系列 IP 地址或 CIDR 范围或域名组成的全局资源,可以从不属于 Calico 网络的任何网络发送或接收流量。与 Calico 网络策略结合使用。
XDP(eXpress 数据路径)
XDP是一种 Linux 内核功能,允许 BPF 程序很早就插入到 Linux 的数据包处理管道中。通过“XDP Offload”模式,Calico可以在发生 DDoS 攻击时提供最快的阻止性能损耗。
使用 Calico 逐步创建策略
第一步是使用主机的 IP 信息创建主机端点 (HEP)。
下一步是创建一个具有少量 IP CIDR 范围的全局网络集,如图所示。
最后创建全局网络策略。请注意我们如何使用之前在网络集中定义的相同标签。展望未来,该标签可以跨多个策略使用,甚至可以在命名空间网络策略中使用。我们还将 doNotTrack 标志设置为 true,这意味着这个特殊设置可以绕过 Linux conntrack 并在跟踪发生之前执行策略规则,这样我们就不会丢弃它。
使用 Calico 以工作负载为中心的 Web 应用程序防火墙 (WAF) 缓解 DDoS
Calico 利用 Envoy 使用 DaemonSet 部署 WAF。这在不使用服务网格方法的情况下消除了大量的复杂性。以工作负载为中心的 WAF 支持可以进一步增强应用程序的安全态势,以防范 DoS 攻击。传统 WAF 和 Calico 以工作负载为中心的方法之间的架构差异在于,可以检测并标记横向跨工作负载且未到达集群外围的数据包中 HTTP 标头中的任何异常情况。这使得团队不仅可以保护边缘的应用程序层,还可以保护 Kubernetes 集群内的应用程序层。
接下来的几个步骤描述了如何轻松地为 Calico 启用和部署以工作负载为中心的 WAF。
注意:我们的最新升级还支持直接从 Calico Manager UI 进行此配置。
结论
由于 Kubernetes 中的应用程序会带来同等甚至更大的 DDoS 攻击安全风险,因此组织需要新的方法来检测和缓解这些威胁。本博客阐述了 Kubernetes 中 DDoS 攻击的各种概念,以及使用 Calico 创建逐步缓解解决方案的一些示例。
推荐
随手关注或者”在看“,诚挚感谢!