【IT168 资讯】Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,其具有高性能、丰富的数据类型、原子性等优点,在特定的领域下,具有一定的不可代替性。但安全性上,Redis未授权访问问题是一直存在,知道创宇安全研究团队历史上也做过相关的应急,今日,又出现Redis未授权访问配合SSHkey文件被利用的情况,并有被黑客大规模利用趋势。
Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,将自己的公钥写入目标服务器的/root/.ssh文件夹的authotrized_keys文件中,导致其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作,造成数据库及敏感信息泄露。
Redis安全模型的观念是:“请不要将Redis暴露在公开网络中,因为让不受信任的客户接触到Redis是非常危险的”。Redis作者之所以放弃解决未授权访问导致的不安全性,是因为99.99%使用Redis的场景都是在沙盒环境中,为了0.01%的可能性增加安全规则的同时也增加了复杂性,虽然这个问题的并不是不能解决的,但是这在他的设计哲学中仍是不划算的。
全球无验证可直接利用Redis分布图
全球无验证可直接利用RedisTOP10国家与地区
知道创宇安全团队通过ZoomEye搜索显示,全球有97700个没有开启相关认证和添加相关安全策略公网可以直接访问的Redis服务。其中我国成为重灾区,为16477个,占全球数量的16%;美国数量为12335个,占全球数量的12%。
目前相关漏洞已被收录到知道创宇旗下Sebug漏洞社区(sebug.net)中,并被列为高危等级,知道创宇安全团队建议采用Redis服务的管理员采取以下策略应对潜在被攻击危险:
1,配置bind选项,限定可以连接Redis服务器的IP,修改Redis的默认端口;
2,配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中;
3,配置rename-command配置项“RENAME_CONFIG”,这样即使存在未授权访问,也能够给攻击者使用config指令加大难度;
4,好消息是Redis作者表示将会开发”realuser”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如config。
详细了解可阅读知道创宇404安全实验室分析报告:
http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/