场景
- 服务器:阿里云
- 容器化平台:docker (docker-compose)
- 容器:spring boot 项目
一、问题
- 部署的业务卡顿,服务器CPU异常占用接近100%
二、原因
- 服务器被而且运行挖矿程序
三、解决方案
1、控制台处理
阿里云–控制台–云安全中心–检测响应–安全警告—找到恶意挖矿告警–处理–立即处理(不处理5天后服务器回关停
)
2、 清除与防护
1. 紧急处理:停止挖矿进程
- 查找并终止
xmrig
进程 - 删除恶意文件
2. 清理被感染的容器
- 停止并删除容器
- 检查镜像是否被污染
3. 防护措施:防止再次被入侵
- 使用最小化镜像
- 限制容器资源
- 禁止容器内运行可疑进程
- 监控容器行为
- 避免暴露 Docker API
4. 排查入侵来源
- 检查 Docker 日志
- 检查宿主机是否被入侵
- 检查 Dockerfile 是否被篡改
四、实战
Step 1:检查服务器是否被植入挖矿程序
ps aux | grep -E "xmrig|minerd|cpuminer|c3pool"
多行返回记录表示系统被感染,下图表示系统未被感染
Step 2:删除被感染的文件
find / -name "*xmrig*" -exec rm -rf {} \;
find / -name "*c3pool*" -exec rm -rf {} \;
Step 3:关闭docker api端口
- 这里作者只关闭了安全组里的2375和2376,有兴趣的小伙伴可以参考
Step 4:改造容器:防止再次被入侵
- docker-copmose.yaml 中加入如下代码
cap_drop:
- ALL # 移除所有 Linux Capabilities
read_only: true # 只读文件系统
tmpfs: # 仅允许临时目录写入
- /tmp
deploy:
resources:
limits:
cpus: '1' # 限制最多使用 1 个 CPU 核心
memory: 10G # 限制内存为 10G
Step 5:删除感染容器和镜像后,重新创建容器
docker-compose --compatibility up -d --build