redis安全加固方案

  1. . redisredis漏洞簡介

Redis是美國畢威拓(Pivotal)公司贊助開發的一套開源的使用ANSI C語言編寫的,基於內存和鍵值對存儲的數據庫系統。Redis默認狀況下會開啓6379端口,在認證未開啓的狀況下,可致使任意用戶進行未受權訪問操做。redis

Redis安全模型觀念:請不要將Redis暴漏在公網之上,由於讓不受信任的客戶接觸Redis是很是危險的。數據庫

Redis官方網站:http://redis.io/安全

Redis公開漏洞查詢網站:http://cve.mitre.org/網絡

                                     http://cve.scap.org.cn/tcp

Redis相應CVE編號:網站

.redis漏洞影響範圍ui

Redis暴漏在公網(即綁定在0.0.0.0:6379,目標IP公網可訪問),且沒有開啓相關認證及設置相應安全策略的狀況下,存在被攻擊利用的風險。rest

漏洞修復方案server

  1. 廠商修復方案:暫無
  2. 安全社區參考修復方案:

(1)網絡加固blog

若是僅爲本地通訊,請確保redis監聽在本地。具體設置:/etc/redis/redis.conf中配置以下:    bind 127.0.0.1

(二)防火牆設置

若是須要其餘機器訪問,或者設置了Master-Slave模式,需添加防火牆設置,具體參考以下:

/sbin/iptables  -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT

(三)添加認證

默認狀況下,redis未開啓密碼認證。開啓認證模式,具體參考以下配置:

打開 /etc/redis/redis.conf,找到requirepass參數,設置密碼,保存redis.conf,最後重啓redis服務,/etc/init.d/redis-server restart

(四)設置單獨帳戶

可設置一個單獨的redis帳戶。建立redis帳戶,經過該帳戶啓動redis服務,具體操做以下:setsid sudo -u redis /usr/bin/redis-serer /etc/redis/redis.conf

(五)重命名重要命令

redis沒有權限分離之說,無管理員帳號和普通帳戶之分,致使攻擊者登錄後可執行任意操做,所以須要隱藏重要命令,具體以下:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL等。

在redis2.8.1 及 redis3.x(<3.0.2) 版本下存在eval沙箱逃逸漏洞,攻擊者可經過該漏洞執行任意Lua代碼。

具體緩解攻擊操做,供參考:下述配置將config/flushdb/flushall設置爲空,即禁用該命令;也可命名一些攻擊者難以猜解的名字。

rename-command CONFIG 「」

rename-command flushall ""

rename-command flushdb ""

rename-command shutdown shotdown_test

保存後,執行/etc/init.d/redis-server restart重啓生效。

參考文章:

http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/

http://antirez.com/news/96

文章歸檔:http://secscorpio.top/?p=111

相關文章
相關標籤/搜索