过去两年,云服务器被偷偷挖矿的情况越来越多。有的团队是月底收到账单才发现不对,有的是业务变慢后一查,才发现服务器上跑着一个和自家业务毫无关系的程序。阿里云是主流云平台之一,“阿里云挖矿”这类问题也经常被提起。这篇文章说清楚挖矿通常怎么进来、有什么表现,以及出了问题先查什么。

“阿里云挖矿”指的是哪两种情况
这个说法可能指两件事。一种是用户自己在阿里云上做挖矿业务。这是正常的资源使用,但要算清楚算力成本和电费,看收益能不能覆盖,同时留意平台服务条款和所在地区的合规要求。
另一种是攻击者入侵别人的云主机,装上挖矿程序,用受害者的CPU和带宽赚钱,账单却由资源所有者来付。这才是安全事件,也是企业最需要防的情况。下面说的都是这一种。
攻击一般从哪里进来
挖矿木马本身并不难写,难的是找到入口。公开通报的案例里,攻击者多半利用的是基础安全问题,而不是什么高难度技术。常见入口有这几类:
- 弱口令或泄露的SSH凭据:服务器密码太简单,或者私钥被误传到了公开位置。
- AccessKey泄露:密钥写进代码或配置文件,又被提交到公开仓库,扫描程序会自动抓取。
- 中间件未授权访问:Redis、Docker API、部分管理后台绑定了公网地址,又没有设置访问控制。
- 安全组规则过宽:管理端口对所有IP开放,等于门没关。
- 补丁长期不更新:已知漏洞一直没修,被自动化扫描工具批量利用。
两个典型案例
下面两个案例是按行业常见情况整理的示例,具体细节可以换成自己的实际数据。
案例一:测试环境的密钥泄露
某电商团队的开发人员调试接口时,把带有AccessKey的配置文件误提交到了公开代码仓库。几天后,扫描程序抓到了这份密钥,攻击者在该账号下新建了多台高配ECS实例挖矿。新实例最初没人注意,直到月底账单从每月数千元涨到数万元,财务提醒后,团队才开始查。
处理顺序是:先禁用旧密钥,生成新密钥;再删掉所有来源不明的实例;最后打开云安全中心告警。之后,团队改用密钥管理服务读取密钥,不再明文放在代码里。这件事的根子在流程缺少检查,技术上并没有什么特别难防的地方。
案例二:Redis暴露公网
某内容平台的Redis绑定了公网地址,又没有设置密码。攻击者通过未授权访问写入了定时任务。主机CPU长期超过90%,页面明显变慢,用户投诉也多了起来。运维排查时发现几个伪装成系统服务名的陌生进程,还有一条没人认领的计划任务。
团队先清理了异常任务和进程,又把Redis改成只监听内网地址,并配置了访问控制。但没法完全确定有没有留下后门,最后选择重装系统,再从干净镜像恢复业务。只删进程往往不够,入侵痕迹要查干净。
怎么尽早发现异常
挖矿程序会尽量隐藏自己,但它吃资源的特征很明显。CPU满载时,建议按这个顺序查:先看进程列表,再看网络连接,然后检查计划任务,最后核对账单。每一步都能排除一部分可能。
- CPU长期处于高位,夜里或没有业务流量的时段仍然满载。这时先查进程,别急着加配置。
- 出网流量明显增多,部分连接指向矿池地址。
- 进程列表里有名字怪异、占用高、路径不明的程序。
- crontab或系统服务里有来源不明的条目。
- 账单出现未登记的实例、地域或资源包。核对时要按资源逐项看,只看总额容易漏掉。
阿里云的云安全中心能做基线检查,并在异常出现时发出告警,帮团队在问题扩大前收到提示。但它只是辅助。资源监控和每月账单核对,还是需要有人定期做。
日常防范怎么做
- 管好密钥:用RAM子账号,按最小权限授权,定期轮换AccessKey。密钥不要写进代码或配置文件。如果已经提交过,就按泄露处理,不要只删掉最新一次提交。
- 收紧安全组:只开放业务需要的端口,管理端口限定为固定来源IP。
- 加强账号安全:关键账号开启多因素认证,禁用弱口令,尽量用密钥登录。
- 及时打补丁:定期更新操作系统和中间件,关闭Redis等服务的未授权访问。
- 设两道告警:费用预算告警和CPU使用率阈值告警都要配。前者盯账单,后者盯资源,两个都不能省。
- 提前写应急预案:发现异常后先隔离主机,保留日志等证据,再清除或重装,并检查是否有横向移动到其他机器。
小结
阿里云挖矿多数时候是云上资源被未授权使用。攻击手法大多很基础,问题通常出在密钥管理、端口暴露和补丁更新这些日常工作上。把这几项做扎实,再让账单和监控定期对一对,就能降低被挖矿的风险。