springboot actuator 漏洞修复实践
2023-09-04 本文已影响0人
云中小鱼
- Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用
- 这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过HTTP 和 JMX 访问
- 因为暴露内部信息的特性,Actuator 也可以和一些外部的应用监控系统整合(Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等)
- 在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息
- 本文着重于介绍在开启Actuator情况下,且服务有接入Prometheus、k8s健康检查情况下配置的实践
一、springboot 2.0
- 示例修改如下
management:
endpoint:
env:
keys-to-sanitize: non
health:
show-details: always
endpoints:
web:
base-path: /
exposure:
include: health, prometheus # 开放/health、/prometheus接口
- 这种情况下仅将/health、/prometheus接口开放,用于Prometheus、k8s健康检查
二、springboot 1.5
- 示例修改如下
management:
security:
enabled: false
endpoints:
web:
base-path: /
endpoints:
# 禁用端点
enabled: false
beans:
enabled: false
# 开放/prometheus接口
prometheus:
enabled: true
# 开放/health接口
health:
enabled: true
- 这种情况下仅将/health、/prometheus接口开放,用于Prometheus、k8s健康检查
- “management.security.enabled” 有部分教程建议设置为“true”,我这边实践的结果是,设置为true后,调用/prometheus接口会报“full authentication is required to access this resource”错误,无法正常获取到信息