[工具]檢查檔案是否被任意變更 - FileChecker
最近用Golang寫了一個工具
這是很久以前就想寫的
那時候還沒有golang
當初的想法是
一台Server被成功入侵
大部分都是看Log才知道
但一台被針對並且成功提權的機器
是不會留下任何被入侵的Log的
但是絕對會留下駭客下次進入的後門
或是被置入的惡意程式
畢竟漏洞只是一時的
如果沒放後門等漏洞被補起來
這台機器就不能用了
而放後門有幾種方式
最終的結果
一定是會多出檔案
或是替換掉原有的檔案
這時候比對server上的檔案就很重要了
這支程式就是在做這件事
並且我把它命名為FileChecker
(source: https://github.com/unknowPaper/FileChecker)
主要功能有
- 掃描指定資料夾
- 排除特定檔案或資料夾
- 可指定何種副檔名的檔案要比對內容(像是php, rb, py等)
- 發現檔案異常會用E-mail通知
- 通知內會附上檔案內容比對
這支程式分三個動作
分別是 scan、check跟renew
scan也就是掃描現有的檔案產生md5 hash
可以指定資料夾
也可以指定要排除的資料夾或檔案
預設會把產生的md5儲存在sqlite裡(目前還不支援加密)
之後可以把check指令加入cronjob
或是其他排程程式
定期檢查檔案是非有被變更
當更新系統之後
被更新的檔案hash一定會改變
這時候就要用renew來更新每個檔案的hash
這樣就可以確保伺服器裡的每個檔案
都是在我掌控之下才存在的
不會某天突然發現多出一隻檔案
或是永遠不會發現哪一隻檔案被加了料
留言