Redis遭受巨大攻击,你知道么(redis被攻击了)

Redis遭受巨大攻击,你知道么?

最近,一起对Redis的DDoS攻击事件成为了互联网界的热议话题,相信很多人已经有所耳闻。这起事件曝光了Redis使用不当的弊端,引起人们对数据安全的重视。

我们来了解一下Redis是什么。

Redis,全称为“Remote Dictionary Server”,是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息代理等多种用途。Redis以高速性能、灵活性和简单性著称,在互联网领域广泛应用。

但是,Redis也存在一些安全隐患。

如果搭建的Redis服务器未设置密码,那么任何人都可以通过访问默认端口6379,直接访问Redis的数据。这就给攻击者无限制地入侵系统,获取数据提供了可能。因此,对于Redis服务器来说,设置密码是第一道保护线。

Redis允许使用Lua脚本来执行一些操作,如果没有限制Lua脚本的权限,攻击者便能够通过执行恶意代码来控制Redis服务器,实现攻击目的。

最近暴露的DDoS攻击事件,就是利用了Redis服务器可被远程控制的特性。

攻击者利用了Redis内部“配置开关”,将Redis服务器设置为可以运行外部程序,然后向Redis服务器发送大量恶意请求,使其疯狂地执行外部程序,导致Redis服务器CPU资源耗尽,最终被击垮。这种攻击方式难以对抗,因为攻击者可以选择其它与Redis服务器相对立的机器进行攻击,从而防止被Redis官方流控器block掉。

那么,在我们的日常工作中,我们应该如何保护Redis服务器呢?

一、安装之前修改Redis默认配置:禁止Redis执行Lua脚本、设置密码等。

二、防火墙:开放Redis使用端口时要加入写请求限制。

三、限制使用redis-cli:提高Redis-cli的使用权限,避免未授权的访问。

四、限制命令使用范围:删除一些与业务无关的命令,避免泄露服务器信息。

五、监控Redis服务器: 可以通过工具进行Redis服务器的监控,监控Redis性能、状态等变化,及时发现异常情况,预防攻击。

六、安装Redis官方流控器:尽管攻击者可以选择其它相对立的机器进行攻击,但安装Redis官方流控器仍是一种不错的选择。

提醒企业和个人要重视数据安全,及时更新安全补丁以避免系统受到攻击。只有不断加强系统安全性能,才能在互联网的浪潮中立于不败之地。

代码示例:

1.禁止Redis使用Lua脚本:

在redis.conf文件中添加如下配置:

lua-time-limit 0

2.设置密码:

在redis.conf文件中添加如下配置:

requirepass yourpassword

3.限制使用redis-cli:

在redis.conf文件中,添加如下配置:

bind 127.0.0.1
protected-mode yes

4.删除与业务无关的命令:

在redis.conf文件中添加如下配置:

rename-command CONFIG ""

5.监控Redis服务器:

可以使用如下脚本对Redis进行常规性能监控:

#!/bin/bash
REDISCLI_PATH=/usr/local/bin/redis-cli
IP=localhost
PORT=6379
INFO_PATH=/tmp/redis_info.info
STATISTICS_PATH=/tmp/redis_statistics.log

echo "INFO" | ${REDISCLI_PATH} -h ${IP} -p ${PORT} > ${INFO_PATH}
echo -e "\n\n" >> ${INFO_PATH}
echo "INFO CPU" | ${REDISCLI_PATH} -h ${IP} -p ${PORT} >> ${INFO_PATH}
rm -f ${STATISTICS_PATH}
echo "Flush 'data-transfer' to 0" | ${REDISCLI_PATH} -h ${IP} -p ${PORT}
while true
do
echo "KEYS *data-transfer" | ${REDISCLI_PATH} -h ${IP} -p ${PORT} | while read line
do
echo "GET $line" | ${REDISCLI_PATH} -h ${IP} -p ${PORT} >> ${STATISTICS_PATH}
done
sleep 30s
done

数据运维技术 » Redis遭受巨大攻击,你知道么(redis被攻击了)