當前位置:首頁 > 通信技術 > 通信技術
[導讀]摘要:基于濫用和基于異常的檢測模型是IDS系統(tǒng)兩大檢測模型,其對應的技術即為網絡引擎和主機代理。本文主機代理采用基于異常的模型進行入侵檢測,與數據庫中存儲的入侵特征庫進行比較,從而判斷是否是一次攻擊,從而

摘要:基于濫用和基于異常的檢測模型是IDS系統(tǒng)兩大檢測模型,其對應的技術即為網絡引擎和主機代理。本文主機代理采用基于異常的模型進行入侵檢測,與數據庫中存儲的入侵特征庫進行比較,從而判斷是否是一次攻擊,從而實現(xiàn)一個網絡引擎可以監(jiān)視具有多臺主機的整個網段,通過網絡引擎實現(xiàn)企業(yè)網絡中所有組件不受攻擊。
關鍵詞:檢測模型;網絡引擎;主機代理;特征庫

    近年來入侵檢測系統(tǒng)(IDS)成為一個非?;钴S的研究領域。所謂入侵檢測,就是通過從計算機網絡或計算機系統(tǒng)中的若干關鍵點收集信息并對其進行分析,以發(fā)現(xiàn)網絡或系統(tǒng)中是否有違反安全策略的行為和遭到襲擊的跡象。在二十世紀八十年代,大多數入侵者都是高水平的專家,他們經常自己研究入侵系統(tǒng)的方法,而很少使用自動工具和現(xiàn)成的代碼。雖然現(xiàn)在的入侵者的整體技術水平越來越不如以前,但是現(xiàn)在的攻擊工具卻越來越高級。這使得任何人都可以使用現(xiàn)成的工具來攻擊Internet上的計算機系統(tǒng)。入侵檢測系統(tǒng)的目標是將攻擊的各種表象特征化,以確認所有真正的攻擊而且又不誤認非攻擊活動。

