Spring Cloud Gateway集成Actuator的安全漏洞和解决方案

这篇具有很好参考价值的文章主要介绍了Spring Cloud Gateway集成Actuator的安全漏洞和解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Cloud Gateway是一个基于Spring Boot2.0和Spring WebFlux的API网关,它可以将请求转发到多个微服务并对请求进行路由、过滤和修改。Spring Cloud Gateway集成Actuator后可以提供更多的监控和管理功能,但是也可能导致安全漏洞。

概述:

最近线上环境出现一起安全事件,就是由于Spring Cloud Gateway集成Actuator导致被攻击,攻击者通过动态添加路由规则,导致系统出现异常。下面将详细介绍这一事件。

问题描述:

4月初,电商平台主链路中的会场商品列表页,出现偶发性的无法展示商品数据的情况,连续刷新几次页面必定会出现一次这种情况。

通过排查线上日志,发现部分接口请求失败,报错信息为:Index: 0, Size: 0。

进一步排查,发现是Gateway网关服务报错,原本Gateway网关服务有10个pod,其中2个pod自动重启过2次,并且报的都是上面的错误信息。

事件描述:

攻击者通过Spring Cloud Gateway暴露的Actuator接口,动态添加了一个 非法的路由规则,但是没有添加断言predicates(说明,正常情况下,断言是必须的)。

当用户请求流入到网关时,网关服务会去循环遍历路由规则,而在遍历到 非法的路由规则 时 ,由于找不到predicate断言,所以直接返回报错:“Index: 0, Size: 0”。

思考:若动态添加非法路由规则时,也添加了断言,那么问题的现象会是怎样的?
分析:可能所有请求都会被路由到了一个恶意网站上。由于路由规则具有较高的优先级,因此所有请求都会被路由到恶意网站,导致系统出现异常。

原因分析:

  1. Spring Cloud Gateway默认开启了Actuator的Endpoints,其中包含了许多可以动态修改Gateway配置的Endpoint接口。
  2. Gateway的动态路由是通过GatewayFilter和RoutePredicateFactory实现的,它们可以在运行时动态添加和删除路由规则。
  3. 攻击者通过Actuator的POST接口发送了一个添加路由规则的请求,该非法的路由规则,可能导致网关服务报错,也可能将所有请求都路由到恶意网站上。
    Actuator中创建路由规则的Endpoints,发送Post请求:/gateway/routes/{id_route_to_create}

解决方法:

临时解决方法:
对于被非法动态添加路由规则这个问题,临时的解决办法是,重启 Gateway 网关服务。

长期解决方法:

  1. 禁用不必要的Actuator Endpoints,比如要禁用/env接口,可设置: endpoint.env.enabled=false
  2. 引入Spring-Security模块,配置访问权限验证,访问Actuator接口时需要登录。
  3. Actuator访问接口使用独立端口,并配置不对外网开放。

总结:

Spring Cloud Gateway集成Actuator后可以提供更多的监控和管理功能,但也增加了安全风险。在使用过程中,需要注意限制访问权限和动态路由规则的范围,以避免类似的攻击事件发生。文章来源地址https://www.toymoban.com/news/detail-490424.html

到了这里,关于Spring Cloud Gateway集成Actuator的安全漏洞和解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Gateway集成sentinel进行网关限流

    本文使用版本如下:

    2024年02月09日
    浏览(38)
  • 框架安全-CVE 复现&Spring&Struts&Laravel&ThinkPHP漏洞复现

    中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等 1、开发框架-PHP-Laravel-Thinkphp 2、开发框架-Javaweb-St2-Spring 3、开发框架-Python-django-Flask 4、开发框架-Javascript-Nod

    2024年02月08日
    浏览(38)
  • Spring Cloud Gateway集成SpringDoc,集中管理微服务API

    Spring Cloud微服务集成SpringDoc,在Spring Cloud Gateway中统一管理微服务的API,微服务上下线时自动刷新SwaggerUi中的group组。 框架 版本 Spring Boot 3.1.5 Spring Cloud 2022.0.4 Spring Cloud Alibaba 2022.0.0.0 Spring Doc 2.2.0 Nacos Server 2.2.3 公共模块里的配置是之前文章中提到的内容,加了一个webmvc和we

    2024年04月28日
    浏览(28)
  • Spring Cloud Gateway集成Nacos作为注册中心和配置中心

    本篇文章将介绍Spring Cloud Alibaba体系下Spring Cloud Gateway的搭建,服务注册中心和分布式配置中心使用Nacos,后续将会持续更新,介绍集成Sentinel,如何做日志链路追踪,如何做全链路灰度发布设计,以及Spring Cloud Gateway的扩展等。 ​ Spring Boot,Spring Cloud,Discovery,Config等基础依

    2024年02月11日
    浏览(32)
  • CVE漏洞复现-CVE-2022-22947-Spring Cloud Gateway RCE

    微服务架构与Spring Cloud 最开始时,我们开发java项目时,所有的代码都在一个工程里,我们把它称为单体架构。当我们的项目的代码量越来越大时,开发的成员越来越多时,这时我们项目的性能以及我们开发的效率都会存在非常大的问题,所以对于这样的项目,我们需要把它

    2023年04月14日
    浏览(39)
  • Spring Cloud Gateway集成Sentinel 1.8.6及Sentinel Dashboard

    一、安装sentinel 1.下载地址:sentinel v1.8.6 2.启动sentinel dashboard,执行以下命令: java -Dcsp.sentinel.log.dir=D:xxxsentinellogs -Dserver.port=9217 -Dcsp.sentinel.dashboard.server=localhost:9217 -Dcsp.sentinel.heartbeat.client.ip=localhost -Dproject.name=sentinel-dashboard -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboar

    2024年02月11日
    浏览(39)
  • 【Spring Cloud Gateway】⑥SpringBoot3.x集成SpringDoc指南

    Spring Cloud Gateway 使用 Netty 作为嵌入式服务器,并基于响应式 Spring WebFlux 。做为微服务网关,多个微服务把 API 挂在 Gateway 上,如果查看某个 API 的 Swagger 还要去各个子微服务中去查看,就很不方便,如果能在 Gateway 上直接查看各个微服务的 API 文档,会方便很多,本文以截至

    2024年02月14日
    浏览(35)
  • Spring Security 6.x 系列【46】漏洞防护篇之安全相关的HTTP响应头

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月07日
    浏览(31)
  • 从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(六)(gateway篇)spring cloud gateway 远程漏洞原因升級到3.1.1完整配置

    Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)发生在Spring Cloud Gateway应用程序的Actuator端点,其在启用、公开和不安全的情况下容易受到代码注入的攻击。攻击者可通过该漏洞恶意创建允许在远程主机上执行任意远程执行的请求。 影响范围 Spring Cloud Gateway 3.1.1 Spring Cloud

    2023年04月08日
    浏览(29)
  • Spring Cloud Gateway集成Swagger实现微服务接口文档统一管理及登录访问

    本文将介绍如何在 Spring Cloud 微服务中使用 Swagger 网关来统一管理所有微服务的接口文档,并通过 Spring Security 实现登录后才能访问 Swagger 文档,以确保接口数据的安全访问。 在开始之前,需要假设你已经完成了 Spring Cloud Gateway 的相关配置,并且已经了解了基本的网关配置知

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包