【缺陷周话】第44期:Spring Boot 配置错误:不安全的 Actuator
字数 1083 2025-08-18 11:38:49

Spring Boot Actuator 安全配置指南

1. Spring Boot Actuator 概述

Spring Boot Actuator 是 Spring Boot 提供的一个用于应用监控和管理的模块,主要功能包括:

  • 健康检查
  • 应用审计
  • 运行状况收集
  • HTTP 请求追踪

Actuator 提供了多个内置端点(endpoints)来展示应用程序的监控信息,当配置不当时,攻击者可以轻易获取应用敏感信息。

2. 不安全 Actuator 配置的危害

当 Actuator 启用且权限控制不足时,攻击者可以访问默认端点获取以下敏感信息:

端点ID 暴露的信息
auditevents 应用暴露的审计事件(如认证进入、订单失败)
info 应用的基本信息
env 全部环境属性
health 应用程序的健康指标
loggers 配置的loggers信息
mappings 全部URI路径及其与控制器的映射关系
shutdown 关闭应用程序(需endpoints.shutdown.enabled=true)
trace 基本HTTP请求跟踪信息(时间戳、HTTP头等)

特别危险的是trace端点,可能泄露用户token、cookie等认证信息。

3. 不安全配置示例

3.1 缺陷配置

# 不安全的配置示例
endpoints.trace.sensitive=false

此配置表示访问trace端点不需要授权,攻击者可以直接获取HTTP请求信息。

3.2 检测工具

使用奇安信代码卫士等静态分析工具可以检测此类问题,会标记为中等风险的安全缺陷。

4. 安全配置方案

4.1 基本安全措施

禁用特定端点

# 禁用trace端点
endpoints.trace.enabled=false

选择性启用端点

# 先禁用全部端点
endpoints.enabled=false
# 然后只启用需要的端点
endpoints.metrics.enabled=true

4.2 使用Spring Security保护

  1. 添加安全依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 配置端点访问控制:
# 要求授权访问trace端点
endpoints.trace.sensitive=true

4.3 完整安全配置建议

  1. 禁用所有不必要端点
  2. 为必要端点启用认证
  3. 限制端点访问IP范围
  4. 修改默认端点路径(通过management.context-path
  5. 启用HTTPS保护传输数据

5. 最佳实践总结

  1. 最小化暴露原则:只启用业务确实需要的监控端点
  2. 强制认证:对所有敏感端点启用认证
  3. 定期审计:检查Actuator端点配置和访问日志
  4. 生产环境差异化配置:开发/测试环境与生产环境使用不同的安全配置
  5. 结合网络层防护:使用防火墙限制可访问Actuator端点的IP

通过以上措施,可以充分利用Actuator的监控功能,同时避免敏感信息泄露的风险。

Spring Boot Actuator 安全配置指南 1. Spring Boot Actuator 概述 Spring Boot Actuator 是 Spring Boot 提供的一个用于应用监控和管理的模块,主要功能包括: 健康检查 应用审计 运行状况收集 HTTP 请求追踪 Actuator 提供了多个内置端点(endpoints)来展示应用程序的监控信息,当配置不当时,攻击者可以轻易获取应用敏感信息。 2. 不安全 Actuator 配置的危害 当 Actuator 启用且权限控制不足时,攻击者可以访问默认端点获取以下敏感信息: | 端点ID | 暴露的信息 | |--------|------------| | auditevents | 应用暴露的审计事件(如认证进入、订单失败) | | info | 应用的基本信息 | | env | 全部环境属性 | | health | 应用程序的健康指标 | | loggers | 配置的loggers信息 | | mappings | 全部URI路径及其与控制器的映射关系 | | shutdown | 关闭应用程序(需endpoints.shutdown.enabled=true) | | trace | 基本HTTP请求跟踪信息(时间戳、HTTP头等) | 特别危险的是 trace 端点,可能泄露用户token、cookie等认证信息。 3. 不安全配置示例 3.1 缺陷配置 此配置表示访问 trace 端点不需要授权,攻击者可以直接获取HTTP请求信息。 3.2 检测工具 使用奇安信代码卫士等静态分析工具可以检测此类问题,会标记为中等风险的安全缺陷。 4. 安全配置方案 4.1 基本安全措施 禁用特定端点 : 选择性启用端点 : 4.2 使用Spring Security保护 添加安全依赖: 配置端点访问控制: 4.3 完整安全配置建议 禁用所有不必要端点 为必要端点启用认证 限制端点访问IP范围 修改默认端点路径(通过 management.context-path ) 启用HTTPS保护传输数据 5. 最佳实践总结 最小化暴露原则 :只启用业务确实需要的监控端点 强制认证 :对所有敏感端点启用认证 定期审计 :检查Actuator端点配置和访问日志 生产环境差异化配置 :开发/测试环境与生产环境使用不同的安全配置 结合网络层防护 :使用防火墙限制可访问Actuator端点的IP 通过以上措施,可以充分利用Actuator的监控功能,同时避免敏感信息泄露的风险。