1 網絡引擎引入及設計
    網絡引擎通過分析網絡上傳輸的數據包,得到可能入侵的信息。它不僅是一個數據產生和傳輸的工具,也具有一定的分析能力。它的功能基本上相當于一個完整的基于網絡的入侵檢測系統(tǒng)。為了提高網絡引擎的檢測的速度和準確度,首先,基于已知的攻擊手段來建立黑客攻擊的元數據庫,保存所有已知的黑客攻擊知識,按照其類別進行分類。其次,采用建立模糊模型來對網絡引擎上報事件進行分析。
    網安入侵檢測系統(tǒng)中的網絡引擎是在windows NT平臺上,使用Visual C++6.0編程實現(xiàn)。網絡引擎分為以下幾個模塊:數據包截獲、協(xié)議分析、數據分析。結構如圖1所示。


    1)數據包截獲  該模塊將網絡接口設置為混雜模式,將流經網絡的數據包截取下來,供協(xié)議分析模塊使用。由于效率的需要,有時要根據設置過濾網絡上的一些數據包,如特定IP、特定MAC地址、特定協(xié)議的數據包。該模塊的過濾功能的效率是該網絡監(jiān)聽的關鍵,因為對于網絡上的每一數據包都會使用該模塊過濾,判斷是否符合過濾條件。低效率的過濾程序會導致數據包丟失、分析部分來不及處理。
    為提高效率,本系統(tǒng)采用了專門為數據監(jiān)聽應用程序設計的開發(fā)包Winpcap來實現(xiàn)這模塊,開發(fā)包中內置的內核層所實現(xiàn)的BPF過濾機制和許多接口函數,不但能夠提高監(jiān)聽部分的效率,也降低了開發(fā)的難度。同時Winpcap是從UNIX平臺上的Libpcap移植過來的,它們具有相同的接口,減輕了不同平臺上開發(fā)網絡代理的難度。Winpcap有3部分組成:一個數據包監(jiān)聽設備驅動程序,一個低級的動態(tài)連接庫和一個高級的靜態(tài)連接庫。數據包監(jiān)聽設備驅動程序直接從數據鏈路層取得網絡數據包,并不加修改地傳遞給運行在用戶層的應用程序。數據包監(jiān)聽設備驅動程序支持BPF過濾機制,可以靈活地設置過濾規(guī)則。低級的動態(tài)鏈接庫運行在用戶層,它把應用程序和數據包監(jiān)聽設備驅動程序隔離開來,使得應用程序可以不加修改地在不同Windows系統(tǒng)上運行。高級靜態(tài)鏈接庫和應用程序編譯在一起,它使用低級動態(tài)鏈接庫提供的服務,向應用程序提供完善的監(jiān)聽接口。
    2)協(xié)議分析  協(xié)議分析的功能是辨別數據包的協(xié)議類型,以便使用相應的數據分析程序來檢測數據包。把所有的協(xié)議構成一棵協(xié)議樹,一個特定的協(xié)議是該樹結構中的一個節(jié)點,可以用一棵二又樹來表示,如圖2所示。


    一個網絡數據包的分析就是一條從根到某個葉子的路徑。在程序中動態(tài)地維護和配置此樹結構即可實現(xiàn)非常靈活的協(xié)議分析功能。在該樹結構中可以加入自定義的協(xié)議節(jié)點,如在HTTP協(xié)議中可以把請求URL列入該樹中作為一個點,再將URL中不同的方法作為子節(jié)點,這樣可以細化分析數據,提高檢測效率。樹的結點數據結構中包含以下信息:該協(xié)議的特征、協(xié)議名稱、協(xié)議代號,下級協(xié)議代號,協(xié)議對應的數據分析函數鏈表。協(xié)議名稱是該協(xié)議的唯一標志。協(xié)議代號是為了提高分析速度用的編號。下級協(xié)議代號是在協(xié)議樹中其父結點的編號,如TCP的下級協(xié)議是IP協(xié)議。協(xié)議特征是用于判定一個數據包是否為該協(xié)議的特征數據,這是協(xié)議分析模塊判斷該數據包的協(xié)議類型的主要依據。數據分析函數鏈表是包含對該協(xié)議進行檢測的所有函數的鏈表。該鏈表的每一節(jié)點包含可配置的數據,如是否啟動該檢測函數等。 
    3)數據分析  數據分析模塊的功能是分析某一特定協(xié)議數據。一個數據分析函數檢查一種協(xié)議類型的入侵,這樣可以方便地進行配置。一個協(xié)議數據可能有多個數據分析函數來處理它,這些函數地被放到一個鏈表中。一般情況下,數據分析盡可能地放到樹結構的葉子節(jié)點上或盡可能地靠近葉子節(jié)點,因為樹根部分調用次數最多,過多的數據分析函數聚集在此會嚴重影響系統(tǒng)的性能。同時葉子節(jié)點上的協(xié)議明確,分析程序可以少做一些冗余的工作,也由此提高了系統(tǒng)的處理速度。數據分析函數不僅僅由數據包觸發(fā),也可以是系統(tǒng)定義的某一個事件來觸發(fā)。如時間、特定的數據包到來、管理員啟動、某種數據分析的結果等都可以觸發(fā)一個數據分析函數的啟動檢測。這些靈活的觸發(fā)方式提供了良好的可配置性,也提供了一個開放的、分布的平臺使各種分析技術在一個系統(tǒng)中工作。
    數據分析的方法是入侵檢測系統(tǒng)的核心。使用了快速的模式匹配算法,所有的攻擊方法被表示為模式信號,存放在入侵特征數據庫中,當前的數據如果和數據庫中某種特征匹配,就指出這是這種入侵行為。如發(fā)現(xiàn)一個HTTP請求某個服務器上的“/cgi—bin/phf”,這很可能是一個攻擊者正在尋找系統(tǒng)的CGI漏洞。
    本文設計這個體系結構時充分考慮了系統(tǒng)的開放性,可以向系統(tǒng)中添加任何一種分析方法,也可以把多種分析方法同時運用到系統(tǒng)中,甚至在不關閉系統(tǒng)的狀態(tài)下向系統(tǒng)動態(tài)地添加新的數據分析功能。這充分保證了系統(tǒng)的可靠安全服務。動態(tài)添加數據分析功能是通過添加新的動態(tài)連接庫中的數據分析函數來實現(xiàn)的。對于已經有的分析功能,可以在入侵特征數據庫中添加新的入侵特征,以增強現(xiàn)有模式匹配分析方法的檢測能力。

2 檢測規(guī)則和匹配算法
    網絡引擎的實現(xiàn)中,最為關鍵的部分是數據分析模塊。該模塊中涉及到兩個問題:如何描述入侵行為;使用什么算法來快速檢測入侵行為的存在。
    在實現(xiàn)中,本文使用了與SNORT兼容的檢測規(guī)則來描述入侵行為,使用一種改進的Boyer-Moore-Horspool算法來進行匹配。模式匹配是第一代和第二代入侵檢測系統(tǒng)所使用的基于攻擊特征的網絡數據包分析技術。它的分析速度快、誤報率小等優(yōu)點是其他分析方法不可比擬的。協(xié)議分析有效利用了網絡協(xié)議的層次性和相關協(xié)議的知識,快速地判斷攻擊特征是否存在。它的高效使得匹配的計算量大幅度減小。
    本文在網絡引擎的數據分析模塊中使用協(xié)議分析和模式匹配結合的方法來分析網絡數據包。首先使用協(xié)議分析來判斷要進行哪種類型的特征檢測,然后使用檢測規(guī)則來進行匹配。
2.1 檢測規(guī)則
    每一個基于模式匹配的人檢測方法都需要一個已定的入侵模式。這就需要一種對入侵行為的描述方法?,F(xiàn)在的各種入侵檢測系統(tǒng)中的描述方法各有不同,每個廠商定義自己的描述方法,每種方法各有優(yōu)缺點。在網安入侵檢測系統(tǒng)中,采用了Snort的入侵行為描述方法。Snort是一個開放源代碼的輕量級的基于網絡的入侵檢測系統(tǒng)。這種描述方法簡單、易于實現(xiàn),能夠描述絕大多數的入侵行為。由于其簡單,因此檢測速度比較快。每條規(guī)則分為邏輯上的兩部分:規(guī)則頭部和規(guī)則選項。規(guī)則頭部包含規(guī)則的操作、協(xié)議、源IP地址和目標IP地址及其網絡掩碼和端口。規(guī)則選項包括報警信息及需要檢測模式信息。以下是一個例子:
    alert tcp any any->192.168.1.0/24 111(content:“|00 01 86 a5|”;msg:“mounted access”;)
    以上規(guī)則描述了:任何使用TCP協(xié)議連接網絡IP地址192.168.1.1到192.168.1.255的任何主機的111端口的數據包中,如果出現(xiàn)了二進制數據00 01 86 a5,便發(fā)出警告信息mounted access。在圓括號前的部分是規(guī)則頭部,在圓括號中的部分是規(guī)則選項。規(guī)則選項部分中冒號前面的詞組稱為選項關鍵字。規(guī)則選項不是規(guī)則的必需部分,它只是用來定義收集特定數據包的特定特征。一條規(guī)則中不同部分必須同時滿足才能執(zhí)行,相當于“與”操作。而同一個規(guī)則數據庫文件中的所有規(guī)則之間相當于一個“或”操作。規(guī)則頭部包含了定義數據包“從哪里來,到什么地方去、干什么”以及發(fā)現(xiàn)滿足這個規(guī)則所有條件的數據包時應該干什么的信息。規(guī)則的第一項是規(guī)則操作,第二項是協(xié)議,第三項是IP地址和端口。規(guī)則操作說明當發(fā)現(xiàn)適合條件的數據包時應該做些什么。有3種操作:alert、log和pass。
    alert:使用選定的告警方法產生警報,并記錄這個數據包。
    log:記錄該數據包。
    pass:忽略該數據包。
    規(guī)則頭部的第二部分是協(xié)議。
    規(guī)則頭部的第三部分是IP地址和端口。關鍵字“any”可以用來定義任何IP地址。網絡引擎不提供從主機名稱到IP地址的轉換,所以IP地址規(guī)定為點分十進制的IP地址格式,在IP地址后指定網絡掩碼。例如任何由外部網絡發(fā)起的連接可以表示為:
    alert tcp ! 192.168.1.0/24 any->192.168.1.0/24 111
    端口號可以用幾種方法指定:用“any”、數字、范圍以及用“非”操作符。“any”指定任意端口。靜態(tài)數值指定一個單一端口,如80為HTYP,23為TELNET等。指定端口范圍用“:”,它可以指定一個范圍內的所有端口。如:
    log udp any any->192.168.1.0/24 1:1024
    記錄從任意主機發(fā)起的到目標網絡的任何主機上的1~1 024端口的UDP協(xié)議數據包。
    log tcp any any->192.168.1.0/24:6000
    記錄從任意主機發(fā)起的到目標網絡的任何主機上的端口號小于等于6 000的TCP協(xié)議數據。
    log top any:1024->192.168.1.0/24 500:
2.2 匹配算法
    匹配算法是檢測引擎的關鍵,它直接影響系統(tǒng)的實時性能。在網絡數據包搜索入侵特征時,需要一個有效的字符串搜索算法。字符串搜索算法中,最著名的兩個是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。兩個算法在最壞情況下均具有線性的搜索時間。在實用上,KMP算法并不比最簡單的c庫函數strstr()快多少,而BM算法則往往比KMP算法快上3~5倍。但是BM算法還不是最快的算法,還有很多改進的BM算法存在。
    第一次匹配結果是在第二個字符處發(fā)現(xiàn)不匹配,于是要把子串往后移動。但是該移動多少呢?最簡單的做法是移動一個字符位置;KMP是利用已經匹配部分的信息來移動;BM算法是做反向比較,并根據已經匹配的部分來確定移動量。Boyer-Moore-Hompool算法根據被比較串對齊的最后一個字符(r)來決定位移量的多少。本文的方法是根據緊跟在當前子串之后的那個字符(例子中的i)獲得位移量。
    顯然,由于上一次匹配的失敗,移動是必然的,因此,設移動步數為N,則N≥1。但N的最大值是多少?如果這個字符在模式串中,顯然應該根據模式串的位置來決定。如果它在模式串中就沒有出現(xiàn),顯然連它自己也不用比較了,因此可以移動到該字符的下一個字符開始比較。以上面的例子,子串“search”中并不存在“i”,則說明可以直接跳過一大片,從“i”之后的那個字符開始作下一步的比較,如下:
    substring searching procedure
    search^
    比較的結果,第1個字符又不匹配,再看子串后面的那個字符,是“r”,它在子串中出現(xiàn)在倒數第3位,于是把子串向前移動3位,使2個“r”對齊,如下:
    substring searching procedure
    search
    這次匹配成功了?;仡櫿麄€過程,只移動了兩次子串就找到了匹配位置,可以看出,用這個算法,每一步的移動量都比BMH算法要大,所以比BMH算法更快。
    以下是用類封裝的搜索算法:
   
   
2.3 檢測舉例
    以下是網絡引擎判斷某個網絡數據包是否是CGI攻擊的一個示例,協(xié)議規(guī)范指出以太網絡數據包中第13字節(jié)處包含了2個字節(jié)的第三層協(xié)議標識。本入侵檢測系統(tǒng)利用該知識開始第1步檢測:跳過前面12個字節(jié),讀取13字節(jié)處的2字節(jié)協(xié)議標識:08。根據協(xié)議規(guī)范可以判斷這個網絡數據包是IP包。IP協(xié)議規(guī)定IP包的第24字節(jié)處有一個1字節(jié)的第四層協(xié)議標識。因此系統(tǒng)跳過的15到24字節(jié)直接讀取第四層協(xié)議標識:06,這個數據包是TCP協(xié)議。TCP協(xié)議在第35字節(jié)處有一個2字節(jié)的應用層協(xié)議標識(端口號)。于是系統(tǒng)跳過第25到34字節(jié)直接讀取第35字節(jié)的端口號:80。
    該數據包是一個HTTP協(xié)議的數據包。HTTP協(xié)議規(guī)定第55字節(jié)是URL開始處,檢測特征“GET/cgi—bin/./phf”,因此對這個URL進行模式匹配??梢钥闯?,利用協(xié)議分析可以減小模式匹配的計算量,提高匹配的精確度,減少誤報率。

3 主機代理
    基于主機的入侵檢測要依賴于特定的操作系統(tǒng)和審計跟蹤日志獲取信息,此類系統(tǒng)的原始數據來源受到所依附具體操作系統(tǒng)平臺的限制,系統(tǒng)的實現(xiàn)主要針對某種特定的系統(tǒng)平臺,在環(huán)境適應性、可移植性方面問題較多。在獲取高層信息以及實現(xiàn)一些特殊功能時,如針對系統(tǒng)資源情況的審計方面具有無法替代的作用。本文設計的入侵檢測系統(tǒng)應用于Windows操作系統(tǒng)。
