我最近开始使用远程 Ubuntu 服务器进行开发和测试。然而托管服务提供商报告说正在运行加密挖掘过程,因此他不得不关闭服务器。
没有任何日志或任何可以识别该进程的数据,也没有任何可以帮助弄清楚发生了什么的东西。然后它又发生了,但这次他们捕获了以下内容:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
246369 redis 20 0 13928 11444 908 S 746.7 0.2 62801:13 /tmp/kmv --pool pool.hashvault.pro:80 --username TRTLv2TW8sjC5LmSpiDdRZ2ndnEwPRpJ9Lgz3vgGY2CTSLkLeKAUFMefEeT6idQBxzSLsXfAvAqfhH5zkxMM3sHu2RL8xh1n5Pg --password x --algorithm chukwa_v2
唯一开放的端口是 Redis 端口 6379。
admin@nicotine2:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
9200 DENY Anywhere
6379/tcp ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
9200 (v6) DENY Anywhere (v6)
6379/tcp (v6) ALLOW Anywhere (v6)
我检查时,找不到/tmp/kmv
任何文件夹。这已经是第二次发生了。
有什么线索、建议或建议可以避免这种情况吗?
答案1
如果您未启用身份验证,Redis 就会存在一个众所周知的远程代码执行漏洞。
本文包含更多有关您具体问题的信息。
答案2
真正好的问题是:您安装了什么?
您很有可能安装了受此加密货币挖矿软件感染或易受其攻击的应用程序。这也可能发生在Docker 镜像。
因此,请卸载所有内容(或者重新安装空白映像可能更好),并在安装内容时监视您的服务器。安装受感染的加密挖掘软件时,您应该会看到巨大的 CPU 峰值。
编辑:如果您安装了较旧且易受攻击的 ElasticSearch 版本(或非官方 Docker 映像),那么答案非常明显:安装最新的、官方的和安全修补的版本。
编辑2:TheHermit 在这里给出了正确的答案,因为它是承载加密挖掘漏洞的 redis 进程。
答案3
好吧,对于允许从任何地方在端口 22 上使用 SSH 的人来说,这是一种安全风险,建议将其限制为用于管理的 IP,并将默认端口 22 更改为更高范围的端口。我们需要查看服务器的更多进程,Redis 应该配置 Auth。