国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

IDS的標準化
2005-11-24   

為了提高IDS產品、組件及與其他安全產品之間的互操作性,美國國防高級研究計劃署(DARPA)和互聯網工程任務組(IETF)的入侵檢測工作組(IDWG)發起制訂了一系列建議草案,從體系結構、API、通信機制、語言格式等方面規范IDS的標準。
DARPA提出的建議是公共入侵檢測框架(CIDF),最早由加州大學戴維斯分校安全實驗室主持起草工作。1999年6月,IDWG就入侵檢測也出臺了一系列草案。但是,這兩個組織提出的草案或建議目前還正處于逐步完善之中,尚未被采納為廣泛接受的國際標準。不過,它們仍是入侵檢測領域最有影響力的建議,成為標準只是時間問題。
入侵檢測工作組(IDWG)
IDWG的任務是:定義數據格式和交換規程,用于入侵檢測與響應(IDR)系統之間或與需要交互的管理系統之間的信息共享。IDWG提出的建議草案包括三部分內容:入侵檢測消息交換格式(IDMEF)、入侵檢測交換協議(IDXP)以及隧道輪廓(Tunnel Profile)。
一、IDMEF
IDMEF描述了表示入侵檢測系統輸出信息的數據模型,并解釋了使用此模型的基本原理。該數據模型用XML實現,并設計了一個XML文檔類型定義。自動入侵檢測系統可以使用IDMEF提供的標準數據格式對可疑事件發出警報,提高商業、開放資源和研究系統之間的互操作性。IDMEF最適用于入侵檢測分析器(或稱為“探測器”)和接收警報的管理器(或稱為“控制臺”)之間的數據信道。
1.IDMEF的數據模型
IDMEF數據模型以面向對象的形式表示探測器傳遞給控制臺的警報數據,設計數據模型的目標是為警報提供確定的標準表達方式,并描述簡單警報和復雜警報之間的關系。
IDMEF數據模型各個主要部分之間的關系如圖1所示。
 
所有IDMEF消息的最高層類是IDMEF-Message,每一種類型的消息都是該類的子類。IDMEF目前定義了兩種類型的消息:Alert(警報)和Heartbeat(心跳),這兩種消息又分別包括各自的子類,以表示更詳細的消息。
需要注意的是,IDMEF數據模型并沒有對警報的分類和鑒別進行說明。例如,對一個端口的掃描,一個分析器可能將其確定為一個多目標的單一攻擊,而另一個分析器可能將其確定為來自同一個源的多次攻擊。只有一個分析器決定了發送的警報類型,數據模型才能規定怎樣對這個警報進行格式化。
IDMEF數據模型是用統一建模語言(UML)描述的。UML用一個簡單的框架表示實體以及它們之間的關系,并將實體定義為類。IDMEF包括的主要類有IDMEF-Message類、Alert類、Heartbeat類、Core類、Time類和Support類,這些類還可以再細分為許多子類。
2.使用XML描述IDMEF文檔標記
IDWG最早曾提出兩個建議實現IDMEF:用SMI(管理信息結構)描述一個SNMP MIB和使用DTD(文檔類型定義)描述XML文檔。IDWG 在1999年9月和2000年2月分別對這兩個建議進行了評估,認為XML最能符合IDMEF的要求,于是,在2000年2月的會議上決定采用XML方案。
XML是SGML(標準通用標記語言)的簡化版本,是ISO 8879標準對文本標記說明進行定義的一種語法。作為一種表示和交換網絡文檔及數據的語言,XML能夠有效地解決HTML面臨的許多問題,所以獲得了業界的普遍青睞。1998年10月,WWW聯盟(W3C)將XML作為一項建議公布于眾。此后不久,WWW聯盟又發布了一份建議,定義了XML文檔中的名字空間。
XML是一種元語言——即一個描述其他語言的語言,它允許應用程序定義自己的標記,還可以為不同類型的文檔和應用程序定義定制化的標記語言。
XML DTD(文檔類型定義)可用來聲明文檔所用的標記,它包括元素(文檔包括的不同信息部分)、屬性(信息的特征)和內容模型(各部分信息之間的關系)。
二、IDXP
IDXP(入侵檢測交換協議)是一個用于入侵檢測實體之間交換數據的應用層協議,能夠實現IDMEF消息、非結構文本和二進制數據之間的交換,并提供面向連接協議之上的雙方認證、完整性和保密性等安全特征。IDXP是BEEP的一部分,后者是一個用于面向連接的異步交互通用應用協議,IDXP的許多特色功能(如認證、保密性等)都是由BEEP框架提供的。IDXP模型如下:
1.建立連接
使用IDXP傳送數據的入侵檢測實體被稱為IDXP的對等體,對等體只能成對地出現,在BEEP會話上進行通信的對等體可以使用一個或多個BEEP信道傳輸數據。
對等體可以是管理器,也可以是分析器。分析器和管理器之間是多對多的關系,即一個分析器可以與多個管理器通信,同樣,一個管理器也可以與多個分析器通信;管理器與管理器之間也是多對多的關系,所以,一個管理器可以通過多個中間管理器接收來自多個分析器的大量警報。但是,IDXP規定,分析器之間不可以建立交換。
入侵檢測實體之間的IDXP通信在BEEP信道上完成。兩個希望建立IDXP通信的入侵檢測實體在打開BEEP信道之前,首先要進行一次BEEP會話,然后就有關的安全特性問題進行協商,協商好BEEP安全輪廓之后,互致問候,然后開始IDXP交換。
圖2是兩個入侵檢測實體“Alice”和“Bob”之間建立IDXP通信的過程:
 
