您好,登錄后才能下訂單哦!
本文作者:晨光
運維工程師
web服務應用是最為常見的應用之一,主要是通過對公網放行服務器的端口供客戶訪問來提供服務。這類服務對數據安全、訪問控制的要求會比較高。但最為核心的還是后端服務器主機層,當后端主機不能正常工作時,前端展示的web服務一定是收到牽連的,如何維護后端服務器正常運行就顯得尤為重要了。
這里提到后端主機的正常運行,就不得不提“***”這個詞了,讓互聯網小白一籌莫展的無形殺手。他們通過各種軟件的漏洞,網絡等方面無孔不入地***安全度較低的服務器,常見的手段有sql注入,挖礦,xss等。
挖礦丨小科普
挖礦:即比特幣挖礦,是一種利用電腦硬件計算出比特幣的位置并獲取的過程。
被挖礦的現象:cpu資源被瘋狂利用。
被挖礦的方式:利用軟件漏洞,如Redis未授權訪問缺陷,voip環境等漏洞登錄服務器,定時下載腳本文件并運行,消耗系統資源。
這里分享一個被“挖礦”事件處理的案例。
背景
有同一批服務的主機接連的cpu不斷跑高至打滿,并持續。導致對外的應用服務無法正常被訪問。通過對服務器的資源使用情況查看發現,有一個陌生的進程在瘋狂占用cpu資源。
處理過程
首先,我們發現登錄服務器非常卡,網站加載速度特別慢,作為優秀的運維工程師需要解決一下這個網站速度問題。這時最直觀的查看方式就是top一下系統資源。(如下圖)
4核的CPU被ksoftirqds進程占用了389%,這個進程看著也非常的不尋常,一個優秀的運維工程師斷定,肯定是“被挖礦”了。
查看該進程的運行狀態,可以看得出每隔10min定時執行shell,大量產生軟中斷進程,此進程與網絡大量通信,進行上下文切換,導致占滿CPU:
嘗試使用kill命令無法正常的結束這個進程,再回到top的顯示,發現jenkins還運行這個一進程watchdog。根據我多年的經驗,看著也不像是一個正常的進程。使用lsof查看下這個進程打開的文件:
原來kill不掉,是因為有植入進程watchdog所致,而watchdog進程與外界存在大量通信。
同時一般都會被設定一個定時任務,再查看jenkins這個用戶下的crontab:
果然存在這樣一個定時任務的去下載腳本并執行了。
這時,先刪除這個定時任務:
然后清除watchdog和ksoftirqds的進程文件:
最后kill掉watchdog和ksoftirqds的進程,并修改/var/spool/cron/的權限為000,這時再使用top查看服務器的資源情況。已經恢復到了正常的狀態:
到這里,我們已經完成了“被挖礦”后的處理,希望各位優秀的運維工程師可以處變不驚運籌帷幄保障自己的服務器不被挖礦!(為自己的優秀的洞察力點個贊)
總結|處理挖礦的流程
1、使用top命令查看異常占用cpu資源的進程;
2、使用ps -ef|grep pid或lsof -p pid或cd /proc/pid查看進程打開的文件;
3、使用for u in
cat /etc/passwd | cut -d":" -f1
;do crontab -l-u $u;done 查看所有的定時任務,定位異常crontab的用戶;4、進入異常crontab的用戶刪除定時任務;
5、刪除第2步中查到的異常文件;
6、Kill 第1步中異常的進程;
7、修改/var/spool/cron的權限為000,進入再次寫入定時任務。
隱患分析
導致服務器主機資源被***的原因應從架構層,主機層,應用層分析,整個網站的架構非常的重要,做到高可用、安全、惡意***攔截才會相對良好的保障應用的安全。主機的安全策略,軟件的部署方式,目錄的權限等方面是保障主機與外界通信的安全墻。應用程序的結構,語句的合理性以及安全性是直接對外的窗口。開發良好的代碼才不容易被sql注入,收到***。
主機層
1、防火墻安全措施實施不到位;
2、端口采用默認;
3、公網提供服務,未做訪問、流量限制
應用層
1、應用環境單點,安全系數低
2、應用版本信息未隱藏,容易被找到漏洞
3、域名解析A記錄到主機公網,直接暴露后端服務器主機信息
后期預防
挖礦程序一般都是通過軟件的漏洞進入到服務器,執行一些腳本文件占用服務器資源。規范使用軟件。做好網絡安全隔離,可以大大減少這類事件的發生。
1、redis,數據庫等軟件不對外網暴露端口訪問
2、對外端口修改為非常規端口
3、網絡訪問做安全產品過濾或限制
4、及時更新軟件,保持最新穩定的漏洞修復
看到這里你學會了嗎?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。