• 沒有找到結果。

使用者層模組(User level module)

第五章、 系統架構

5.2 使用者層模組(User level module)

使用者層模組的主要功能在於對攻擊樣板的前置處理,包含提供介面給使用 者制定攻擊樣板、分析使用者定義之攻擊樣板,以抵抗插入 no-op 系統呼叫之攻 擊、檢驗使用者定義之攻擊樣板,防止使用者使用不當攻擊樣板監督程式,造成 高誤判率。這些模組的功能將於本節中介紹。

5.2.1 樣板制定介面(State-based Rule configuration interface)

在本系統中,我們可把複雜的入侵規則用簡單直覺的圖形(有限狀態機)來表 示。樣板制定介面提供以滑鼠拖拉方式的GUI圖形介面給使用者來制定攻擊樣 板。例如圖29是一個利用wuftpd FTP server的漏洞取得root權限並進行攻擊之樣 板。監督的條件可以檢查程式執行時的三個欄位uid,gid,comm來決定,也可 以指定all,即所有程式都要監督。

這個例子指定只要是comm=wuftpd的程式都必須監督,攻擊樣式如圖所示,

若依序執行了這幾個的系統呼叫: setreuid,chroot,chdir(“../../../../../../../../../"),

chroot(“/"),便可取得root權限,並逃脫chroot的限制,接著進行攻擊。使用者 在樣板制定介面制定的攻擊樣板,會交由樣板分析與檢驗模組進行分析與檢驗。

`圖 29 攻擊樣板

5.2.2 樣板分析與檢驗模組(Template analysis and testing module)

為了在使用者定出不良的攻擊樣板時提出警告,進而減少誤判,且為了阻止 有心的入侵者刻意插入no-op系統呼叫來規避偵測,我們必須對使用者自行定義 的攻擊樣板(user define template),稱原始攻擊樣板,進行分析和檢驗。此部分之

功能由樣板分析模組(Template analysis module)與樣板檢驗模組(Template testing module)來實現。

樣板分析模組先對原始攻擊樣板以圖22的演算法進行分析,視需要將其拆為 若干個sub-FSM,再利用圖24之演算法將每個sub-FSM轉為ε-NFA,最後轉成真 正用於偵測攻擊的攻擊樣板(final Tempalrte)。例如在圖29中使用者所制定的原始 攻擊樣板,在經過樣板分析模組的分析與轉換後,會轉為如圖30的最終攻擊樣板。

圖 30 經轉換之最終攻擊樣板

攻擊樣板經過分析後,還必須經過檢驗才能載入核心中。樣板的檢驗由樣板 檢驗模組從正常行為資料庫中,取出代表正常行為的系統呼叫順序,測試是否會 讓此攻擊樣板轉換到最終狀態,如圖31。

若所有代表正常行為的系統呼叫順序皆不會使此攻擊樣板轉換到最終狀 態,表示此攻擊樣板不會把這些正常行為誤判成攻擊,因此可以直接載入核心 中。若有代表正常行為的系統呼叫順序會使此攻擊樣板轉換到最終狀態,表示此 攻擊樣板可能是有問題的,可能會造成誤判,此時必需提報使用者,決定是否要 修改攻擊樣板。

樣板通過檢驗後,接著便由Wrapper Driver載入核心,由核心層模組根據這 些使用者制定之樣板來監督程式的執行,偵測是否有符合的攻擊行為。