2015年11月10日,有网络安全厂商指出国内互联网产生了大量针对Redis数据库服务器的扫描流量,其中有不少Redis服务器的数据库被清空,且/root/.ssh/authorized_keys文件被创建或改写,入侵者可以获取受影响服务器的完全控制权限。因为受影响的Redis服务器的数据库被清空,但留存有一条键名为crackit的记录,因此这次事件被命名为Redis Crackit入侵事件。
SSH公钥登录
OpenSSH支持使用公钥登录远程服务器,其原理十分简单,即首先在Linux下使用ssh-keygen来生成公私钥对,其中公钥存放在远程服务器的$HOME/.ssh/authorized_keys文件中,在登录远程服务器时提供对应的私钥即可。
在Windows下,使用PuTTY的puttygen.exe组件也可以十分方便的生成公私钥对,其中生成的私钥文件可以提供给PuTTY用于登录远程服务器。
三、Redis Windows版本
Redis官方提供的源代码只能在Linux环境下编译,微软开源团队维护了一个可以在Windows下编译的版本,当前的最新版本仅支持64位的Windows操作系统,如果需要32位版本需要自行编译。
不过,微软开源团队对早期版本的Redis提供了32位版本的支持,已经编译好的32位Redis数据库文件可以从https://github.com/MSOpenTech/redis/archive/Win2.6.8.zip下载。
四、Redis缺陷分析
Redis服务器的默认配置存在许多安全隐患,包括:
1. 默认绑定到服务器的所有IP地址上,也就是所有能够访问到这台服务器的IP地址都可以连接该Redis数据库(最新版本已经解决了这一问题,默认绑定到127.0.0.1上);
2. 默认不需要密码即可登录,同时默认的登录密码为foobared,懒惰的运维人员会使用这个默认密码;
3. 默认可以使用config命令,该命令可以修改数据库硬盘备份文件所在的路径和名字;
4. 粗心的运维人员会使用root权限来启动redis-server进程;
如果你想了解更多关于Redis数据库的基础知识,可以学习合天网安实验室提供的《Redis数据库安全实践》系列实验。
http://hetianlab.com//expc.do?ec=ECID172.19.104.182015111310254200001
网友评论