현재 SpringBoot 프레임워크는 점점 더 널리 보급되고 있으며 대부분의 중소기업에서는 새로운 프로젝트를 개발하고 있습니다. 백엔드 언어가 Java를 사용하는 경우 SpringBoot가 첫 번째 선택입니다.
ruoyi와 같은 많은 오픈 소스 프레임워크에서.
왜인지 모르겠어요? 우리는 모두 이러한 프레임워크의 pom 파일에서 SpringBoot Actuator
의 종속성을 찾을 것입니다. SpringBoot Actuator
的依赖。
嘿,这Actuator
估计很多人都没有真真实实使用过,但是就会出现在pom文件中;这样导致,在做一些安全漏洞测试的时候,会出现漏洞问题。
例如下面:
对于这些漏洞,我们开始修复喽!!!
Actuator
是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。
每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进行暴露,大部分应用选择HTTP。
好了,Actuator
看起来还是挺好的,可以用来监控。不过大部分企业,估计都没咋用过,也就享受不到Actuator
的好处了。
Actuator
在带来方便的同时,如果没有管理好,会导致一些敏感的信息泄露;可能会导致我们的服务器,被暴露到外网,服务器可能会沦陷。那我们来看一下,会出现什么安全的问题?
例如,我们可以访问:
http://localhost:7200/actuator/env
看到上面的信息了吗?哇,我们居然能看到数据库连接地址,账号密码等信息。
这些地址如果不加以控制,对于一些有技术基础的人员来说,这不得是一个很严重的漏洞?估计是t0级别的漏洞了。
对于这些,我们要如何进行控制呢?
在 llsydn-dev.properties
增加配置如下
management.endpoints.web.exposure.exclude=env,heapdump,threaddump,mappings
这样 env 就被禁止访问了。
然后我们再来访问一下比如:
好了,可以看到访问就出现404了,表示已经禁了。
对于上面的修改,其实已经可以实现禁止了env的方法,也就基本上都能控制到相应的接口信息,基本上也能做到了安全。
但是在做等保安全漏洞扫描的时候,还是会扫出来响应的漏洞,那其实,还是没有解决掉这个漏洞。那我们能不能完全禁止Actuator
액추에이터
를 사용해보지 않은 분들이 많을 것으로 추정되는데, 이는 pom 파일에 나타날 것입니다. 이로 인해 일부 보안 취약점 테스트를 수행할 때 취약점 문제가 발생할 수 있습니다. 예:
우리는 이러한 버그를 수정하기 시작했습니다! ! ! 🎜🎜2. 문제 설명🎜🎜Actuator
는 응용 시스템의 자체 검사 및 모니터링을 위해 Springboot에서 제공하는 기능 모듈입니다. Actuator를 사용하면 개발자가 응용 시스템의 특정 모니터링 지표를 쉽게 모니터링할 수 있습니다. 보기, 통계 등 🎜🎜액추에이터의 핵심은 애플리케이션과 상호 작용을 모니터링하는 데 사용되는 엔드포인트입니다. Spring-boot-actuator에는 많은 엔드포인트(상태, 정보, 빈, 메트릭, httptrace, 종료 등)가 내장되어 있습니다. 우리는 자체 엔드포인트를 직접 확장합니다. 🎜🎜각 엔드포인트를 활성화하거나 비활성화할 수 있습니다. 엔드포인트에 원격으로 접근하려면 JMX나 HTTP를 통해서도 노출되어야 합니다. 대부분의 애플리케이션은 HTTP를 선택합니다. 🎜🎜알겠습니다. 액추에이터
는 보기에도 좋고 모니터링용으로 사용해도 될 것 같습니다. 하지만 대부분의 기업에서는 한번도 사용해본 적이 없기 때문에 액추에이터
의 장점을 누릴 수 없습니다. 🎜🎜액추에이터
는 편리함을 제공할 뿐만 아니라, 잘 관리되지 않으면 일부 민감한 정보가 유출될 수 있으며 이로 인해 당사 서버가 외부 네트워크에 노출될 수 있으며, 무너질 수 있습니다. 그럼 어떤 보안 문제가 발생할지 살펴보겠습니다. 🎜🎜3. 보안 문제🎜🎜예를 들어 다음을 방문할 수 있습니다. 🎜🎜http://localhost:7200/actuator/env🎜🎜🎜🎜위 정보를 보셨나요? 와, 실제로 데이터베이스 연결 주소, 계정 비밀번호 및 기타 정보를 볼 수 있습니다. 🎜🎜이 주소가 통제되지 않는다면 기술적인 기초가 있는 일부 사람들에게는 심각한 취약점이 되지 않을까요? T0 수준의 취약점으로 추정됩니다. 🎜🎜이것을 어떻게 제어하나요? 🎜🎜4. 금지 방법🎜🎜
llsydn-dev.properties
🎜# 完全禁用actuator management.server.port=-1🎜에 다음 구성을 추가하면 env 접근이 금지됩니다. 🎜🎜그럼 다시 방문해 보겠습니다. 예: 🎜🎜🎜🎜자, 접속 시 404가 나타나는 것을 볼 수 있는데, 이는 금지되었음을 나타냅니다. 🎜🎜5. Actuator 완전 비활성화🎜🎜위의 수정에 대해서는 실제로 env를 비활성화하는 방법을 구현하는 것이 가능하므로 해당 인터페이스 정보를 기본적으로 제어할 수 있어 기본적으로 보안을 확보할 수 있습니다. 🎜🎜그러나 보안 취약점 스캔을 수행하면 해당 취약점이 계속 스캔됩니다. 실제로 이 취약점은 해결되지 않았습니다. 그러면
Actuator
를 완전히 금지할 수 있나요? 🎜🎜대답은 당연히 그렇습니다! ! ! 🎜🎜예를 들어 다음 구성은 다음과 같습니다. 🎜rrreee🎜 이 구성을 사용하면 보안 취약점 스캔이 완료될 때 취약점이 스캔되지 않습니다! 🎜위 내용은 SpringBoot Actuator 무단 액세스 취약점을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!