Redis 默認情況下饰及,會綁定在 0.0.0.0:6379,這樣將會將 Redis 服務(wù)暴露到公網(wǎng)上,
如果在沒有開啟認證的情況下播急,可以導(dǎo)致任意用戶在可以訪問目標服務(wù)器的情況下未授權(quán)訪問Redis 以及讀取 Redis 的數(shù)據(jù)。
攻擊者在未授權(quán)訪問 Redis 的情況下可以利用 Redis 的相關(guān)方法售睹,可以成功在 Redis 服務(wù)器上寫入公鑰桩警,進而可以使用對應(yīng)私鑰直接登錄目標服務(wù)器。
入侵特征:
Redis 可能遭受入侵者執(zhí)行FLUSHALL命令昌妹,整個 Redis 數(shù)據(jù)庫被清空捶枢。
入侵者會在 Redis 數(shù)據(jù)庫中新建了一個名為 crackit(網(wǎng)上流傳的命令指令) 的鍵值對,內(nèi)容為一個 SSH 公鑰飞崖。
在 /root/.ssh 文件夾下新建或者修改了 authorized_keys 文件烂叔,內(nèi)容為 Redis 生成的 db 文件,包含上述公鑰固歪。
加固建議:
1长已、限制偵聽地址,禁止外網(wǎng)訪問Redis:
修改redis.conf文件,添加或修改
bind 127.0.0.1 只偵聽本機术瓮,適用于只在本機使用的redis服務(wù)
如果redis并不是只用在本機康聂,而是用于給內(nèi)網(wǎng)的其它服務(wù)器使用的話,那就指定具體本機的內(nèi)網(wǎng)IP地址胞四,如:
bind 172.16.0.2 之類
2恬汁、修改默認端口6379為其它端口
3、設(shè)置密碼驗證:
修改redis.conf辜伟,添加或修改:
requirepass mypassword (mypassword替換成你要設(shè)置的密碼)
4氓侧、以低權(quán)限運行Redis服務(wù)
為Redis服務(wù)創(chuàng)建單獨的用戶和家目錄,并且配置禁止登錄导狡。
5约巷、將高危命令修改成自定義的別名或直接禁用(可選)
例如禁止高危命令:
在配置文件中加入以下:
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
來禁用遠程修改DB文件地址