1. Spring Boot Actuator信息泄露风险深度解析
作为Java开发者,我们都习惯使用Spring Boot Actuator来监控应用状态,但很多人可能没意识到,一个简单的配置失误就可能让敏感数据完全暴露。去年我在审计某金融系统时,就发现因Actuator配置不当导致数据库凭证泄露的典型案例。让我们从攻击者视角看看这些漏洞的严重性。
1.1 端点暴露的安全隐患
问题通常始于application.properties中的这行配置:
properties复制management.endpoints.web.exposure.include=*
这相当于把家里所有房门钥匙都挂在门口。Actuator默认提供13个监控端点,包括:
- /env:完整环境变量(含数据库密码)
- /heapdump:JVM内存快照(可提取敏感数据)
- /mappings:所有Controller路由信息
- /prometheus:应用性能指标数据
我曾用Postman测试过某企业的测试环境,通过/env直接获取到:
json复制{
"spring.datasource.password": {
"value": "Jdbc#1234",
"origin": "class path resource [application.yml]:15:20"
}
}
这种明文密码配合内网SSH密钥泄露,攻击者可以长驱直入。
1.2 生产环境正确配置方案
安全配置应该遵循最小权限原则:
properties复制# 只开放健康检查端点
management.endpoints.web.exposure.include=health,info
# 强制开启认证
management.endpoint.health.roles=ACTUATOR
management.security.enabled=true
# IP白名单限制
management.server.address=127.0.0.1
如果是Spring Boot 2.3+版本,更推荐:
yaml复制management:
endpoint:
health:
show-details: when_
