我是 printf520 提供今日热榜 API 的博主, Redis 感染了自动化挖矿蠕虫。目前已经修复

2019-07-19 12:16:56 +08:00
 timeromantic

首先谢谢发帖告知我 API 感染挖矿病毒的 V 友。 @zpfhbyx

事情围观: https://www.v2ex.com/t/584216#reply23 api 文档: https://www.v2ex.com/t/578957#reply6

目前已经做了修复处理

感染原因如下:

Redis 默认情况下,会绑定在 0.0.0.0:6379,在没有利用防火墙进行屏蔽的情况下,将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下利用 Redis 的相关方法,可以成功将自己的公钥写入目标服务器的 ~/.ssh 文件夹的 authotrized_keys 文件中,进而可以直接登录目标服务器;如果 Redis 服务是以 root 权限启动,可以利用该问题直接获得服务器 root 权限。

经过对捕获的事件进行分析,整个入侵流程大概是包含以下几个环节:

Redis 服务加固

8889 次点击
所在节点    程序员
52 条回复
Hopetree
2019-07-20 00:53:44 +08:00
我服务器的端口连 MySQL 的都不开,redis 的更不开,要用的时候可以开一下用一下,感觉挺方便啊
ericgui
2019-07-20 01:16:28 +08:00
@cmlanche 使用密码链接 redis 也会导致被黑吗?
Kinnice
2019-07-20 01:28:52 +08:00
@1iuh 调用他 API 的用户应该在 json 解析那一步就会报错了,应该影响不到安全问题,好奇心手动执行除外。
Kinnice
2019-07-20 01:30:26 +08:00
@Kinnice 这里的报错指这个数据本来应该是一个数的,而这里变成了一个链接
imycc
2019-07-20 05:05:48 +08:00
@fuxkcsdn
-p 6379:6379 是将容器的 6379 映射到主机上
容器本身是监听了容器自己的 127.0.0.1 的(假设,我没注意过),但是映射到主机上时如果没有指定 host ip,就相当于在主机外网的 6379 端口上开了个 redis 服务。
imycc
2019-07-20 05:08:44 +08:00
使用 docker 或者使用 docker-compose,`-p`跟`--ports`如果没有必要就不要随便用~

只暴露那些需要外部访问的即可,同个机器上的调用可以用 link 来做。
如果需要暴露端口,有机房内网的话最好只是开在内网上。开到外网的话注意加上白名单。
bghtyu
2019-07-20 08:46:49 +08:00
docker 的 -p 如果直接 6379:6379 是会默认绑定 0.0.0.0 的,而且还会自动打开防火墙的这个端口,不注意很容易被坑的,必须要-p 127.0.0.0:6379:6379 这样用才行
tailf
2019-07-20 10:14:01 +08:00
这不是 redis 漏洞,是楼主不会做运维
lozzow
2019-07-20 10:30:29 +08:00
@kzfile 咋感觉在黑巨硬呢🌚
timeromantic
2019-07-20 11:48:03 +08:00
@tailf 哈哈,开发还是要多掌握一点运维的知识
opengps
2019-07-20 18:55:55 +08:00
开发人员很多都不懂安全防御,不具备运维能力。
楼主能分析故障复盘原理已经是大佬了,能公开分析过程的更值得佩服,留名点赞!
timeromantic
2019-07-21 01:25:30 +08:00
@opengps 哈哈。谢谢理解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/584369

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX