Rediswwwxtg168com13099636600伺服器被攻擊後該如何安全加固
一.背景描述
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> 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,將前面的 # 去掉,然後儲存。
注意:
1、該操作需要重啟 Redis 才能生效。 2、修改後只有本機才能訪問 Redis,也可以指定訪問源 IP 來訪問 Redis。
1.
bind 192.168.1.100 10.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-command flushall ""
3.
rename-command flushdb ""
4.
rename-command shutdown shotdown_test
儲存後,執行 /etc/init.d/redis-server restart 重啟生效。
6.未授權訪問漏洞的危害
1、redis資料洩露
Redis資料表裡存放企業私密資料,比如有些網站的帳號密碼、FTP的帳號密碼等。攻擊者可隨時檢視資料表內容。
2、redis資料破壞
攻擊者可修改redis資料表、增加刪除key項,比如呼叫flushall命令可以清除所有key。
3、主機系統環境洩露,為後續攻擊提供網情
比如利用info命令,可以檢視主機的相關資訊,比如作業系統環境、目錄名稱、CPU/記憶體等敏感資訊。
4、結合技術方法,可對主機進行控制
利用redis未授權漏洞,不僅對redis資料造成威脅,通過一定技術方法還能對目標主機系統進行控制,獲得主機控制權。
利用redis進行攻擊,主要是通過控制redis dump資料檔案的目錄和檔名兩個引數值。由redis.conf檔案內的dbfilename和dir兩個引數指定,其中dbfilename是檔名,dir指定了該檔案所在的目錄。例如:
dbfilename
dump
.rdb
預設值dump.rdb,dump到檔案系統中的檔名
dir /usr/
local
/redis/db
預設值./,即當前目錄,dump出的資料檔案的儲存路徑;
命令列通過config指令是現實獲取和修改。
獲取資訊。
config
get
dbfilenameconfig
get
dir
修改資訊。
config
set
dbfilenameconfig
set
dir
配合save命令,則攻擊者可以把想要的內容寫入到指定的檔案內,從而達成攻擊目的。
針對window系統:
1、通過把指令碼寫入到啟動目錄的方式,讓下次使用者登入時執行特定的指令碼。 2、通過把一句話網頁木馬(php、jsp等)寫入到web目錄的方式,控制目標系統,前提條件是能猜測到web所在目錄且該目錄可寫,好多web伺服器提供預設的web目錄,比如IIS伺服器的c:inebputwww目錄,可通過config set dir命令進行猜測目錄猜測,redis會提示該目錄是否存在。
7.安全補丁
定期關注最新軟體版本,並及時升級 Redis 到最新版,防止新漏洞被惡意利用。
相關文章
- 【知識分享】伺服器被攻擊後如何補救伺服器
- 【知識分享】 伺服器被攻擊怎麼辦?如何防止伺服器被攻擊伺服器
- 網站被攻擊 該如何做好網站的安全防護?網站
- 什麼是CC攻擊?網站被CC攻擊該如何防禦?網站
- 伺服器被攻擊瞭如何解決?伺服器
- 如何判斷伺服器是否被攻擊伺服器
- 伺服器被攻撃, 該如何處理?伺服器
- 【安全知識分享】如何避免伺服器被惡意網路攻擊伺服器
- 怎樣防止網站被攻擊 DEDECMS程式碼的加固安全解決方案網站
- 伺服器被攻擊後,我學到的知識...伺服器
- 如何防止伺服器被惡意網路攻擊?伺服器
- 伺服器被挖礦木馬攻擊該怎麼處理伺服器
- 網站存在被攻擊篡改資料的問題 該如何防止網站被攻擊網站
- 伺服器被攻擊瞭如何做防護措施?伺服器
- 如何用iptables來防止web伺服器被CC攻擊Web伺服器
- 怎麼防止伺服器被攻擊?伺服器
- 菜鳥站長應該如何防止網站被惡意攻擊網站
- 如何檢視網站伺服器被攻擊的痕跡網站伺服器
- 網站被攻擊如何防禦網站
- 【解決方案】網站被DDoS攻擊打到癱瘓該如何應對?網站
- 網站被攻擊了 該怎麼解決防止被黑客攻擊的問題網站黑客
- 網站後臺資料被攻擊洩露篡改如何解決網站
- 網路安全中主動攻擊、被動攻擊分別是什麼意思?
- 如何防止網站資料庫被攻擊 被篡改網站資料庫
- 微軟安全警告弄巧成拙 被駭客利用發動攻擊微軟
- CC攻擊原理是什麼?網站被CC攻擊如何防禦?網站
- 企業網路被DDoS攻擊了,該怎麼辦?
- 伺服器被攻擊的基本處理辦法伺服器
- 【知識分享】怎麼防止伺服器被攻擊伺服器
- 網站被攻擊怎麼辦 如何查詢網站漏洞攻擊源網站
- 網站被駭客攻擊瞭如何解決網站
- 伺服器如何防禦CC攻擊伺服器
- 網站伺服器如何防止被攻擊?指令碼程式升級很重要!網站伺服器指令碼
- 【知識分享】伺服器遭受攻擊的方式,如何抵禦攻擊?伺服器
- 伺服器安全加固 - Linux伺服器Linux
- 釣魚攻擊防不勝防,該如何預防網路釣魚攻擊?
- 【網路安全】如何有效地防禦DDOS攻擊和CC攻擊?
- WEB安全入門:如何防止 CSRF 攻擊?Web