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

  這次服務器被植入挖礦程序發現起來較爲巧合,首先是上週三開始,我經過sonatype/nexus3搭建的倉庫間歇性崩潰,可是每次從新start一下也能直接使用因此沒有完全清查,去docker logs裏查看發現是執行bash命令和powershell命令出錯,沒有想明白是什麼緣由。node

  後來剛好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啓動!mysql

  以後兩天相安無事,第三天忽然ES程序崩了,因爲我ES鏡像設置的always restart,因此這就奇怪了,想連上服務器排查問題,發現ssh服務器被拒絕。sql

  ssh_exchange_identification: read: connection reset by peerdocker

  這就奇怪了,好好的服務器怎麼ssh不上去了呢,當時覺得是ssh_server崩了,因而重啓服務器,重啓後一切正常。直到2天后復現了此錯誤。shell

  搜索以後發現此問題常出現於fork bomb,無限建立進程致使系統資源被佔滿,因此鏈接時沒有資源才拒絕訪問,過了一段時間,忽然ssh上去了,執行ps -aux 發現了大量的bash任務ubuntu

  bash -c "107.174.47.156/xxxxxxx.sh"centos

  搜索此IP,發現已經被幾我的標記爲:bash

       

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認證的字眼,但我本人一直以爲應該比較靠譜。ssh

可是有兩個疑點:

一、此鏡像不提供Dockerfile,也就是說它要麼是經過docker commit實現的,要麼就是Dockerfile引用了某些不能被人所知的東西不肯意公開。(後來在我本身從新打包nexus3鏡像的過程當中,發現打包此鏡像並不須要多複雜的shell命令,若是熟練的話徹底能夠經過dockerfile的方式進行建立,這樣不提供Dockerfile就顯得更加可疑了。)

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

三、這個容器啓動時在不停的更新插件,這些插件不清楚是幹什麼的,若是某個插件的定位被篡改,那麼很容易被植入某些奇怪的代碼。

因此我以爲應當是此鏡像的問題。加上這個用戶一直未被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官方提供截圖證據。

相關文章
相關標籤/搜索