redis -cli command not found_记一次 Linux 服务器 redis 漏洞分析
簡單記錄分析過程。
收到阿里云報警短信
【阿里云】尊敬的xxx@xxx.com:云盾云安全中心檢測到您的服務器:xx.xx.xx.xx(dev)出現了緊急安全事件:Linux可疑計劃任務,建議您立即登錄云安全中心控制臺-安全告警處理http://a.aliyun.com/f1.PXzRj 進行處理。
查看告警詳情
阿里云安全后臺報告的問題是 admin 用戶下,有每分鐘執行一次的定時任務。
查看服務器后,發現不止 admin 用戶的定時任務有問題,惡意程序創建了好多用戶的定時任務。
查看定時任務具體執行的代碼,并不是我們公司的業務邏輯。所以要分析一下這個定時任務是怎么被加進來的。
分析原因
首先檢查 ssh?認證及登錄
只有 root 和 ubuntu 兩個用戶通過 ssh 登陸過服務器。然后檢查這兩個用戶下的 .ssh/authorized_keys ,都是公司內部人員的公鑰,所以排除是 ssh 認證信息泄露,人為登錄服務器導致的問題。
然后排查軟件漏洞
阿里云安全后臺顯示,軟件漏洞較多。而且被攻擊機器的操作系統還是 Ubuntu 16.04,所以決定直接升級到 18.04。
此處略過升級過程。
但不幸的是,操作系統升級成功后,問題仍然存在,而且手動刪除惡意定時任務后,還會重新出現。
繼續分析,既然排除了人為登錄導致的問題,那么在服務器上肯定還有軟件漏洞;而且升級過程會重啟服務器,說明有漏洞的軟件,會開機自動重啟。
柳暗花明
此時,突然注意到,惡意定時任務中除了 curl 命令,還有如下字符串。
REDIS0009 redis-ver5.0.7redis-bits??escused-mem?所以可以初步定為是 redis 的問題,網上搜索,驗證了自己的想法,具體可見這篇文章 https://zhuanlan.zhihu.com/p/111634439。
根據文章描述,檢查自己服務器上 redis 的配置,配置的確實有問題:
“允許所有ip連接”
“關閉保護模式”
“后臺運行”
再檢查 redis 是怎樣被安裝到服務器上的。
并不是通過 apt 命令安裝的。
那就肯定是編譯安裝的,也發現了源代碼目錄,符合文章中對 redis 漏洞的分析描述。
再檢查是否開機啟動,確實是開機啟動。
至此,問題原因,基本就定位清楚了:某個同事在服務器上,自己編譯安裝了 redis,配置上也沒有考慮安全性,導致被攻擊。
解決方法
刪掉惡意添加的定時任務;
卸載手動編譯安裝的 redis,通過 apt 命令安裝;
更改服務器上 redis 的配置、在阿里云后臺為此服務器安全組增加入網規則,只允許白名單 ip 訪問 redis 端口。
總結
以上是生活随笔為你收集整理的redis -cli command not found_记一次 Linux 服务器 redis 漏洞分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dataframe保存为txt_如何批量
- 下一篇: mac终端一次命令在多个虚拟机执行_Wi