用 rkhunter 把 rootkit 通通抓起來!
使用的環境
系統與使用工具 |
---|
Centos 7.6 |
Rootkit Hunter 1.4.6 |
一、rootkit 是什麼?
rootkit 又被稱為後門程式 (backdoor) 或木馬程式 (trojan)。
發現漏洞後與修補程式釋出前的中間空窗期,會被駭客撰寫惡意程式來攻擊該漏洞,他們藉此取得被攻擊主機的控制權,植入木馬程式在受攻擊的主機上,並散播惡意程式,這些惡意程式就被稱為 rootkit。
將 rootkit 這名詞拆開分別是 root 跟 kit,root 是 unix 系統中最高權限管理者的名稱,kit 則是工具的意思。
由此可知,rootkit 就是被用來攻擊目標主機並取得最高權限的工具,而且還會自我隱藏,不讓真正的管理者發現。
二、如何避免受到 rootkit 的攻擊?
rootkit 主要是藉由主機的漏洞來攻擊的惡意程式,所以要從可能的地方對症下藥。
- 關閉不必要的服務
- 隨時更新主機上各個工具的修補程式
- 使用軟體工具來檢查主機
而今天要來介紹的就是第三點,使用 rkhunter 來檢查電腦裡是否有 rootkit 潛伏。
三、rkhunter 介紹
rkhunter 是一個檢查運作中的 Unix 機器是否有被植入 Rootkit 的工具。
而且顧名思義就是 rootkit hunter,rootkit 獵人,聽起來有夠厲害,而且它非常好上手!
rkhunter 的功能:
- 利用 MD5 編碼來比對檔案的一致性,檢查文件是否改動
rkhunter 在釋出的時候,就已經收集了各大知名的 Linux distributions 的重要檔案的 MD5 編碼 (例如 login, ls, ps, top, w 等檔案), 並製作成資料庫。
- 檢查 rootkit 經常攻擊的檔案
- 檢查是否具有錯誤的檔案權限 (針對 binary files)
- 檢查隱藏檔案
- 檢查可疑的核心模組 (LKM/KLD)
- 作業系統的特殊檢測
- 檢查已啟動的監聽埠號 (listening port)
- 特定分析 (String scanner)
四、安裝及使用 rkhunter
當安裝好並且執行後,rkhunter 就會利用它的資料庫的資料去與當下系統的相關檔案進行比對,若比對的結果有問題,則會顯示警示文字,提供系統管理員分析。
# 首先安裝 rkhunter
$ yum install rkhunter -y
# 更新資料庫檔案
$ rkhunter --update
# 更新病毒資料庫
$ rkhunter --propupd
# 讓 rkhunter 自動檢測,就不用測試完一部分後就要按 Enter 才能繼續
$ rkhunter --check --skip-keypress
# 檢查系統並執行所有測試令 (需按 Enter 下一步)
$ rkhunter -c
五、rkhunter 其他指令 (有些需配合 -c 使用,自己判斷)
# 查看當前版本
$ rkhunter -V
# 檢查是否有新版本
$ rkhunter --versioncheck
# 使用 crontab 定期執行檢查 (會自動拿掉彩色輸出)
$ rkhunter --cronjob
# 將檢測結果用黑白輸出 (在有些情況下,有顏色或延長的顯示符號會有問題)
$ rkhunter --nocolors
# 僅列出警告訊息,正常訊息不列出
$ rkhunter --report-warnings-only
# 顯示說明及相關參數用法
$ rkhunter -help
六、rkhunter 的 設定檔位置
/etc/rkhunter.conf
七、rkhunter 相關設定
# 編輯 rkhunter 設定檔
$ vim /etc/rkhunter.conf
# 新增白名單,就不會每次都被偵測到有問題
SCRIPTWHITELIST = /usr/bin/egrep
# 同意的隱藏檔
ALLOWHIDDENDIR = /etc/.java
# log 檔案位置
LOGFILE=/var/log/rkhunter/rkhunter.log
八、rkhunter 的 log 檔位置
# 去找吧!都放在那裡了
/var/log/rkhunter/
# 篩選出有問題的部分
$ grep Warning /var/log/rkhunter/rkhunter.log
九、rkhunter 例外的錯誤狀態
舉例 MD5 編碼這方面:
rkhunter 在利用 MD5 編碼比對方面,是利用他本身的 MD5 編碼資料庫與當下的系統相關檔案進行比對,但若當下系統不在 rkhunter 支援的範圍之內,rkhunter 會判斷該檔案有問題。
此外,如果是利用 tarball 的方式自行安裝類似 syslogd, ps 等檔案,因為下達的參數不同,所以這些檔案與 rkhunter 的 MD5 資料庫也會不同,所以會被判定有問題。
在這種情況下,可以先更新 rkhunter 的資料庫,若問題仍舊存在,可以試著聯絡作者。
十、遇到的問題
(1) Warning: The file properties have changed
Warning: The file properties have changed:
File: /usr/bin/whoami
Current inode: 266256 Stored inode: 266257
如果遇到這個問題,很有可能是跑了系統更新後 inode 值改變
可以先去 /var/log/yum.log,確認近期是否有更新過上面被警告的指令
確認沒問題後,可以用底下指令重置
rkhunter --update --propupd