[工具]檢查檔案是否被任意變更 - FileChecker

最近用Golang寫了一個工具

這是很久以前就想寫的

那時候還沒有golang

當初的想法是

一台Server被成功入侵

大部分都是看Log才知道

但一台被針對並且成功提權的機器

是不會留下任何被入侵的Log的

但是絕對會留下駭客下次進入的後門

或是被置入的惡意程式

畢竟漏洞只是一時的

如果沒放後門等漏洞被補起來

這台機器就不能用了

而放後門有幾種方式

最終的結果

一定是會多出檔案

或是替換掉原有的檔案

這時候比對server上的檔案就很重要了

這支程式就是在做這件事

並且我把它命名為FileChecker

(source: https://github.com/unknowPaper/FileChecker)

主要功能有

  1. 掃描指定資料夾
  2. 排除特定檔案或資料夾
  3. 可指定何種副檔名的檔案要比對內容(像是php, rb, py等)
  4. 發現檔案異常會用E-mail通知
  5. 通知內會附上檔案內容比對

 

這支程式分三個動作

分別是 scan、check跟renew

scan也就是掃描現有的檔案產生md5 hash

可以指定資料夾

也可以指定要排除的資料夾或檔案

預設會把產生的md5儲存在sqlite裡(目前還不支援加密)

之後可以把check指令加入cronjob

或是其他排程程式

定期檢查檔案是非有被變更

當更新系統之後

被更新的檔案hash一定會改變

這時候就要用renew來更新每個檔案的hash

這樣就可以確保伺服器裡的每個檔案

都是在我掌控之下才存在的

不會某天突然發現多出一隻檔案

或是永遠不會發現哪一隻檔案被加了料

 

看更多