FileChecker
  • 6,703 views,
  • 2013-11-23,
  • 上傳者: Kuann Hung,
  •  0
最近召會的網站被入侵,雖然是使用 Joomla 這套 Open source 的 CMS,理論上應該挺安全的。但是可能是管理或是設定造成連續幾次被入侵,還被偷放了不少東西,花很多時間才找到 (而且不確定有沒有清乾淨!)。
有一次幫忙查大概猜到帳號是如何被建立的。雖然如何被提權的原因還是不明,不過亡羊總是要補牢。
 
所以就花了一點力氣作了一個 FileChecker,雖然沒辦法找到真正的原因,不過至少當檔案被修改,或是偷偷被放了程式時都可以盡早知道,並且根據檔案清單找到問題!!
 
 
* 若要引用請註明出處,程式基本上是 Open 的!!
使用方法
1.
下載並解開檔案
先到 GitHub 下載 (在右下方有 Download Zip),解開到您想要存放的目錄 ex: /var/www/FileChecker
 
基本上這個程式無需 Apache 或其他的 Web Server,直接用 command line 執行即可
2.
設定 config.ini
[CONFIG]
WEB_ROOT = /var/www
FILE_PATTERN = /^.*\.(php|htm|html|inc|js|css|ini|htaccess)$/i
IGNORE_PATTERN = /^.*(-cache-.*\.php).*/i


SENDMAIL = 1
FROM = your-mail@example.com
TO = your-mail@example.com
SUBJECT = 警告 - 您的網站檔案可能遭到竄改!
BODY = 以下檔案列表檔案狀態變更: (- 表示被 刪除 或 修改 的檔案, + 表示 新增 的檔案)

[MAIL]
USE_SMTP = 0
SMTP_HOST = 
SMTP_PORT = 
SMTP_USER = 
SMTP_PWD =
SMTP_SECURE =
 
我想這個設定應該不困難,簡單解說如下:
---- 基本設定
WEB_ROOT: 就是你要檢查的資料根目錄
FILE_PATTERN: 由於檔案太多,所以可以設定 regular rexpression 來決定要掃描那些檔案
 /^.*\.(php|htm|html|inc|js|css|ini|htaccess)$/i
這個設定是針對 php, html 等等常用的網頁檔案副檔名做檢查而已。不然全部的檔案都掃也不一定有太大意義

IGNORE_PATTERN: 既然有正向列表,那就需要有例外清單囉
 /^.*(-cache-.*\.php).*/i
目前的設定是因為 joomla 會固定產生 cache 檔案,所以如果沒有濾掉,那就不斷的會收到出檔案被修改的信了!!


---- 郵件設定
SENDMAIL = 1  (如果你要收到告警信件的話,那就設成 1 吧!)
FROM: 寄件者 (填自己的 mail 即可)
TO:  收件者 (填自己的 mail 即可)
SUBJECT: 信件主題;幫自己取一個驚悚一點的主題吧! 
BODY: 信件開頭的文字

---- 寄送郵件設定
USE_SMTP = 是否使用 SMTP (0: 表示使用 sendmail)

以下是 SMTP 相關的設定
SMTP_HOST = 
SMTP_PORT = 
SMTP_USER = 
SMTP_PWD =
SMTP_SECURE =
3.
執行程式
其實只要在 console 打 php check.php 就會跑了。這個程式會自動把運算結果存在 log 中
第一次跑只是作紀錄,第二次跑才會真的比對資料
每次執行都會把現在的檔名加上日期,然後跑完的結果作為最新的 Log 
4.
大功告成!
剩下的就是設定排程,看你打算多久檢查一次囉。當然,檢查的越頻繁就越可以在有檔案被竄改時提早知道。不過設太頻繁只是增加伺服器負擔而已,所以我建議 30 分鐘或一個小時執行一次即可
5.
範例信件
 
下圖是一個參考範例,檔案列表的說明為:
- 表示被 刪除 或 修改 的檔案
+ 表示 新增 的檔案)
Facebook 討論區載入中...
資料夾 :
標籤 :
發表時間 :
2013-11-23 00:26:55
觀看數 :
6,703
發表人 :
Kuann Hung
部門 :
老洪的 IT 學習系統
QR Code :