俗稱“腳本小鬼”的家伙是屬於那種很糟糕的黑客,因為基本上他們中的許多和大多數人都是如此的沒有技巧。可以這樣說,如果你安裝了所有正確的補丁,擁有經過測試的防火牆,並且在多個級別都激活了先進的入侵檢測系統,那麼只有在一種情況下你才會被黑,那就是,你太懶了以至沒去做該做的事情,例如,安裝BIND的最新補丁。
一不留神而被黑確實讓人感到為難,更嚴重的是某些腳本小鬼還會下載一些眾所周知的“root kits”或者流行的刺探工具,這些都占用了你的CPU,存儲器,數據和帶寬。這些壞人是從那裡開始著手的呢?這就要從root kit開始說起。
一個root kit其實就是一個軟件包,黑客利用它來提供給自己對你的機器具有root級別的訪問權限。一旦這個黑客能夠以root的身份訪問你的機器,一切都完了。 唯一可以做就是用最快的效率備份你的數據,清理硬盤,然後重新安裝操作系統。無論如何,一旦你的機器被某人接管了要想恢復並不是一件輕而易舉的事情。
你能信任你的ps命令嗎?
找出root kit的首個竅門是運行ps命令。有可能對你來說一切都看來很正常。圖示是一個ps命令輸出的例子。真正的問題是,“真的一切都正常嗎?”黑客常用的一個 詭計就是把ps命令替換掉,而這個替換上的ps將不會顯示那些正在你的機器上運行的非法程序。為了測試個,應該檢查你的ps文件的大小,它通常位於 /bin/ps。在我們的Linux機器裡它大概有60kB。我最近遇到一個被root kit替換的ps程序,這個東西只有大約12kB的大小。
另一個明顯的騙局是把root的命令歷史記錄文件鏈接到/dev/null。這個命令歷史記錄文件是用來跟蹤和記錄一個用戶在登錄上一台Linux機器後所用過的命令的。黑客們把你的歷史紀錄文件重定向到/dev/null的目的在於使你不能看到他們曾經輸入過的命令。
你可以通過在shell提示符下敲入history來訪問你的歷史記錄文件。假如你發現自己正在使用history命令,而它並沒有出現在之前使用過的命令列表裡,你要看一看你的~/.bash_history 文件。假如這個文件是空的,就執行一個ls -l ~/.bash_history命令。在你執行了上述的命令後你將看到類似以下的輸出:
-rw------- 1 jd jd 13829 Oct 10 17:06 /home/jd/.bash_history
又或者,你可能會看到類似以下的輸出:
lrwxrwxrwx 1 jd jd 9 Oct 10 19:40 /home/jd/.bash_history -> /dev/null
假如你看到的是第二種,就表明這個 .bash_history 文件已經被重定向到/dev/null。這是一個致命的信息,現在就立即把你的機器從Internet上斷掉,盡可能備份你的數據,並且開始重新安裝系統。
尋找未知的用戶賬號
在你打算對你的Linux機器做一次檢測的時候,首先檢查是否有未知的用戶賬號無疑是明智的。在下一次你登錄到你的Linux機器時,敲入以下的命令:
grep :x:0: /etc/passwd
只有一行,我再強調一遍,在一個標准的Linux安裝裡,grep命令應該只返回一行,類似以下:
root:x:0:0:root:/root:/bin/bash
假如在敲入之前的grep命令後你的系統返回的結果不止一行,那可能就有問題了。應該只有一個用戶的UID為0,而如果grep命令的返回結果超過一行,那就表示不止一個用戶。
認真來說,雖然對於發現黑客行為,以上都是一些很好的基本方法。但這些技巧本身並不能構成足夠的安全性,而且其深度和廣度和在文章頭提到的入侵檢測系統比起來也差得遠。
我的建議是,假如你懷疑你的系統真的出了問題,打電話給一個Linux的安全專家,參考他的意見。畢竟Linux的安全不是一下子就可以弄好的。