NEWS

安全運維:服務器(qì)遭受攻擊後該如何處理(lǐ)?. 2019-05-15


一、處理(lǐ)服務器(qì)遭受攻擊的一般思路

系統遭受攻擊并不可(kě)怕,可(kě)怕的是面對攻擊束手無策,下面就詳細介紹下在服務器(qì)遭受攻擊後的一般處理(lǐ)思路。

1.切斷網絡

所有(yǒu)的攻擊都來(lái)自于網絡,因此,在得(de)知系統正遭受黑(hēi)客的攻擊後,首先要做(zuò)的就是斷開(kāi)服務器(qì)的網絡連接,這樣除了能切斷攻擊源之外,也能保護服務器(qì)所在網絡的其他主機。

2.查找攻擊源

可(kě)以通(tōng)過分析系統日志(zhì)或登錄日志(zhì)文件,查看可(kě)疑信息,同時(shí)也要查看系統都打開(kāi)了哪些(xiē)端口,運行(xíng)哪些(xiē)進程,并通(tōng)過這些(xiē)進程分析哪些(xiē)是可(kě)疑的程序。這個(gè)過程要根據經驗和(hé)綜合判斷能力進行(xíng)追查和(hé)分析。下面的章節會(huì)詳細介紹這個(gè)過程的處理(lǐ)思路。

3.分析入侵原因和(hé)途徑

既然系統遭到入侵,那(nà)麽原因是多(duō)方面的,可(kě)能是系統漏洞,也可(kě)能是程序漏洞,一定要查清楚是哪個(gè)原因導緻的,并且還(hái)要查清楚遭到攻擊的途徑,找到攻擊源,因為(wèi)隻有(yǒu)知道(dào)了遭受攻擊的原因和(hé)途徑,才能删除攻擊源同時(shí)進行(xíng)漏洞的修複。

4.備份用戶數(shù)據

在服務器(qì)遭受攻擊後,需要立刻備份服務器(qì)上(shàng)的用戶數(shù)據,同時(shí)也要查看這些(xiē)數(shù)據中是否隐藏着攻擊源。如果攻擊源在用戶數(shù)據中,一定要徹底删除,然後将用戶數(shù)據備份到一個(gè)安全的地方。

5.重新安裝系統

永遠不要認為(wèi)自己能徹底清除攻擊源,因為(wèi)沒有(yǒu)人(rén)能比黑(hēi)客更了解攻擊程序,在服務器(qì)遭到攻擊後,最安全也最簡單的方法就是重新安裝系統,因為(wèi)大(dà)部分攻擊程序都會(huì)依附在系統文件或者內(nèi)核中,所以重新安裝系統才能徹底清除攻擊源。

6.修複程序或系統漏洞

在發現系統漏洞或者應用程序漏洞後,首先要做(zuò)的就是修複系統漏洞或者更改程序bug,因為(wèi)隻有(yǒu)将程序的漏洞修複完畢才能正式在服務器(qì)上(shàng)運行(xíng)。

7.恢複數(shù)據和(hé)連接網絡

将備份的數(shù)據重新複制(zhì)到新安裝的服務器(qì)上(shàng),然後開(kāi)啓服務,最後将服務器(qì)開(kāi)啓網絡連接,對外提供服務。

二、檢查并鎖定可(kě)疑用戶

當發現服務器(qì)遭受攻擊後,首先要切斷網絡連接,但(dàn)是在有(yǒu)些(xiē)情況下,比如無法馬上(shàng)切斷網絡連接時(shí),就必須登錄系統查看是否有(yǒu)可(kě)疑用戶,如果有(yǒu)可(kě)疑用戶登錄了系統,那(nà)麽需要馬上(shàng)将這個(gè)用戶鎖定,然後中斷此用戶的遠程連接。

1.登錄系統查看可(kě)疑用戶

通(tōng)過root用戶登錄,然後執行(xíng)“w”命令即可(kě)列出所有(yǒu)登錄過系統的用戶,如下圖所示。

安全運維:服務器(qì)遭受攻擊後該擇如何處理(lǐ)?

通(tōng)過這個(gè)輸出可(kě)以檢查是否有(yǒu)可(kě)疑或者不熟悉的用戶登錄,同時(shí)還(hái)可(kě)以根據用戶名以及用戶登錄的源地址和(hé)它們正在運行(xíng)的進程來(lái)判斷他們是否為(wèi)非法用戶。

2.鎖定可(kě)疑用戶

一旦發現可(kě)疑用戶,就要馬上(shàng)将其鎖定,例如上(shàng)面執行(xíng)“w”命令後發現nobody用戶應該是個(gè)可(kě)疑用戶(因為(wèi)nobody默認情況下是沒有(yǒu)登錄權限的),于是首先鎖定此用戶,執行(xíng)如下操作(zuò):


  1. 		[root@server ~]# passwd -l nobody 

鎖定之後,有(yǒu)可(kě)能此用戶還(hái)處于登錄狀态,于是還(hái)要将此用戶踢下線,根據上(shàng)面“w”命令的輸出,即可(kě)獲得(de)此用戶登錄進行(xíng)的pid值,操作(zuò)如下:


  1. 		[root@server ~]# ps -ef|grep @pts/3  
  2. 531 6051 6049 0 19:23 ? 00:00:00 sshd: nobody@pts/3  
  3. [root@server ~]# kill -9 6051 

這樣就将可(kě)疑用戶nobody從線上(shàng)踢下去了。如果此用戶再次試圖登錄它已經無法登錄了。