注意:IDXP對等實體之間可能有多個代理,這些代理可能是防火墻,也可能是將公司每個部門分析器的數據轉發給總管理器的代理。隧道輪廓描述了使用代理時的IDXP交換。
2.傳輸數據
一對入侵檢測實體進行BEEP會話時,可以使用IDXP輪廓打開一個或多個BEEP信道,這樣就可以使用額外的信道建立額外的BEEP會話。但是,大多數情況下,額外信道都應在已有的BEEP會話上打開,而不是用IDXP輪廓打開一個包含額外信道的新BEEP會話。
在每個信道上,對等體都以客戶機/服務器模式進行通信,BEEP會話發起者為客戶機,而收聽者則為服務器。
圖3描述了一個分析器將數據傳送給一個管理器的簡單過程。
  
在一次BEEP會話時,使用多個BEEP信道有利于對在IDXP對等體之間傳輸的數據進行分類和優先權設置。例如,一個管理器M1在向另一個管理器M2傳送警報數據時,可以用不同的信道傳送不同類型的警報數據,在每個信道上管理器M1的作用都相當于一個客戶器,而M2則對不同信道上的數據作出相應的處理,如圖4所示。
 
3.斷開連接
在有些情況下,一個IDXP對等體可以選擇關閉某個IDXP信道。在關閉一個信道時,對等體在0信道上發送一個“關閉”元素,指明要關閉哪一個信道。一個IDXP對等體也可以通過在0信道上發送一個指明要“關閉”0信道的元素,來關閉整個BEEP會話。
在上面這個模型中, IDXP對等實體之間采用了一個BEEP安全輪廓實現端到端的安全,而無需通過中間的代理建立安全信任,因此,只有IDXP對等體之間是相互信任的,而代理是不可信的。
公共入侵檢測框架(CIDF)
CIDF所做的工作主要包括四部分:IDS的體系結構、通信機制、描述語言和應用編程接口API。
一.CIDF的體系結構
CIDF在IDES和NIDES的基礎上提出了一個通用模型,將入侵檢測系統分為四個基本組件:事件產生器、事件分析器、響應單元和事件數據庫。結構如圖5所示。
在這個模型中,事件產生器、事件分析器和響應單元通常以應用程序的形式出現,而事件數據庫則往往是文件或數據流的形式,很多IDS廠商都以數據收集部分、數據分析部分和控制臺部分三個術語來分別代替事件產生器、事件分析器和響應單元。
CIDF將IDS需要分析的數據統稱為事件,它可以是網絡中的數據包,也可以是從系統日志或其他途徑得到的信息。
以上四個組件只是邏輯實體,一個組件可能是某臺計算機上的一個進程甚至線程,也可能是多個計算機上的多個進程,它們以GIDO(統一入侵檢測對象)格式進行數據交換。GIDO是對事件進行編碼的標準通用格式(由CIDF描述語言CISL定義),GIDO數據流在圖5中以虛線表示,它可以是發生在系統中的審計事件,也可以是對審計事件的分析結果。

