11月9日早上10點多咱們收到幾臺客戶服務器的安全監控系統告警,發現幾臺系統公鑰文件被篡改,隨後進行安全事件分析處理。在分析過程當中咱們發現了某黑客組織利用redis設計缺陷的攻擊痕跡。考慮到攻擊方式簡單但影響極大,咱們對這次安全事件作了進一步分析,發現這是針對全球互聯網的全網性入侵事件。若是您的linux服務器上運行的redis沒有設置密碼,極可能已經受到了這次安全事件影響。結果將致使:redis數據丟失,服務器的ssh公鑰被替換。linux
咱們就這次安全事件預警式的針對全球6379端口的redis服務器作了掃描,結果以下圖:redis
如圖開放在公網的redis的6379端口的ip總數有63443個。無密碼認證的IP有43024個,在總數佔比裏達到67%。發現遭受到redis crackit事件影響的服務器達到35024,在總數佔比中達到55%,在無密碼認證的redis數量中佔比達到81%左右。安全
不少使用者都是把redis下載到服務器直接運行使用,無ACL,無密碼,root運行,且綁定在0.0.0.0:6379,暴露在公網。攻擊者在未受權訪問 Redis 的狀況下經過redis的機制,能夠將本身的公鑰或者其餘惡意程序寫入目標服務器中,從而能夠直接控制目標服務器。服務器
尋找無驗證的redis服務:
網絡
製做SSH密鑰和公鑰:
ssh
把公鑰內容寫入foo.txt:
工具
把SSH公鑰寫入redis:
加密
覆蓋系統用戶原來的SSH公鑰:
spa
經過SSH登入服務器:
設計
環境安全:
無需外網訪問的能夠綁定本地迴環
須要對外的增長ACL進行網絡訪問控制
能夠借用stunnel等工具完成數據加密傳輸
給redis設定密碼
建立單獨的nologin系統帳號給redis服務使用
禁用特定命令
rename-command CONFIG ""