>Java >java지도 시간 >SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법

SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법

WBOY
WBOY앞으로
2023-05-12 23:34:106791검색

1. 앞에 작성

현재 SpringBoot 프레임워크는 점점 더 널리 보급되고 있으며 대부분의 중소기업에서는 새로운 프로젝트를 개발하고 있습니다. 백엔드 언어가 Java를 사용하는 경우 SpringBoot가 첫 번째 선택입니다.

ruoyi와 같은 많은 오픈 소스 프레임워크에서.

왜인지 모르겠어요? 우리는 모두 이러한 프레임워크의 pom 파일에서 SpringBoot Actuator의 종속성을 찾을 것입니다. SpringBoot Actuator的依赖。

嘿,这Actuator估计很多人都没有真真实实使用过,但是就会出现在pom文件中;这样导致,在做一些安全漏洞测试的时候,会出现漏洞问题。

例如下面:

SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법

对于这些漏洞,我们开始修复喽!!!

2.问题描述

Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。

Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。

每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进行暴露,大部分应用选择HTTP。

好了,Actuator看起来还是挺好的,可以用来监控。不过大部分企业,估计都没咋用过,也就享受不到Actuator的好处了。

Actuator在带来方便的同时,如果没有管理好,会导致一些敏感的信息泄露;可能会导致我们的服务器,被暴露到外网,服务器可能会沦陷。那我们来看一下,会出现什么安全的问题?

3.安全问题

例如,我们可以访问:

http://localhost:7200/actuator/env

SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법

看到上面的信息了吗?哇,我们居然能看到数据库连接地址,账号密码等信息。

这些地址如果不加以控制,对于一些有技术基础的人员来说,这不得是一个很严重的漏洞?估计是t0级别的漏洞了。

对于这些,我们要如何进行控制呢?

4.禁止方法

在 llsydn-dev.properties 增加配置如下

management.endpoints.web.exposure.exclude=env,heapdump,threaddump,mappings

这样 env 就被禁止访问了。

然后我们再来访问一下比如:

SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법

好了,可以看到访问就出现404了,表示已经禁了。

5.完全禁用Actuator

对于上面的修改,其实已经可以实现禁止了env的方法,也就基本上都能控制到相应的接口信息,基本上也能做到了安全。

但是在做等保安全漏洞扫描的时候,还是会扫出来响应的漏洞,那其实,还是没有解决掉这个漏洞。那我们能不能完全禁止Actuator

아, 실제로 이 액추에이터를 사용해보지 않은 분들이 많을 것으로 추정되는데, 이는 pom 파일에 나타날 것입니다. 이로 인해 일부 보안 취약점 테스트를 수행할 때 취약점 문제가 발생할 수 있습니다.

예:

SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법

우리는 이러한 버그를 수정하기 시작했습니다! ! ! 🎜🎜2. 문제 설명🎜🎜Actuator는 응용 시스템의 자체 검사 및 모니터링을 위해 Springboot에서 제공하는 기능 모듈입니다. Actuator를 사용하면 개발자가 응용 시스템의 특정 모니터링 지표를 쉽게 모니터링할 수 있습니다. 보기, 통계 등 🎜🎜액추에이터의 핵심은 애플리케이션과 상호 작용을 모니터링하는 데 사용되는 엔드포인트입니다. Spring-boot-actuator에는 많은 엔드포인트(상태, 정보, 빈, 메트릭, httptrace, 종료 등)가 내장되어 있습니다. 우리는 자체 엔드포인트를 직접 확장합니다. 🎜🎜각 엔드포인트를 활성화하거나 비활성화할 수 있습니다. 엔드포인트에 원격으로 접근하려면 JMX나 HTTP를 통해서도 노출되어야 합니다. 대부분의 애플리케이션은 HTTP를 선택합니다. 🎜🎜알겠습니다. 액추에이터는 보기에도 좋고 모니터링용으로 사용해도 될 것 같습니다. 하지만 대부분의 기업에서는 한번도 사용해본 적이 없기 때문에 액추에이터의 장점을 누릴 수 없습니다. 🎜🎜액추에이터는 편리함을 제공할 뿐만 아니라, 잘 관리되지 않으면 일부 민감한 정보가 유출될 수 있으며 이로 인해 당사 서버가 외부 네트워크에 노출될 수 있으며, 무너질 수 있습니다. 그럼 어떤 보안 문제가 발생할지 살펴보겠습니다. 🎜🎜3. 보안 문제🎜🎜예를 들어 다음을 방문할 수 있습니다. 🎜
🎜http://localhost:7200/actuator/env🎜
🎜SpringBoot Actuator 무단 액세스 취약점 해결 방법🎜🎜위 정보를 보셨나요? 와, 실제로 데이터베이스 연결 주소, 계정 비밀번호 및 기타 정보를 볼 수 있습니다. 🎜🎜이 주소가 통제되지 않는다면 기술적인 기초가 있는 일부 사람들에게는 심각한 취약점이 되지 않을까요? T0 수준의 취약점으로 추정됩니다. 🎜🎜이것을 어떻게 제어하나요? 🎜🎜4. 금지 방법🎜🎜llsydn-dev.properties🎜
# 完全禁用actuator
management.server.port=-1
🎜에 다음 구성을 추가하면 env 접근이 금지됩니다. 🎜🎜그럼 다시 방문해 보겠습니다. 예: 🎜🎜SpringBoot Actuator 무단 액세스 취약점 방법 ? Repair🎜🎜자, 접속 시 404가 나타나는 것을 볼 수 있는데, 이는 금지되었음을 나타냅니다. 🎜🎜5. Actuator 완전 비활성화🎜🎜위의 수정에 대해서는 실제로 env를 비활성화하는 방법을 구현하는 것이 가능하므로 해당 인터페이스 정보를 기본적으로 제어할 수 있어 기본적으로 보안을 확보할 수 있습니다. 🎜🎜그러나 보안 취약점 스캔을 수행하면 해당 취약점이 계속 스캔됩니다. 실제로 이 취약점은 해결되지 않았습니다. 그러면 Actuator를 완전히 금지할 수 있나요? 🎜🎜대답은 당연히 그렇습니다! ! ! 🎜🎜예를 들어 다음 구성은 다음과 같습니다. 🎜rrreee🎜 이 구성을 사용하면 보안 취약점 스캔이 완료될 때 취약점이 스캔되지 않습니다! 🎜

위 내용은 SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제