1.事件產生器
事件產生器的任務是從入侵檢測系統之外的計算環境中收集事件,并將這些事件轉換成CIDF的GIDO格式傳送給其他組件。例如,事件產生器可以是讀取C2級審計蹤跡并將其轉換為GIDO格式的過濾器,也可以是被動地監視網絡并根據網絡數據流產生事件的另一種過濾器,還可以是SQL數據庫中產生描述事務的事件的應用代碼。
2.事件分析器
事件分析器分析從其他組件收到的GIDO, 并將產生的新GIDO再傳送給其他組件。分析器可以是一個輪廓描述工具,統計性地檢查現在的事件是否可能與以前某個事件來自同一個時間序列; 也可以是一個特征檢測工具,用于在一個事件序列中檢查是否有已知的濫用攻擊特征;此外,事件分析器還可以是一個相關器,觀察事件之間的關系,將有聯系的事件放到一起,以利于以后的進一步分析。
3.事件數據庫
用來存儲GIDO,以備系統需要的時候使用。
4.響應單元
響應單元處理收到的GIDO,并據此采取相應的措施,如殺死相關進程、將連接復位、修改文件權限等。
由于CIDF有一個標準格式GIDO,所以這些組件也適用于其他環境,只需要將典型的環境特征轉換成GIDO格式,這樣就提高了組件之間的消息共享和互通。
二、CIDF的通信機制
為了保證各個組件之間安全、高效的通信,CIDF將通信機制構造成一個三層模型:GIDO層、消息層和協商傳輸層。
要實現有目的的通信,各組件就必須能正確理解相互之間傳遞的各種數據的語義,GIDO層的任務就是提高組件之間的互操作性,所以GIDO就如何表示各種各樣的事件做了詳細的定義。
消息層確保被加密認證消息在防火墻或NAT等設備之間傳輸過程中的可靠性。消息層只負責將數據從發送方傳遞到接收方,而不攜帶任何有語義的信息;同樣,GIDO層也只考慮所傳遞信息的語義,而不關心這些消息怎樣被傳遞。
單一的傳輸協議無法滿足CIDF各種各樣的應用需求,只有當兩個特定的組件對信道使用達成一致認識時,才能進行通信。協商傳輸層規定GIDO在各個組件之間的傳輸機制。
CIDF的通信機制主要討論消息的封裝和傳遞,主要分為四個方面:
1. 配對服務
配對服務采用了一個大型目錄服務LDAP(輕量級目錄訪問協議),每個組件都要到此目錄服務進行注冊,并通告其他組件它所使用或產生的GIDO類型。在此基礎上,組件才能被歸入它所屬的類別中,組件之間才能互相通信。
配對服務還支持一些安全選項(如公鑰證書、完整性機制等),為各個組件之間安全通信、共享信息提供了一種統一的標準機制,大大提高了組件的互操作性,降低了開發多組件入侵檢測與響應系統的難度。
2. 路由
組件之間要通信時,有時需經過非透明的防火墻,發送方先將數據包傳遞給防火墻的關聯代理,然后再由此代理將數據包轉發到目的地。CIDF采用了兩種路由:源路由和絕對路由。
3. 消息層
消息層要實現的功能包括:
(1)提供一個開放的體系結構。
(2)使消息獨立于操作系統、編程語言和網絡協議。
(3)簡化向CIDF中增添新組件的過程。
(4)支持鑒定與保密等安全需求。
(5)同步(封鎖進程與非封鎖進程)。
4. 消息層處理
消息層處理規定了消息層消息的處理方式,它包括四個規程:標準規程、可靠傳輸規程、保密規程和鑒定規程。
三、CIDF語言
CIDF的總體目標是實現軟件的復用和IDR(入侵檢測與響應)組件之間的互操作性。首先,IDR組件基礎結構必須是安全、健壯、可伸縮的,CIDF的工作重點是定義了一種應用層的語言CISL(公共入侵規范語言),用來描述IDR組件之間傳送的信息,以及制定一套對這些信息進行編碼的協議。CISL可以表示CIDF中的各種信息,如原始事件信息(審計蹤跡記錄和網絡數據流信息)、分析結果(系統異常和攻擊特征描述)、響應提示(停止某些特定的活動或修改組件的安全參數)等。
CISL使用了一種被稱為S表達式的通用語言構建方法,S表達式可以對標記和數據進行簡單的遞歸編組,即對標記加上數據,然后封裝在括號內完成編組,這跟LISP有些類似。S表達式的最開頭是語義標識符(簡稱為SID),用于顯示編組列表的語義。例如下面的S表達式:
(HostName ‘first.example.com’)
該編組列表的SID是HostName,它說明后面的字符串“first.example.com”將被解釋為一個主機的名字。
有時侯,只有使用很復雜的S表達式才能描述出某些事件的詳細情況,這就需要使用大量的SID。SID在CISL中起著非常重要的作用,用來表示時間、定位、動作、角色、屬性等,只有使用大量的SID,才能構造出合適的句子。CISL使用范例對各種事件和分析結果進行編碼,把編碼的句子進行適當的封裝,就得到了GIDO。
GIDO的構建與編碼是CISL的重點。
四、CIDF的API接口
CIDF的API負責GIDO的編碼、解碼和傳遞,它提供的調用功能使得程序員可以在不了解編碼和傳遞過程具體細節的情況下,以一種很簡單的方式構建和傳遞GIDO。
GIDO的生成分為兩個步驟:第一,構造表示GIDO的樹型結構;第二,將此結構編成字節碼。
在構造樹形結構時,SID被分為兩組:一組把S表達式作為參數(即動詞、副詞、角色、連接詞等),另一組把單個數據或一個數據陣列作為參數(即原子),這樣就可以把一個完整的句子表示成一棵樹,每個SID表示成一個節點,最高層的SID是樹根。因為每個S表達式都包含一定的數據,所以,樹的每個分支末端都有表示原子SID的葉子。
由于編碼規則是定義好的,所以對樹進行編碼只是一個深度優先遍歷和對各個節點依次編碼的過程。在這種情況下,我們可以先對V編碼,然后對R1子樹編碼,再對R2子樹編碼。如果上面的句子是一個連接句的一部分,那么,每個成分句都可以從中完好地提取出來。也就是說,如果句子事先已經編碼,在插入到一個連接句時無須再進行編碼。
將字節碼進行解碼跟上面的過程正好相反,在SID碼的第一個字節里有一個比特位顯示其需要的參數:是基本數據類型,還是S表達式序列。然后語法分析器再對后面的字節進行解釋。CIDF的API并不能根據樹構建邏輯GIDO,但提供了將樹以普通GIDO的S表達式格式進行打印的功能。
CIDF的API為實現者和應用開發者都提供了很多的方便,它分為兩類:GIDO編碼/解碼API和消息層API。

熱詞搜索:

上一篇:IDS:安全新亮點
下一篇:Win2K入侵檢測實例分析

分享到: 收藏
主站蜘蛛池模板: 宾阳县| 明溪县| 万州区| 上高县| 合阳县| 松溪县| 临海市| 长葛市| 新沂市| 大连市| 中山市| 汶上县| 郑州市| 霞浦县| 延津县| 山阴县| 永州市| 依兰县| 福建省| 贡嘎县| 马边| 林芝县| 涞源县| 平乡县| 昌乐县| 乌什县| 陵川县| 五寨县| 漳浦县| 鹤庆县| 田东县| 泰安市| 江西省| 叙永县| 洞头县| 新建县| 西宁市| 滨州市| 伽师县| 蒲城县| 金寨县|