Blog

「 DEVOPS 」 二月 10, 2020

### "寄生"于 Docker 的病毒 - Kinsing

文章字数 2.4k 阅读约需 2 mins. 阅读次数 0

- Docker
- Linux
- Shell

> 原创发表于 DavidZ Blog，遵循 CC 4.0 BY-NC-SA 版权协议，转载请附上原文出处链接及本声明。

## ¶前言

2020 年开年不顺，2019 新型冠状病毒肺炎爆发，从年三十居家隔离到了正月十五，没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字，姑且这样称呼)。

## ¶发现

偶然看了看服务器状态，发现 CPU 占用一直保持在 100%上下，有些蹊跷。

难道是我的博客访问量暴增？？？那是当然不可能的，然后我去看了看Portainer看了看，果然，

这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器，CPU 占用 100%。

简单看了看容器里面的进程表，第一个运行了一个 shell 脚本，这个病毒就是这个脚本下载启动的关键，我打开看了看，也没看懂，大概是下载了几个可执行文件。第二个是 cron，这个是定时脚本，我猜应该是病毒定时检查一下运行情况？第三个好像是个守护进程，第四个应该是用于容器保持，第五个在网上能搜到，是个挖矿的程序。

无聊的我还简单看了看这个脚本的服务器 IP，

难道是俄罗斯大佬？？？

这个时候我突然想起来，前几天为了调试certbot的 Dockerfile, 我直接打开了 Docker 的远程访问，在默认的情况下是没有任何加密措施的。

这样，就真相大白了，这个病毒通过未加密的接口，在我的服务器上运行了挖矿的容器来盈利，同时也占用了服务器全部的 CPU😢.

## ¶处理

Kinsing 病毒还是很良心的（至少我遇到的这个是），把自己”关“在了容器里面，反正后来我也没有在别的地方发现相关文件。

所以处理起来也简单，

1. 删掉容器和镜像
2. 关闭 Docker 远程访问即可。如果不想关闭的话也可以用 https 的方式加密。

## ¶小想法

其实这个 Kinsing 病毒实现起来还是很简单的，

1. 扫描全网的 2375 这个默认端口
2. 用 Docker API 连接并部署容器
3. 执行脚本运行挖矿程序

突然有一个邪恶的想法，一台机器一天就算 1 毛钱好啦，哈哈哈，但是违法的事情不能做呀😄。

大家一定要注意呀，时刻谨记服务器安全，不要随意开放服务器端口。

留言
0%