四、Knark軟件包的安裝和使用
該軟件包的核心軟件是knark,c,它是一個Linux LKM(loadable kernel-module)。運行命令"make"來編譯knark軟件包,通過"insmod knark"命令來加載該模塊。當knark被加載,隱藏目錄/proc/knark被創建,該目錄下將包含以下文件:
author 作者自我介紹
files 系統中隱藏文件列表
nethides 在/proc/net/[tcp|udp]隱藏的字符串
pids 被隱藏的pids列表,格式類似於ps命令輸出
redirects 被重定向的可執行程序入口列表
該軟件包編譯以後將有下面這些工具軟件(它們都依賴於被加載的模塊knark.o。除了taskhack.c,其用於直接修改/dev/kmem)
入侵者入侵以後往往將knark的各種工具存放在/dev/某個子目錄下創建的隱藏子目錄,如/dev/.ida/.knard等等。
五、檢測系統是否被安裝了KnarkKnark的作者Creed,發布了一個工具:knarkfinder.c來發現Knark隱藏的進程。
檢查系統是否安裝有Knark的最直接有效的方法是以非特權用戶身份來運行Knark的一個軟件包如:rootme,看該用戶是否能獲得root權限。由於目前Knark目前沒有認證機制,因此入股系統被安裝了Knark任何一個本地用戶運行這個程序都能獲得root權限。
還有一個最有效的發現系統是否被knark或者類似的rootkit所感染的方法就是使用kstat來檢測,具體參考本站的Nexeon寫的解決方案文章:檢測LKM rootkit。
六、Knark防范防止knark最有效的方法是阻止入侵者獲得root權限。但是在使用一切常規的方法進行安全防范以後,防止knark之類的基於LKM技術的rootkit的方法是:
創建和使用不支持可加載模塊的內核,也就是使用單塊內核。這樣knark就不能插入到內核中去了。
使用lcap (http://pweb.netcom.com/~spoon/lcap/)實現系統啟動結束以後移除內核LKM功能,這樣可以防止入侵者加載模塊。然而這種方法存在一定的問題,入侵者可以在獲得root權限以後修改啟動腳本,在lcap啟動之前來加載knark模塊從而逃避lcap的限制。