<track id="hlljh"></track>

    <address id="hlljh"></address>

        <address id="hlljh"><ruby id="hlljh"></ruby></address>

        Redis服務安全加固

        發布者:王宇發布時間:2017-12-04瀏覽次數:331

        來源:https://help.aliyun.com/knowledge_detail/37447.html


        一.背景描述

        1.漏洞描述

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

        在特定條件下,如果 Redis 以 root 身份運行,黑客可以給 root 賬號寫入 SSH 公鑰文件,直接通過 SSH 登錄受害服務器,從而獲取服務器權限和數據。一旦入侵成功,攻擊者可直接添加賬號用于 SSH 遠程登錄控制服務器,給用戶的 Redis 運行環境以及 Linux 主機帶來安全風險,如刪除、泄露或加密重要數據,引發勒索事件等。

        2.受影響范圍

        在 Redis 客戶端,嘗試無賬號登錄 Redis:

        1. root@kali:~# redis-cli -h 10.16.10.2

        2. redis 10.16.10.2:6379&gt; keys *

        3. 1)1`

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

        二.修復方案

        1.網絡層加固

        • 指定 Redis 服務使用的網卡

          默認情況下,Redis 監聽 127.0.0.1。如果僅僅是本地通信,請確保監聽在本地。

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

          在 redis.conf 文件中找到 # bind 127.0.0.1,將前面的 # 去掉,然后保存。

          注意

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

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

            1. bind192.168.1.10010.0.0.1


        • 2.設置防火墻策略

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

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

        3.賬號與認證

        • 設置訪問密碼

          在 redis.conf 中找到 requirepass 字段,去掉其注釋,并在后面填上需要的密碼。Redis 客戶端也需要使用此密碼來訪問 Redis 服務。

          打開 /etc/redis/redis.conf 配置文件:

          1. requirepass !QE%^E3323BDWEwwwe1839

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

        4.服務運行權限最小化

        • 修改 Redis 服務運行賬號

          請以較低權限賬號運行 Redis 服務,并禁用該賬號的登錄權限。以下操作創建了一個無 home 目錄權限,且無法登錄的普通賬號:

          1. useradd -M -s /sbin/nologin [username]

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

        5.服務精細化授權

        • 隱藏重要命令

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

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

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

          1. rename-command CONFIG

          2. rename-commandflushall

          3. rename-commandflushdb

          4. rename-commandshutdownshotdown_test

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

        6.安全補丁

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


        又浪又紧又丰满少妇,猫耳鱼网白丝自慰喷白浆,秋霞韩国理论A片在线观看免

          <track id="hlljh"></track>

          <address id="hlljh"></address>

              <address id="hlljh"><ruby id="hlljh"></ruby></address>