integrit Apache 網站伺服器 WAF SVN 入侵 安全 資安

防駭客插旗掛馬 打造網站自動回復系統

2014-08-04
本文將示範打造一個防駭的網站金鐘罩系統,利用SVN版本控管系統產生網站目錄的初始版本,並採用integrit建立基準狀態資料庫,然後定時透過integrit產生現存狀態資料庫來進行比對,這樣一來不但能夠保存網站目錄被不當變動時的資訊,還可即時地回復網站伺服器原有的內容。
在成功安裝integrit後,接下來繼續設定integrit的設定檔,檔案名稱為integrit.conf,設定檔內容說明如表4所示。

表4 integrit設定檔內容說明

接著測試integrit檔案系統的完整性,將依序測試「檔案新增」、「目錄新增」、「檔案刪除」、「檔案修改」等不同的狀況。以「/tmp/integrit」目錄為例,在該目錄下新增test1、test2兩個檔案。

首先,在「/etc/integrit.conf」內加入以下幾行設定:


第一步先產生基準狀態資料庫,以供後續比對之用,執行指令「integrit -u -C /etc/integrit.conf -N /root/known.cdb」,其中-u為更新,-C為使用組態檔的位置,-N為產生目前系統狀態資料庫。


建立完成後,可透過i-viewdb來查看integrit的資料庫內容,因此執行「i-viewdb /root/known.cdb」指令來查看known.cdb的內容。

建立好基準系統狀態資料庫後,開始測試下列各種不同的狀況。

檔案新增情況

首先利用指令「touch /tmp/integrit/test3」來新增一個檔名為「test3」的檔案,接著執行指令「integrit -u -c -C /etc/integrit.conf」進行檢查(-c參數的意思為check),如下圖示。


當integrit一發現有新增檔案,就會以new標示出該新增檔案。

目錄新增情況

透過指令「mkdir /tmp/integrit/testdir」新增一個檔案,然後執行指令「integrit -u -c -C /etc/integrit.conf」做檢查,如下圖示。


當integrit發現有新增目錄時,會以new來標示該新增目錄。不過,integrit並不會特別說明它是檔案或目錄,這需要使用者自行另外處理。

檔案修改情況

先執行指令「chown johnwu:johnwu /tmp/integrit/test1」,更動檔案test1的擁有者權限,然後利用指令「integrit -u -c -C /etc/integrit.conf」來檢查,如下圖示。


一旦integrit發現檔案被修改(在本例中為擁有者權限被更動),即以changed來標示該檔案已經被修改過。

檔案刪除情況

先利用指令「rrm /tmp/integrit/test1」來刪除檔案,接著執行「integrit -u -c -C /etc/integrit.conf」做檢查。當integrit發現已被刪除檔案時,即以missing來標示該被刪除檔案,如下圖示。


系統實作

網站金鐘罩系統的想法在於,事先將正確網站目錄上的相關網站目錄產生初始版本(利用SVN版本控管系統來控管,版本編號為1),並使用檔案完整性檢查工具,例如本文採用integrit來產生基準狀態資料庫(在此稱為knowndb)。

然後,定時利用integrit產生現存狀態資料庫(在此稱為currdb)進行比對,如果發生有異常變動的情況,就將異常變動情況加入SVN,並產生另一個版本回存至SVN版本控管系統(版本編號可從2..n開始)。

隨後,再取出SVN版本控管系統中的初始版本(版本編號為1)。如此一來,不但可以保存網站目錄被不當變動的資訊,也能夠即時地回復網站伺服器原有的內容。


追蹤我們Featrue us

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

我知道了!