Maison  >  Article  >  Java  >  Comment corriger la vulnérabilité d'accès non autorisé de SpringBoot Actuator

Comment corriger la vulnérabilité d'accès non autorisé de SpringBoot Actuator

WBOY
WBOYavant
2023-05-12 23:34:106766parcourir

1. Écrit devant

À l'heure actuelle, le framework SpringBoot est de plus en plus répandu et la plupart des petites et moyennes entreprises développent de nouveaux projets. Lorsque le langage back-end utilise Java, SpringBoot est le premier choix.

Dans de nombreux frameworks open source, tels que : ruoyi, ceux-ci.

Je ne sais pas pourquoi ? Nous retrouverons tous les dépendances de SpringBoot Actuator dans les fichiers pom de ces frameworks. SpringBoot Actuator的依赖。

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

例如下面:

Comment corriger la vulnérabilité daccès non autorisé de 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

Comment corriger la vulnérabilité daccès non autorisé de SpringBoot Actuator

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

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

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

4.禁止方法

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

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

这样 env 就被禁止访问了。

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

Comment corriger la vulnérabilité daccès non autorisé de SpringBoot Actuator

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

5.完全禁用Actuator

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

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

Hé, on estime que de nombreuses personnes n'ont pas réellement utilisé cet Actuator, mais il apparaîtra dans le fichier pom, cela entraînera des problèmes de vulnérabilité lors de tests de vulnérabilité de sécurité.

Par exemple :

Comment corriger la vulnérabilité d'accès non autorisé de SpringBoot Actuator

Nous commençons à corriger ces bugs ! ! ! 🎜🎜2. Description du problème🎜🎜Actuator est un module fonctionnel fourni par Springboot pour l'introspection et la surveillance du système d'application. Avec l'aide d'Actuator, les développeurs peuvent facilement surveiller certains indicateurs de surveillance du système d'application. Vue, statistiques, etc. 🎜🎜Le cœur d'Actuator est le point de terminaison, qui est utilisé pour surveiller les applications et les interactions. Spring-boot-actuator a intégré de nombreux points de terminaison (santé, informations, beans, métriques, httptrace, arrêt, etc.), et permet également. Nous étendons nous-mêmes nos propres points de terminaison. 🎜🎜Chaque point de terminaison peut être activé et désactivé. Pour accéder à Endpoint à distance, il doit être exposé via JMX ou HTTP. La plupart des applications choisissent HTTP. 🎜🎜D'accord, Actuator a l'air plutôt bien et peut être utilisé pour la surveillance. Cependant, la plupart des entreprises ne l'ont probablement jamais utilisé, elles ne peuvent donc pas profiter des avantages de Actuator. 🎜🎜Actuator apporte non seulement de la commodité, mais s'il n'est pas bien géré, cela entraînera la fuite de certaines informations sensibles, ce qui pourrait exposer notre serveur au réseau externe et le serveur ; peut s'effondrer. Voyons donc quels problèmes de sécurité vont survenir ? 🎜🎜3. Problèmes de sécurité🎜🎜Par exemple, nous pouvons visiter : 🎜
🎜http://localhost:7200/actuator/env🎜
🎜Comment corriger la vulnérabilité d'accès non autorisé de SpringBoot Actuator🎜🎜Avez-vous vu les informations ci-dessus ? Wow, nous pouvons réellement voir l'adresse de connexion à la base de données, le mot de passe du compte et d'autres informations. 🎜🎜Si ces adresses ne sont pas contrôlées, cela ne constituerait-il pas une vulnérabilité sérieuse pour certaines personnes ayant des connaissances techniques ? On estime qu’il s’agit d’une vulnérabilité de niveau T0. 🎜🎜Comment pouvons-nous les contrôler ? 🎜🎜4. Méthode d'interdiction🎜🎜Ajoutez la configuration suivante dans llsydn-dev.properties🎜
# 完全禁用actuator
management.server.port=-1
🎜De cette façon, l'accès env sera interdit. 🎜🎜Ensuite, revenons, par exemple : 🎜🎜Réparation de vulnérabilité d'accès non autorisé de l'actionneur SpringBoot 🎜🎜D'accord, vous pouvez voir que 404 apparaît lors de l'accès, indiquant qu'il a été banni. 🎜🎜5. Désactiver complètement l'actionneur🎜🎜Pour la modification ci-dessus, il est en fait possible d'implémenter la méthode de désactivation de l'environnement, de sorte que les informations d'interface correspondantes puissent être fondamentalement contrôlées et que la sécurité puisse être fondamentalement assurée. 🎜🎜Mais lors de l'analyse des vulnérabilités de sécurité, la vulnérabilité correspondante sera toujours analysée. En fait, cette vulnérabilité n'a pas été résolue. Alors pouvons-nous interdire complètement Actuator ? 🎜🎜La réponse est définitivement oui ! ! ! 🎜🎜Par exemple, la configuration suivante : 🎜rrreee🎜Avec cette configuration, lorsque l'analyse des vulnérabilités de sécurité est effectuée, la vulnérabilité ne sera pas analysée ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer