資訊與網路安全技術第 十一章 入侵偵測與網路病毒  上一頁      下一頁

 

11-7 主機型入侵偵測系統

內容:

  • 11-7-1 HIDS 系統:防火牆

  • 11-7-2 HIDS 系統:伺服主機

『主機型入侵偵測』(Host-based Intrusion Detection表示偵測點在主機本身,至於主機可能是網路設備(如防禦主機)或應用系統(如 Win2k 伺服器)。

11-7-1 HIDS 系統:防火牆

無論防禦主機或封包過濾器皆是駭客最主要的攻擊目標,雖然在兩設備上設定有嚴密的封包過濾原則,但是攻擊者還是會想盡各種方法入侵系統。最常見的入侵方法是『開後門』(Trap Backdoor與網路阻斷攻擊,以下分別介紹之。

【(A)後門偵測】

駭客可能採取『誤用攻擊法』掃描各個傳輸埠口的弱點,再依此路徑進入系統之內,接著再開啟其他較少用的埠口讓其他駭客進入。由此可見,預防被入侵的方法,除了必須找出系統弱點之外,還必須隨時掃描是否有不明埠口,無緣無故被開取。目前網路上許多埠口掃描程式(如 PortScan),可供下載使用。讀者可試著利用 Java 寫一個掃描程式,範例如下:(僅掃描 0 ~ 1023 埠口)

import java.net.*;

import java.io.*;

 

public class lookForPorts {

    public static void main(String[] args) {

        Socket theSocket;

        String host = "localhost";

        if (args.length >0)

            host = args[0];

        for (int i=0; i<1024; i++) {

            try {

               theSocket = new Socket(host, i);

               System.out.println("There is a server on port "+i+" of " + host);

            }

            catch (UnknownHostException e ) {

                System.err.println(e);

                break;

            }

            catch (IOException e) {

            }

        }

    }

}

【(B)網路阻斷偵測】

網路阻斷攻擊表示攻擊者不讓合法使用者使用網路,亦即攻擊者試圖佔滿整個網路資源,讓其他人無法使用該網路通訊,一般網路阻斷攻擊法有下列三種:

  • 服務過載(Service Overloading):攻擊者針對某一個伺服器提出多個服務請求,如果請求數量過於龐大時,可能讓系統忙於服務這些請求與網路封包,無暇再為其他人服務。欲造成服務過載的攻擊者不困難,只要成功散播病毒,再由這些病毒於指定時間同時向某一系統發出服務請求,即可達到目的;這也是目前許多知名網站被攻擊的困境。

  • 訊息洪流(Message Flooding):即是攻擊者發動許多訊息指向某一特定的攻擊目標,導致該目標停止其他服務。攻擊訊息可以僅僅是簡單的訊息,但被攻擊者為了要回應這些訊息,會佔據絕大部分的資源與系統時間。

  • 阻塞攻擊(Clogging Attack):此攻擊法比較特殊,攻擊者必須非常瞭解網路的運作程序,再依照其特點進行攻擊。譬如,TCP 連線動作是三向握手連絡法,攻擊者每次的要求連線只進行到一半便停止,則系統會耗費許多時間等待下一個訊號進入,或執行不完全連線的相關措施,造成系統的『阻塞』(Clogging)。只要攻擊者發動過多的阻塞連線的話,極有可能造成系統停頓。

偵測與防範阻斷攻擊的方法,唯有不停的檢測系統是否有異常的現象發生,然而這些動作大多是正常的程式運作,欲檢測出來實在不容易。一般會配合網路型入侵偵測,利用封包檢視器(如 Sniffer)過濾一些可疑的封包,再利用『特徵』比對或其他統計方法,找出攻擊者並攔截使其無法進入系統。

11-7-2 HIDS 系統 - 伺服主機

『伺服主機入侵偵測』可以說是網路安全最後一道防線,當入侵者已成功進入系統,並且開始盜取或破壞系統時,應該採取何種方法才可將這些『壞份子』揪出來。駭客入侵系統除了做了一些破壞的工作之外,最終目的是要盜取內部資料,如何在最後階段將其偵測出來,就是主機入侵偵測最主要的工作。但話說回來,依照過去使用的經驗,駭客欲入侵主機實在不容易,必須經過防火牆、網路入侵偵測等防護措施。其實最常見的入侵者通常發生在內部管理,亦即是內部合法員工盜取資訊,也可能是駭客堂堂進入辦公室操作電腦。因此,防止主機入侵的首要工作是要做好內部人員的管理,可以從『安全稽核』(Security Audit『系統日誌』(System Log兩方面著手,以下分別介紹之。

【(A)系統日誌】

一般系統(如 Unix)會將某些使用者登入、操作命令、異常登入、或者某些資源被存取的情況,都記錄在日誌檔案(Log File)內,入侵偵測系統只要將這些檔案內的資料轉換成資料庫格式型態,再從中搜尋出駭客的蛛絲馬跡;雖然這種操作看起來非常笨拙,卻是最徹底的偵測方法。一般系統通常非常忙碌,所產生的日誌檔案也非常的大,如何由這些資料中找出可疑的對象,的確不是一件容易的事。目前許多入侵系統都採用『資料探勘』(Data Miming)技術,由大筆的資料當中找出所需要的資訊。

到底系統日誌記錄了那些東西,相信這是讀者最期望知道的答案。基本上,系統日誌記錄的資料,視該部主機執行的應用程式(或網路伺服器)而定,更重要的是,必須系統管理者啟動它,才會真正記錄日誌。我們以 Linux 7.x 版為例,日誌檔案位於 /var/log 目錄下,包含有下列日誌檔案:

  • lastlog此日誌會記錄使用者帳號、通訊埠口、以及最後登入的時間,這些資料可以用來追蹤使用者登入系統的時間(利用 last 命令來讀取此檔案內容)

  • xferlog此檔案記錄 FTP 檔案傳送的操作,每一筆記錄表示系統執行一次 FTP 傳輸動作,其中包含運作時間、傳輸檔案名稱、使用者名稱等訊息。

  • httpd此目錄下包含兩個檔案:access_logerror_log,前者儲存一般存取資訊,包含何人、何時、以及如何存取 HTTP 伺服器內資源;後者記錄有那些存取錯誤的情況發生。

  • syslogd記錄許多行程(Process)類型,包含程式名稱、功能型態、優先性、以及累積記錄訊息等。

  • klogd攔截並記錄 Kernel 的訊息。

  • message接收 syslogd klogd 所輸出的訊息。

以上皆是較基本的日誌檔案,管理者可依照需求更改其記錄型態;譬如,由 syslog.conf 檔案去規劃 syslogd 檔案內的記錄訊息,並且可以利用 syslog 函數呼叫,來存取 syslogd 檔案內的資料。

【(B)安全稽核】

雖然從日誌檔案中搜尋入侵者的軌跡最為徹底,但礙於檔案過於龐大實在不容易達成。以 Unix/Linux 為例,當使用者由登入系統再執行一次 ls 命令之後,各種日誌檔案所記錄的資料大約有 30 筆訊息,由此可見,搜尋日誌檔案多半在處理一些無關緊要的資料。何不反過來思考,我們將一些敏感較高的資源設定有事件警告,任何人存取這些資源,或者有人越權試著想變更這些資源再將其記錄起來,只要由這些記錄中即可搜尋出可疑份子,這就是『安全稽核』的基本理念。

一般多人使用環境裡,針對每一使用者都有其權限的限制,另一方面,針對目錄檔案也會規劃那些使用者可以存取,以及存取權限如何。有了上述兩種規劃之後,就可以在某些檔案上設定稽核處理,作為記錄該檔案被存取的事實。當使用者越權,或者有異常狀態發生時,便會將這些事實登錄於安全稽核檔案內。我們以 Windows 為例來說明安全稽核的記錄型態;Windows 系統內定規劃有『應用程式記錄』、『安全性記錄』與『系統記錄』等三種檔案,每一種記錄檔的格式如圖 11-6 所示。它以格式化的資料型態記錄各個事件,每個事件記錄依功能分成三部份:表頭、事件描述與一個選擇性的額外資料,然而安全稽核是由前面兩個欄位所構成。

11-6 Windows 事件記錄

安全稽核的表頭包含下列欄位:

  • 日期:事件發生日期。

  • 時間:事件發生時間。

  • 使用者名稱:發生事件者。

  • 電腦名稱:發生事件所在的電腦名稱。

  • 事件 ID以數字表示發生事件名稱。

  • 來源:產生事件的來源;可能是一個應用程式、一項系統服務、或是驅動程式。

  • 型態:如果是一般日誌的話,可能是錯誤、警告或資訊型態;如果是安全稽核,則有成功稽核與失敗稽核兩種型態。

  • 類別:主要使用於安全日誌,指出該稽核事件是否已被啟動。

三個事件記錄檔中,系統日誌記錄本身作業系統所發生的事件;應用程式日誌檔記錄應用程式所發生的事件;安全日誌則登錄安全性相關事件。管理者除了透過瀏覽該檔案發覺發生事件的原因外,也可以編寫入侵偵測軟體,搜尋可疑的駭客入侵的軌跡。

【(C)主機阻斷偵測】

主機阻斷是一種獨佔共享資源的攻擊,利用佔據大部分的共享資源,致使他人無法使用資源。主機阻斷攻擊危及資源的可用性,這些資源包含行程、磁碟空間、CPU 使用率、數據機、以及讓管理者無暇應付的寶貴時間。一旦遭受此類型攻擊,輕者降低服務品質,重者癱瘓系統運作,基本上,有下列兩種攻擊方法:

  • 毀滅性攻擊:直接破壞系統運作,這種攻擊法大多必須擁有較高的系統使用權限才行,但我們也無法保證管理者密碼不會外洩。一旦攻擊者擁有這些權限,就可以直接下達毀滅性的攻擊,攻擊方法有:

    • 格式化磁碟機:攻擊者取得權限之後,可直接下達格式化磁碟機,如此一來,所有資料必毀於一旦。

    • 刪除重要檔案:刪除某些檔案使系統無法運作,譬如刪除 /et/passwd 檔案,讓使用者無法登入系統。

    • 關掉電腦電源:攻擊者進入主機房,直接切斷主機電源。雖然這種攻擊很無聊,但還是會造成很大的損傷。

    • 切斷網路連線:切斷網路連線,造成網路癱瘓。

  • 過載攻擊:它是指一共享資源或服務的請求,超過了系統所能負荷的程度,使其無法滿足其他使用者的請求,可能有下列幾種攻擊法:

    • 行程攻擊(Process Attack):攻擊者產生過多的行程,讓其他人無法使用。

    • 磁碟攻擊(Disk Attack:攻擊者針對某一個磁碟分割區,攻擊使其填滿,則其他人無法使用該磁區而癱瘓系統。

翻轉工作室:粘添壽

 

資訊與網路安全技術

 

 

翻轉電子書系列: