11月9日早上10點多我們收到幾臺客戶服務器的安全監控系統告警,發現幾臺系統公鑰文件被篡改,隨後進行安全事件分析處理。在分析過程中我們發現了某***組織利用redis設計缺陷的***痕跡。考慮到***方式簡單但影響極大,我們對此次安全事件做了進一步分析,發現這是針對全球互聯網的全網性***事件。如果您的linux服務器上運行的redis沒有設置密碼,很可能已經受到了此次安全事件影響。結果將導致:redis數據丟失,服務器的ssh公鑰被替換。
我們就此次安全事件預警式的針對全球6379端口的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密鑰和公鑰:
把公鑰內容寫入foo.txt:
把SSH公鑰寫入redis:
覆蓋系統用戶原來的SSH公鑰:
通過SSH登入服務器:
修補加固建議
1 環境安全:
無需外網訪問的可以綁定本地迴環
需要對外的增加ACL進行網絡訪問控制
可以借用stunnel等工具完成數據加密傳輸
2 給redis設定密碼
3 創建單獨的nologin系統賬號給redis服務使用
4 禁用特定命令
rename-command CONFIG ""