Apache Shiro 配置自查
Apache Shiro 的记住我机制曾是多起反序列化问题的入口:它把登录状态序列化、加密后写入客户端 Cookie,服务端收到后解密并反序列化还原对象。如果密钥使用默认值或配置不当,攻击者就可以构造恶意序列化数据交给服务端还原,从而触发代码执行。自查因此聚焦三件事:组件版本与补丁状态、记住我功能是否真的需要、以及密钥是否自定义并能轮换。
基本信息
| 自查内容 | 组件版本、记住我是否启用、密钥来源与管理方式 |
|---|---|
| 处置方式 | 按官方公告升级到修复版本;不需要则关闭该功能 |
| 加固要求 | 自定义密钥并制定轮换计划,严格执行官方文档步骤 |
| 报告口径 | 只写处置状态与验证结论,不复述密钥与配置细节 |
典型使用场景
- 统一认证框架:多个业务系统共用 Shiro 做登录与权限
- 历史系统维护:早期版本长期未升级,补丁状态不明
- 功能冗余:实际不需要自动登录却仍启用了记住我
- 密钥沿用:部署时复制配置模板,密钥未做替换
- 第三方集成:外部系统对接时替换了配置但未同步加固
自查步骤
自查步骤
1. 清点应用中 Shiro 的版本与相关配置项
2. 确认是否启用记住我功能,以及密钥的来源与管理方式
3. 对照官方安全公告确认当前版本是否为修复版本
4. 不需要该功能的应用直接关闭,减少暴露面
5. 记录:应用清单、升级状态、密钥管理方式与责任人核查项与处置
| 核查项 | 现状判定 | 处置方向 |
|---|---|---|
| 组件版本 | 是否为公告声明的修复版本 | 升级并复查内嵌依赖 |
| 记住我功能 | 是否实际被业务使用 | 不使用则关闭,减少入口 |
| 密钥来源 | 是否使用默认值或模板值 | 替换为随机密钥并纳入密钥管理 |
| 密钥轮换 | 是否有轮换记录 | 制定轮换计划并验证兼容性 |
密钥与具体配置细节不要写入报告正文:报告只给出处置状态与验证结论,细节另行走受控渠道沟通。