Actuator 的 REST 接口
Actuator监控分成两类:原生端点和用户自定义端点;自定义端点主要是指扩展性,用户可以根据自己的实际应用,定义一些比较关心的指标,在运行期进行监控。
原生端点是在应用程序里提供众多 Web 接口,通过它们了解应用程序运行时的内部状况。原生端点又可以分成三类:
应用配置类:可以查看应用在运行期的静态信息:例如自动配置信息、加载的springbean信息、yml文件配置信息、环境信息、请求映射信息;
度量指标类:主要是运行期的动态信息,例如堆栈、请求连、一些健康指标、metrics信息等;
操作控制类:主要是指shutdown,用户可以发送一个请求将应用的监控功能关闭。
Spring boot Actuator 1.X 提供了 13 个接口,具体如下表所示:
今天安全部门漏扫的时候 扫出了两个漏洞:
1. env
http://ip:8080/actuator/env
GET 请求 /env 会直接泄露环境变量、内网地址、配置中的用户名等信息;当程序员的属性名命名不规范,例如 password 写成 psasword、pwd 时,会泄露密码明文;
2.heapdump
Heapdump地址为(60M大小):
https://ip:端口/actuator/heapdump
访问网站的/actuator/heapdump接口,下载返回的GZip 压缩 堆转储文件,使用通过VisualVM/Android studio 加载,通过泄露站点的内存信息,查看到后台账号信息和数据库账号。
修复
Spring Boot提供了安全限制功能。比如要禁用/env /heapdump接口,则可设置yml如下:
# Tomcat
server:
port: 8080
management:
endpoint:
heapdump:
enabled: false # 启用接口关闭
env:
enabled: false # 启用接口关闭
重启 访问一下: