Redis服務安全加固的說明

夢共裡醉發表於2020-02-13
Redis(全稱:Remote Dictionary Server 遠端字典服務)是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
漏洞描述

Redis 因配置不當存在未授權訪問漏洞,可以被攻擊者惡意利用。

在特定條件下,如果 Redis 以 root 身份執行,駭客可以給 root 賬號寫入 SSH 公鑰檔案,直接透過 SSH 登入受害伺服器,從而獲取伺服器許可權和資料。一旦入侵成功,攻擊者可直接新增賬號用於 SSH 遠端登入控制伺服器,給使用者的 Redis 執行環境以及   主機帶來安全風險,如刪除、洩露或加密重要資料,引發勒索事件等。

受影響範圍

在 Redis 客戶端,測試Redis是否設定密碼:

root@kali:~# redis-cli -h 10.16.10.2
redis 10.16.10.2:6379> keys *
1) "1"`

從登入結果可以看出,該 Redis 服務對公網開放,且未啟用認證。

修復方案
禁止監聽在公網

指定 Redis 服務使用的網路卡

預設情況下,Redis 監聽 127.0.0.1。如果僅僅是本地通訊,請確保監聽在本地。

這種方式可以在一定程度上緩解 Redis 未授權訪問的風險(例外情況下,如果 Redis 以 root 使用者執行,攻擊者藉助已有的 web ,就可以利用該 Redis 來反彈 shell 以實現提權)。

在redis.conf檔案中找到 # bind 127.0.0.1,將前面的 # 去掉,然後儲存。

該操作需要重啟Redis 才能生效。

修改後只有本機才能訪問 Redis,也可以指定訪問源 IP 來訪問 Redis。

bind 192.168.1.100 10.0.0.1
修改預設6379埠
port 6377

編輯檔案redis的配置檔案redis.conf,找到包含port的行,將預設的6379修改為自定義的埠號,重啟`redis生效`

設定防火牆策略

如果正常業務中 Redis 服務需要被其他伺服器來訪問,可以透過 iptables 策略,僅允許指定的 IP 來訪問 Redis 服務。

iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT
賬號與認證

設定訪問密碼:在 redis.conf中找到 requirepass欄位,去掉其註釋,並在後面填上需要的密碼。Redis 客戶端也需要使用此密碼來訪問 Redis 服務。

開啟 /etc/redis/redis.conf配置檔案:

requirepass %@!%

確保密碼的複雜度,配置完畢後重啟服務即可生效。

服務執行許可權最小化

使用root切換到redis使用者啟動服務:

useradd -s /sbin/nolog -M redis 
sudo -u redis //redis-server //redis.conf

注意:該操作需要重啟 Redis 才能生效。

禁用或者重新命名危險

隱藏重要 :Redis 無許可權分離,其管理員賬號和普通賬號無明顯區分。攻擊者登入後可執行任意操作,因此需要隱藏以下重要命令:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, 。

另外,在 Redis 2.8.1 及 Redis 3.x (低於 3.0.2) 版本下存在 沙箱逃逸漏洞,攻擊者可透過該漏洞執行任意 Lua 程式碼。

下述配置將 config/flushdb/flushall 設定為空,即禁用該命令;也可設定為一些複雜的、難以猜測的名字。

rename-command FLUSHALL ""
rename-command FLUSHDB  ""
rename-command CONFIG   ""
rename-command KEYS     ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command  ""

然後重啟redis。

重新命名為"" 代表禁用命令,如想保留命令,可以重新命名為不可猜測的字串,如:

rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC
開啟保護模式

redis預設開啟保護模式。要是配置裡沒有指定bind和密碼,開啟該引數後,redis只能本地訪問,拒絕外部訪問。

redis.conf安全設定: # 開啟保護模式 protected-mode yes
安全補丁

定期關注最新軟體版本,並及時升級 Redis 到最新版,防止新漏洞被惡意利用。

排查病毒思路(挖礦病毒)

Redis服務安全加固的說明Redis服務安全加固的說明


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2675423/,如需轉載,請註明出處,否則將追究法律責任。

相關文章