3.1 數據來源
    主機代理的數據來源不像網絡引擎的數據來源那樣單一,它可以在系統(tǒng)所能夠訪問的所有地方獲得數據來分析。網安入侵檢測系統(tǒng)主機代理的數據來源有:
    1)系統(tǒng)和網絡日志文件  黑客經常在系統(tǒng)日志文件中留下他們的蹤跡,因此,充分利用系統(tǒng)和網絡日志文件信息是檢測入侵的必要條件。日志中包含發(fā)生在系統(tǒng)和網絡上的不尋常和不期望活動的證據,這些證據可以指出有人正在入侵或己成功入侵了系統(tǒng)。通過查看日志文件,能夠發(fā)現(xiàn)成功的入侵或入侵企圖,并很快地啟動相應的應急響應程序。日志文件中記錄了各種行為類型,每種類型又包含不同的信息,例如記錄“用戶活動”類型的日志,就包含登錄、用戶ID改變、用戶對文件的訪問、授權和認證信息等內容。很顯然地,對用戶活動來講,不正常的或不期望的行為就是重復登錄失敗、登錄到不期望的位置以及非授權的企圖訪問重要文件等等。
    2)目錄和文件中的不期望的改變  網絡環(huán)境中的文件系統(tǒng)包含很多軟件和數據文件,包含重要信息的文件和私有數據文件經常是黑客修改或破壞的目標。目錄和文件中的不期望的改變(包括增加、刪除、修改),特別是那些正常情況下限制訪問的,很可能就是一種入侵產生的指示和信號。黑客經常替換、修改和破壞他們獲得訪問權的系統(tǒng)上的文件,同時為了隱藏系統(tǒng)中他們的表現(xiàn)及活動痕跡,都會盡力去替換系統(tǒng)程序或修改系統(tǒng)日志文件。
    3)程序執(zhí)行中的不期望行為  網絡系統(tǒng)上的程序執(zhí)行一般包括操作系統(tǒng)、網絡服務、用戶啟動的程序和特定目的的應用,例如數據庫服務器。每個在系統(tǒng)上執(zhí)行的程序由一到多個進程來實現(xiàn)。每個進程執(zhí)行在具有不同權限的環(huán)境中,這種環(huán)境控制著進程可訪問的系統(tǒng)資源、程序和數據文件等。一個進程的執(zhí)行行為由它運行時執(zhí)行的操作來表現(xiàn),操作執(zhí)行的方式不同,它利用的系統(tǒng)資源也就不同。操作包括計算、文件傳輸、設備和其它進程,以及與網絡間其他進程的通訊。一個進程出現(xiàn)了不期望的行為可能表明黑客正在入侵你的系統(tǒng)。黑客可能會將程序或服務的運行分解,從而導致它失敗,或者是以非用戶或管理員意圖的方式操作。
3.2 代理結構
    從以上可以看出,主機代理的數據來源比網絡引擎復雜得多,由于數據源的不同,分析方法也各不一樣。本系統(tǒng)的主機代理分為日志分析、文件檢測、用戶行為監(jiān)測、主機網絡接口檢測。

4 結束語
    本文設計的入侵檢測系統(tǒng)使用了網絡引擎來檢測流經網絡的數據包,一個網絡引擎可以監(jiān)視具有多臺主機的整個網段,從路由器的基礎設施到應用程序的訪問,可以說網絡引擎能夠檢測企業(yè)網絡中所有組件所受到的攻擊。不過網絡引擎在下列情況下也有局限性:
    1)快速網絡  隨著網絡速度的加快,有時候網絡引擎的工作速度無法跟上網絡數據傳輸的速度。
    2)加密數據  如果網絡數據被加密的話,網絡引擎即不能起作用,原因是它無法正確地“看到”網絡數據。
    3)交換網絡  在交換網絡中,是不可能從一個中央位置處看見所有網絡數據的。因為通常網絡數據都是停留在交換的網段內部。而利用主機代理,就不受上述情況的限制。利用網絡引擎和主機代理,將基于網絡的入侵檢測系統(tǒng)和基于主機的入侵檢測系統(tǒng)結合起來,就構成了實現(xiàn)網絡入侵檢測的比較可靠的解決方案。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