3.通(tōng)過last命令查看用戶登錄事件

last命令記錄着所有(yǒu)用戶登錄系統的日志(zhì),可(kě)以用來(lái)查找非授權用戶的登錄事件,而last命令的輸出結果來(lái)源于/var/log/wtmp文件,稍有(yǒu)經驗的入侵者都會(huì)删掉/var/log/wtmp以清除自己行(xíng)蹤,但(dàn)是還(hái)是會(huì)露出蛛絲馬迹在此文件中的。

三、查看系統日志(zhì)

查看系統日志(zhì)是查找攻擊源最好的方法,可(kě)查的系統日志(zhì)有(yǒu)/var/log/messages、/var/log/secure等,這兩個(gè)日志(zhì)文件可(kě)以記錄軟件的運行(xíng)狀态以及遠程用戶的登錄狀态,還(hái)可(kě)以查看每個(gè)用戶目錄下的.bash_history文件,特别是/root目錄下的.bash_history文件,這個(gè)文件中記錄着用戶執行(xíng)的所有(yǒu)曆史命令。

四、檢查并關閉系統可(kě)疑進程

檢查可(kě)疑進程的命令很(hěn)多(duō),例如ps、top等,但(dàn)是有(yǒu)時(shí)候隻知道(dào)進程的名稱無法得(de)知路徑,此時(shí)可(kě)以通(tōng)過如下命令查看:

首先通(tōng)過pidof命令可(kě)以查找正在運行(xíng)的進程PID,例如要查找sshd進程的PID,執行(xíng)如下命令:

安全運維:服務器(qì)遭受攻擊後該擇如何處理(lǐ)?

然後進入內(nèi)存目錄,查看對應PID目錄下exe文件的信息:

安全運維:服務器(qì)遭受攻擊後該擇如何處理(lǐ)?

這樣就找到了進程對應的完整執行(xíng)路徑。如果還(hái)有(yǒu)查看文件的句柄,可(kě)以查看如下目錄:


  1. 		[root@server ~]# ls -al /proc/13276/fd 

通(tōng)過這種方式基本可(kě)以找到任何進程的完整執行(xíng)信息,此外還(hái)有(yǒu)很(hěn)多(duō)類似的命令可(kě)以幫助系統運維人(rén)員查找可(kě)疑進程。例如,可(kě)以通(tōng)過指定端口或者tcp、udp協議找到進程PID,進而找到相關進程:

安全運維:服務器(qì)遭受攻擊後該擇如何處理(lǐ)?

在有(yǒu)些(xiē)時(shí)候,攻擊者的程序隐藏很(hěn)深,例如rootkits後門(mén)程序,在這種情況下ps、top、netstat等命令也可(kě)能已經被替換,如果再通(tōng)過系統自身的命令去檢查可(kě)疑進程就變得(de)毫不可(kě)信,此時(shí),就需要借助于第三方工具來(lái)檢查系統可(kě)疑程序,例如前面介紹過的chkrootkit、RKHunter等工具,通(tōng)過這些(xiē)工具可(kě)以很(hěn)方便的發現系統被替換或篡改的程序。

五、檢查文件系統的完好性

檢查文件屬性是否發生(shēng)變化是驗證文件系統完好性最簡單、最直接的方法,例如可(kě)以檢查被入侵服務器(qì)上(shàng)/bin/ls文件的大(dà)小(xiǎo)是否與正常系統上(shàng)此文件的大(dà)小(xiǎo)相同,以驗證文件是否被替換,但(dàn)是這種方法比較低(dī)級。此時(shí)可(kě)以借助于Linux下rpm這個(gè)工具來(lái)完成驗證,操作(zuò)如下:

安全運維:服務器(qì)遭受攻擊後該擇如何處理(lǐ)?

對于輸出中每個(gè)标記的含義介紹如下:

  • S 表示文件長度發生(shēng)了變化
  • M 表示文件的訪問權限或文件類型發生(shēng)了變化
  • 5 表示MD5校(xiào)驗和(hé)發生(shēng)了變化
  • D 表示設備節點的屬性發生(shēng)了變化
  • L 表示文件的符号鏈接發生(shēng)了變化
  • U 表示文件/子目錄/設備節點的owner發生(shēng)了變化
  • G 表示文件/子目錄/設備節點的group發生(shēng)了變化
  • T 表示文件最後一次的修改時(shí)間(jiān)發生(shēng)了變化

如果在輸出結果中有(yǒu)“M”标記出現,那(nà)麽對應的文件可(kě)能已經遭到篡改或替換,此時(shí)可(kě)以通(tōng)過卸載這個(gè)rpm包重新安裝來(lái)清除受攻擊的文件。

不過這個(gè)命令有(yǒu)個(gè)局限性,那(nà)就是隻能檢查通(tōng)過rpm包方式安裝的所有(yǒu)文件,對于通(tōng)過非rpm包方式安裝的文件就無能為(wèi)力了。同時(shí),如果rpm工具也遭到替換,就不能通(tōng)過這個(gè)方法了,此時(shí)可(kě)以從正常的系統上(shàng)複制(zhì)一個(gè)rpm工具進行(xíng)檢測。

http://netsecurity.51cto.com/



上(shàng)一篇:企業防勒索病毒解決方案
下一篇:互聯網3.0趨勢預測:數(shù)據隐私成燙手山(shān)芋,機器(qì)學習或存泡沫