我們知道,要取得一部主機的所有權限,那就是需要取得該部主機的超級管理員 root 的權限! 所以一般黑客都會想盡辦法去取得 root 的權限的。那麼該如何取得 root 的權限呢? 最簡單的方法就是利用網路上流傳的 Root Kit 工具程式來進行入侵的動作了。
由於 Root Kit 工具的取得相當的容易,因此難保我們一般使用者的主機不會被低級的怪客所干擾, 所以我們當然要想辦法保護我們自己的主機啦!為了要偵測主機是否已經被 Root Kit 之類的程式所攻擊, 由自由軟體撰寫團體所開發的 Root Kit Hunter, rkhunter 這個套件,就能夠幫我們偵測囉! 所以,底下我們就來談一談這個咚咚。
什麼是 Root Kit
如何防止 rootkit 的攻擊
Root Kit Hunter 能作什麼?
由於 Root Kit 工具的取得相當的容易,因此難保我們一般使用者的主機不會被低級的怪客所干擾, 所以我們當然要想辦法保護我們自己的主機啦!為了要偵測主機是否已經被 Root Kit 之類的程式所攻擊, 由自由軟體撰寫團體所開發的 Root Kit Hunter, rkhunter 這個套件,就能夠幫我們偵測囉! 所以,底下我們就來談一談這個咚咚。
什麼是 Root Kit
要取得一部主機的控制權,有相當多的方法!最簡單的當然就是以登入程式(如 login, ssh, telnet 等等) 加上猜測密碼的程式來嘗試進行登入的行為。不過,由於登入程式大部分都有登入次數的限制, 因此使用密碼猜測程式就不這麼流行了。
高級的駭客為了系統網路的安全,會撰寫一些程式去測試自己主機的服務漏洞, 並且在發現了某些服務的漏洞之後,會通報該服務的維護團體,或者是貢獻自己的修補方式, 以補足自己系統的安全性。而服務開發/維護團體在接到這樣的通報之後,會在最短的時間內進行程式修改, 並且在網際網路上面進行通報與釋出該漏洞的修補程式。
然而在這個漏洞通報出來之後,與修補程式釋出之前的空窗期,某些惡意的 cracker 就會針對這樣的漏洞進行攻擊, 這些 cracker 同樣是撰寫程式來攻擊該漏洞,同時取得被攻擊主機的控制權,或者是植入木馬程式在受攻擊的主機上。 這些 cracker 與高級駭客不同的地方,在於他們會很驕傲的將攻擊的成果貼在一些 cracker 常上的網站, 藉以推銷自己,同時,也會將他們撰寫的惡意程式散播到 Internet 上面。 有些有心人士就會將這些惡意程式收集起來,做成程式包,並使這些程式包更加流行於 Internet 上面, 這些惡意的程式包就被稱為 root kit 咯。
RootKit 能作的攻擊真是林林總總的說不完!最常見的就是直接以 rootkit 刺探被攻擊主機的服務漏洞, 如果被攻擊主機『剛好』有此漏洞,那麼該主機的控制權就可能會被 Cracker 所取得。另外, 若該主機被取得控制權之後,為方便 cracker 未來做為跳板之用,因此他可能會利用其他的 rootkit 將被攻擊主機的某些程式換掉,舉例來說,我們曉得觀察主機的一些資訊可以用 ps, ls, top, w 等等的程式,cracker 為了保障自己的入侵不會被真正的系統管理員得知,就會將這些程式換掉, 讓原本的系統管理員無法知道目前系統正在跑的程序裡面,是否有一些不明的程序存在。
高級的駭客為了系統網路的安全,會撰寫一些程式去測試自己主機的服務漏洞, 並且在發現了某些服務的漏洞之後,會通報該服務的維護團體,或者是貢獻自己的修補方式, 以補足自己系統的安全性。而服務開發/維護團體在接到這樣的通報之後,會在最短的時間內進行程式修改, 並且在網際網路上面進行通報與釋出該漏洞的修補程式。
然而在這個漏洞通報出來之後,與修補程式釋出之前的空窗期,某些惡意的 cracker 就會針對這樣的漏洞進行攻擊, 這些 cracker 同樣是撰寫程式來攻擊該漏洞,同時取得被攻擊主機的控制權,或者是植入木馬程式在受攻擊的主機上。 這些 cracker 與高級駭客不同的地方,在於他們會很驕傲的將攻擊的成果貼在一些 cracker 常上的網站, 藉以推銷自己,同時,也會將他們撰寫的惡意程式散播到 Internet 上面。 有些有心人士就會將這些惡意程式收集起來,做成程式包,並使這些程式包更加流行於 Internet 上面, 這些惡意的程式包就被稱為 root kit 咯。
RootKit 能作的攻擊真是林林總總的說不完!最常見的就是直接以 rootkit 刺探被攻擊主機的服務漏洞, 如果被攻擊主機『剛好』有此漏洞,那麼該主機的控制權就可能會被 Cracker 所取得。另外, 若該主機被取得控制權之後,為方便 cracker 未來做為跳板之用,因此他可能會利用其他的 rootkit 將被攻擊主機的某些程式換掉,舉例來說,我們曉得觀察主機的一些資訊可以用 ps, ls, top, w 等等的程式,cracker 為了保障自己的入侵不會被真正的系統管理員得知,就會將這些程式換掉, 讓原本的系統管理員無法知道目前系統正在跑的程序裡面,是否有一些不明的程序存在。
如何防止 rootkit 的攻擊
知道了這些 Rootkit 工具包之後,那麼我們如何杜絕 cracker 使用 rootkit 程式包來攻擊我們的主機呢? 由於 rootkit 主要是藉由主機的漏洞來攻擊的,因此, 您必須要確定『
不必要的服務請務必關閉』, 此外『
隨時更新主機上面各套件的修補程式』。 關閉不必要的服務應該很簡單,這裡鳥哥就不談了。至於更新套件的修補程式, 最好藉助於 apt 或者 yum 或者您的 Linux distribution 提供的線上更新方式來維護, 這樣對於系統管理員來說,會比較輕鬆。
這樣還不夠喔!因為 rootkit 也很可能會偽裝成 Internet 上面合法的軟體, 來吸引您安裝他。例如前幾年,著名的 OpenSSL 網站上所提供的套件竟然被發現已經被 cracker 置換掉~ 所以,在您安裝取得的套件之前,請先以 MD5 或者其他指紋資料進行檔案的比對, 以確定該檔案是沒有問題的。當然,最好還是不要安裝來路不明的套件較好。
而為了確認一下我們的主機是否被 rootkit 程式包所攻擊, 其實我們還可以透過其他的軟體工具來檢查主機的某些重要程式,例如前面提到的 ps, top 等等的。 這就是我們這篇文章要提到的 rootkit hunter 囉。
這樣還不夠喔!因為 rootkit 也很可能會偽裝成 Internet 上面合法的軟體, 來吸引您安裝他。例如前幾年,著名的 OpenSSL 網站上所提供的套件竟然被發現已經被 cracker 置換掉~ 所以,在您安裝取得的套件之前,請先以 MD5 或者其他指紋資料進行檔案的比對, 以確定該檔案是沒有問題的。當然,最好還是不要安裝來路不明的套件較好。
而為了確認一下我們的主機是否被 rootkit 程式包所攻擊, 其實我們還可以透過其他的軟體工具來檢查主機的某些重要程式,例如前面提到的 ps, top 等等的。 這就是我們這篇文章要提到的 rootkit hunter 囉。
Root Kit Hunter 能作什麼?
在官方的資料當中,RKHunter 可以作的事情包括:偵測 rootkit 程式、偵測後門程式、以及主機端的套件檢查問題。 rkhunter 所使用的偵測技術包括了底下幾種:
- 利用 MD5 指紋分析:
記得我們在 基礎學習篇 裡面有提到那個 MD5 的東西吧?簡單的來說,每個檔案都有自己的指紋資料,這個指紋資料是利用雜湊演算的方式來得到一組 MD5 編碼,當這個檔案被更動過,那怕是只改了一個字元,而整個檔案的容量大小不變, 他的 MD5 編碼還是會不同的。因此,若我們在系統安裝完畢之後,立即建立重要檔案的 MD5 資料庫, 然後再以分析工具定期去分析該重要檔案的 MD5 編碼,若有不同,則顯示該檔案被變動過, 此時自然就需要瞭解瞭解為何會被更動了。
利用這個特性, rkhunter 在釋出的時候,就已經收集了各大知名的 Linux distributions 的重要檔案的 MD5 編碼(例如 login, ls, ps, top, w 等等檔案), 並製作成資料庫,然後,當我們安裝好了 rkhunter 並且執行之後, 他就會利用原本資料庫的資料去與我們系統的相關檔案進行比對, 若比對的結果有問題,則會顯示警示文字,提供系統管理員分析。 - 檢查 rootkit 經常攻擊的檔案:
如同前面所說的,rootkit 為了偽裝自己或者是為了取得系統控制權,他們會主動的去變更某些重要檔案。 因此,藉由分析這些檔案,我們可以很輕易的就知道該檔案有沒有被竄改過! 這也是 rootkit 很重要的一個分析的方法! - 檢查是否具有錯誤的檔案權限--針對 binary files:
在 基礎學習篇 裡面的 原始碼與 tarball 我們有談到系統裡頭真正會執行的其實是經過編譯的二進位檔案(binary files),因此, 如果木馬程式想要掌握您的系統,那麼竄改的那些重要檔案自然也就是 binary file 囉, 例如 ls, ps, top 等等的。而重點是,系統原本的這些檔案本來都具有比較嚴謹的檔案權限, 例如 /bin/ls 具有的是 -rwxr-xr-x 的 755 權限。不過,很多的木馬程式竄改之後的檔案權限可能都會變成 -rwxrwxrwx 的 777 權限,因此,直接分析這些重要檔案的權限,也可以判斷該檔案是否有問題。 - 檢查隱藏檔案:
有的時候我們為了要讓螢幕的顯示資料較為乾淨,可能會將一些檔案隱藏起來, 在 Linux 底下的隱藏檔案,其實只是在檔名最前面加上一個小數點『.』而已。 木馬程式也可能透過這個一般朋友們比較不容易注意的隱藏檔來隱藏他們的主程式, 因此,rkhunter 也會分析某些不法的隱藏檔,以期找出有問題的檔案。 - 檢查可疑的核心模組(LKM/KLD):
在 基礎學習篇 裡面提到的 核心功能 當中, 可以知道 Linux 的核心功能具有可外掛的特性,也就是 Loadable