Inotify incron Linux DDoS 伺服器 網站 駭客 資安

以Inotify監控檔案系統 即時察覺網站遭惡意插旗

2015-10-28
如果公司的網站頁面被成惡意攻擊者置換掉,那麼對公司商譽的損傷是難以彌補的,而整個IT團隊也會顏面盡失,如何制止這類事件的發生就變得非常重要了。對此,這裡將介紹如何透過Linux系統的Inotify機制,並搭配inotify-tool及incron軟體,來建構一個可即時監控系統變動的解決方案。
< mask > : 設定要監控的事件屬性(例如更改或新增的狀況)、可設定多個事件屬性(以符號「,」分開),支援的事件屬性如表5所示。

表5 可被支援的事件屬性

除了事件屬性外,incron另外提供下列的特殊保留字以供使用:

$$:此變數表示為$符號。
$@:此變數儲存監控目錄或檔案的路徑資訊。
$#:此變數儲存發生變動的檔案或目錄名稱。
$%: 此變數儲存以文件形式(例如IN_CLOSE)表示的事件旗標(Flag)。
$&: 此變數儲存以數字形式表示的事件旗標。
< command > :當所監控的檔案或目錄發生時所設定 的mask事件,即執行此欄位所設定的指令。

在說明組態檔的格式後,實際執行一個監控作業進行測試。首先以「incrontab -e」指令來編輯一個組態設定,如圖4所示。


▲圖4 編輯組態設定。

此組態的意義為:要持續(IN_NO_LOOP)的監控名稱為「/home/johnwu/test」下的目錄。當發生新增檔案(IN_CREATE)、刪除(IN_DELETE)檔案或是檔案被更改(IN_CLOSE_WRITE)的情況時,就立即執行mail.pl程式,並將發生變動的檔案名稱(含檔案路徑資訊)($@$#)及變動的事件屬性($%,如IN_CREATE)的資訊,當成第一個參數傳入mail.pl(在此mail.pl僅用來顯示傳入的第一個參數內容,而參數內容為發生變動的檔案名稱,以方便展示)。

在實際的應用上,可將此程式改成有意義的程式,例如寄發電子郵件給管理者,如此便可達到當所監控的目錄或檔案發生變動時,能夠即時地寄發電子郵件通知管理者的目的,如下為mail.pl原始碼,其中#之後為註解說明:


為方便觀察,這裡以「incrond -n」的方式啟動incrond,其中-n為以前景(Foreground)的方式執行。接著使用「touch /home/johnwu/test/a.txt」指令在「/home/johnwu/test/」目錄下新增一個檔案,名稱為「a.txt」。

incrond就會偵測出相關變動,並執行mail.pl程式而顯示出如圖5的輸出,由此可發現,在新增檔案時會觸發IN_CREATE及IN_CLOSE_WRITE的事件屬性。


▲圖5 incrond偵測出相關的變動。

如此一來,即可利用incrond來即時監控檔案系統的變動情形了。

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!