自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

入侵檢測系統(tǒng)分析及其在Linux下實現(xiàn)

運維 系統(tǒng)運維
所謂入侵,是指任何試圖危及計算機(jī)資源的完整性、機(jī)密性或可用性的行為。

一、入侵檢測系統(tǒng)分析

1.1 什么是入侵檢測系統(tǒng)

所謂入侵,是指任何試圖危及計算機(jī)資源的完整性、機(jī)密性或可用性的行為。而入侵檢測,顧名思義,便是對入侵行為的發(fā)覺。它通過從計算機(jī)網(wǎng)絡(luò)或系統(tǒng)中的若干關(guān)鍵點收集信息,并對這些信息進(jìn)行分析,從而發(fā)現(xiàn)網(wǎng)絡(luò)或系統(tǒng)中是否有違反安全策略的行為和遭到襲擊的跡象。進(jìn)行入侵檢測的軟件與硬件的組合便是入侵檢測系統(tǒng)(簡稱IDS)。與其他安全產(chǎn)品不同的是,入侵檢測系統(tǒng)需要更多的智能,它必須可以將得到的數(shù)據(jù)進(jìn)行分析,并得出有用的結(jié)果。一個合格的入侵檢測系統(tǒng)能大大簡化管理員的工作,保證網(wǎng)絡(luò)安全地運行。

1.2 入侵檢測系統(tǒng)的分類

按檢測所使用數(shù)據(jù)源的不同可以將IDS分為基于主機(jī)的IDS和基于網(wǎng)絡(luò)的IDS。

基于主機(jī)的IDS使用各種審計日志信息(如主機(jī)日志、路由器日志、防火墻日志等)作為檢測的數(shù)據(jù)源。通常,基于主機(jī)的IDS可監(jiān)測系統(tǒng)、事件和操作系統(tǒng)下的安全記錄以及系統(tǒng)記錄。當(dāng)有文件發(fā)生變化時,IDS將新的記錄條目與攻擊標(biāo)記相比較,看它們是否匹配。如果匹配,系統(tǒng)就會向管理員報警,以采取措施。

基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)使用原始網(wǎng)絡(luò)分組數(shù)據(jù)包作為數(shù)據(jù)源?;诰W(wǎng)絡(luò)的IDS通常利用一個運行在混雜模式下的網(wǎng)絡(luò)適配器來實時監(jiān)視并分析通過網(wǎng)絡(luò)的所有通信業(yè)務(wù)。一旦檢測到了攻擊行為,IDS的響應(yīng)模塊就會對攻擊采取相應(yīng)的反應(yīng),如通知管理員、中斷連接、終止用戶等。

1.3 入侵檢測的檢測方法

入侵檢測技術(shù)通過對入侵行為的過程與特征的研究,使安全系統(tǒng)對入侵事件和入侵過程能做出實時響應(yīng),從檢測方法上分為兩種:誤用入侵檢測和異常入侵檢測。

在誤用入侵檢測中,假定所有入侵行為和手段都能夠表達(dá)為一種模式或特征,那么所有已知的入侵方法都可以用匹配的方法發(fā)現(xiàn)。誤用入侵檢測的關(guān)鍵是如何表達(dá)入侵的模式,把真正的入侵與正常行為區(qū)分開來。其優(yōu)點是誤報少,局限性是它只能發(fā)現(xiàn)已知的攻擊,對未知的攻擊無能為力。

在異常入侵檢測中,假定所有入侵行為都是與正常行為不同的,這樣,如果建立系統(tǒng)正常行為的軌跡,那么理論上可以把所有與正常軌跡不同的系統(tǒng)狀態(tài)視為可疑企圖。比如,通過流量統(tǒng)計分析將異常時間的異常網(wǎng)絡(luò)流量視為可疑。異常入侵檢測的局限是并非所有的入侵都表現(xiàn)為異常,而且系統(tǒng)的軌跡難于計算和更新。

對比這兩種檢測方法可以發(fā)現(xiàn),異常檢測難于定量分析,這種檢測方式有一種固有的不確定性。與此不同,誤用檢測會遵循定義好的模式,能通過對審計記錄信息做模式匹配來檢測,但僅可檢測已知的入侵方式。所以這兩類檢測機(jī)制都不完美。就具體的檢測方法來說,現(xiàn)在已經(jīng)有了很多入侵檢測的方法,但任何一種方法都有它的局限性,都不能解決所有問題。因而對于入侵檢測方法的研究仍然是當(dāng)前入侵檢測研究的一個重點。

二、Linux下的實現(xiàn)

在對入侵檢測技術(shù)研究的基礎(chǔ)上,我們在Linux系統(tǒng)下設(shè)計并實現(xiàn)了一個基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)。

2.1 系統(tǒng)的組成結(jié)構(gòu)

該系統(tǒng)的組成結(jié)構(gòu)如圖1所示。數(shù)據(jù)采集模塊負(fù)責(zé)從網(wǎng)絡(luò)上收集原始的網(wǎng)絡(luò)數(shù)據(jù)流,在經(jīng)過一定的預(yù)處理后,這些數(shù)據(jù)被送到數(shù)據(jù)分析模塊,由數(shù)據(jù)分析模塊進(jìn)行分析,以便判斷是否有違反安全策略的入侵行為發(fā)生。并及時將分析結(jié)果送到告警模塊,由告警模塊向控制臺產(chǎn)生告警信息。用戶可以通過用戶界面與控制臺交互,通過控制臺,一方面可以對各個模塊進(jìn)行配置,另一方面也可以接收告警信息。

#p#

2.2 系統(tǒng)的功能描述

該系統(tǒng)實現(xiàn)了入侵檢測的主要功能,包括數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、入侵分析以及告警。具體來說,可以完成以下功能:

● 捕獲符合指定條件的網(wǎng)絡(luò)數(shù)據(jù)包。

● 進(jìn)行IP重組,提供IP包數(shù)據(jù)。

● 重組TCP流,提供TCP流數(shù)據(jù)。

● 重組應(yīng)用層數(shù)據(jù)流,提供HTTP數(shù)據(jù)流。

● 實現(xiàn)基于規(guī)則的入侵檢測方法。

● 向控制臺提交分析結(jié)果。

● 接受控制臺的配置和管理。

由于該系統(tǒng)功能的實現(xiàn)主要體現(xiàn)在數(shù)據(jù)采集模塊和數(shù)據(jù)分析模塊中,所以下面將對這兩個模塊加以詳細(xì)說明。

2.3 數(shù)據(jù)采集模塊

數(shù)據(jù)采集是入侵檢測的基礎(chǔ),入侵檢測的效率在很大程度上依賴于所采集信息的可靠性和正確性。在基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)中,數(shù)據(jù)采集模塊需要監(jiān)聽所保護(hù)網(wǎng)絡(luò)的某個網(wǎng)段或某幾臺主機(jī)的網(wǎng)絡(luò)流量,經(jīng)過預(yù)處理后得到網(wǎng)絡(luò)、系統(tǒng)、用戶以及應(yīng)用活動的狀態(tài)和行為信息。數(shù)據(jù)采集需要在網(wǎng)絡(luò)中的若干關(guān)鍵點進(jìn)行。

具體來說,數(shù)據(jù)采集模塊需要監(jiān)聽網(wǎng)絡(luò)數(shù)據(jù)包,進(jìn)行IP重組,進(jìn)行TCP/UDP協(xié)議分析,同時也要進(jìn)行應(yīng)用層協(xié)議數(shù)據(jù)流分析。采集到的數(shù)據(jù)要經(jīng)過預(yù)處理才能提交給數(shù)據(jù)分析模塊。由于不同的分析方法所需要的數(shù)據(jù)源是不同的,所以預(yù)處理也會有很大的不同。但是,一般來說,分析模塊所分析的數(shù)據(jù)都是基于某個網(wǎng)絡(luò)協(xié)議層的數(shù)據(jù)信息,或是直接采用這些數(shù)據(jù)的某些部分。因此在該系統(tǒng)的設(shè)計中,數(shù)據(jù)采集模塊除了采集數(shù)據(jù)外,還要對這些信息進(jìn)行協(xié)議分析。協(xié)議分析是指將網(wǎng)絡(luò)上采集到的基于IP的數(shù)據(jù)進(jìn)行處理,以便得到基于某種協(xié)議的數(shù)據(jù)。在本系統(tǒng)中主要是針對TCP/IP協(xié)議族的分析。

網(wǎng)絡(luò)數(shù)據(jù)采集是利用以太網(wǎng)絡(luò)的廣播特性實現(xiàn)的,以太網(wǎng)數(shù)據(jù)傳輸通過廣播實現(xiàn),但是在系統(tǒng)正常工作時,應(yīng)用程序只能接收到以本主機(jī)為目標(biāo)主機(jī)的數(shù)據(jù)包,其他數(shù)據(jù)包將被丟棄。為了采集到流經(jīng)本網(wǎng)段的所有數(shù)據(jù),我們需要首先將網(wǎng)卡設(shè)置為混雜模式,使之可以接收目標(biāo)MAC地址不是自己MAC地址的數(shù)據(jù)包,然后直接訪問數(shù)據(jù)鏈路層,截獲相關(guān)數(shù)據(jù),由應(yīng)用程序?qū)?shù)據(jù)進(jìn)行過濾處理,這樣就可以監(jiān)聽到流經(jīng)網(wǎng)卡的所有數(shù)據(jù)。

在進(jìn)行數(shù)據(jù)捕獲時,我們采用的是libpcap,libpcap是一個與實現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲機(jī)制的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。該庫提供的C函數(shù)接口可用于需要捕獲經(jīng)過網(wǎng)絡(luò)接口數(shù)據(jù)包的系統(tǒng)開發(fā)上。這個庫為不同的平臺提供了一致的編程接口,在安裝了libpcap的平臺上,以libpcap為接口寫的程序,可以自由地跨平臺使用。

Libpcap在網(wǎng)上捕獲到的是數(shù)據(jù)幀,我們還需要對數(shù)據(jù)幀進(jìn)行協(xié)議分析,協(xié)議分析的處理過程為:首先根據(jù)預(yù)先定義的過濾規(guī)則從網(wǎng)絡(luò)上獲取所監(jiān)聽子網(wǎng)上的數(shù)據(jù)包,然后進(jìn)行TCP/IP棧由下至上的處理過程,主要是IP重組和TCP/UDP層協(xié)議處理,最后進(jìn)行應(yīng)用層協(xié)議分析。

協(xié)議分析的工作在每個操作系統(tǒng)里都有,在這里,我們選擇了libnids函數(shù)庫。libnids是在libnet和libpcap的基礎(chǔ)上開發(fā)的,它封裝了開發(fā)網(wǎng)絡(luò)入侵檢測系統(tǒng)的許多通用型函數(shù)。libnids提供的接口函數(shù)除了可以監(jiān)視流經(jīng)本地的所有網(wǎng)絡(luò)通信、檢查數(shù)據(jù)包外,還具有重組TCP數(shù)據(jù)段、處理IP分片包的功能。而且它同樣具有很好的移植性。

2.4 數(shù)據(jù)分析模塊

數(shù)據(jù)分析是入侵檢測系統(tǒng)的核心。各種分析方法各有利弊,但基于規(guī)則的檢測方法因為事先將各種入侵方式表示為規(guī)則存放于規(guī)則庫中,因此在規(guī)則庫比較完備的基礎(chǔ)上,可以有很好的檢測效率,所以我們在該系統(tǒng)的實現(xiàn)中主要考慮了基于規(guī)則的檢測方法。

基于規(guī)則的檢測方法是誤用檢測的一種。入侵檢測系統(tǒng)需要從以往的攻擊入侵活動中,歸納識別出對應(yīng)的入侵模式,并將這些入侵模式存放于規(guī)則庫中,然后將系統(tǒng)現(xiàn)有的活動與規(guī)則庫中的規(guī)則進(jìn)行模式匹配,從而決定是否有入侵行為發(fā)生。

每一種基于規(guī)則的入侵檢測方法都需要一個確定的入侵模式庫,即規(guī)則庫,其中存放著描述入侵方法和行為的規(guī)則。在我們的系統(tǒng)中,采用了SNORT的入侵行為描述方法。SNORT是一個開放源代碼的輕量級的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)。這種描述方法簡單、易于實現(xiàn),能夠描述絕大多數(shù)的入侵行為。由于其簡單,因此檢測速度比較快。

#p#

規(guī)則庫中的每條規(guī)則在邏輯上分為兩部分:規(guī)則頭部和規(guī)則選項。規(guī)則頭部包含規(guī)則的操作、協(xié)議、源IP地址和目標(biāo)IP地址及其網(wǎng)絡(luò)掩碼和端口。規(guī)則選項包括報警信息及需要檢測的模式信息。規(guī)則的一般格式為:

<規(guī)則操作><協(xié)議><源主機(jī)IP><源端口><方向操作符><目標(biāo)主機(jī)IP><目標(biāo)端口>(<規(guī)則選項1:值1>;<規(guī)則選項2:值2>;…;<規(guī)則選項n:值n>;)

在圓括號前的部分是規(guī)則頭部,在圓括號中的部分是規(guī)則選項。規(guī)則選項部分中冒號前面的詞組稱為選項關(guān)鍵字。規(guī)則選項不是規(guī)則的必需部分,它只是用來定義收集特定數(shù)據(jù)包的特定特征。一條規(guī)則中不同部分必須同時滿足才能執(zhí)行,相當(dāng)于“與”操作。而同一個規(guī)則庫文件中的所有規(guī)則之間相當(dāng)于一個“或”操作。

以下是一個例子:alert tcp any any -> 192.168.1.0/24 111 (content:" 00 01 86 a5 "; msg: "mountd access";)。該條規(guī)則描述了:任何使用TCP協(xié)議連接網(wǎng)絡(luò)192.168.1.0/24中任何主機(jī)的111端口的數(shù)據(jù)包中,如果出現(xiàn)了二進(jìn)制數(shù)據(jù)00 01 86 a5,便發(fā)出警告信息mountd access。

規(guī)則操作說明當(dāng)發(fā)現(xiàn)適合條件的數(shù)據(jù)包時應(yīng)該做些什么。有兩種操作:alert和log。如果是 alert,則使用選定的告警方法產(chǎn)生警報,并記錄這個數(shù)據(jù)包;如果是log,則只記錄該數(shù)據(jù)包。

協(xié)議指明當(dāng)前使用的是何種協(xié)議。對于IP地址和端口,關(guān)鍵字“any”可以用來定義任何IP地址。在IP地址后指定網(wǎng)絡(luò)掩碼,如/24指定一個C類網(wǎng)絡(luò),/16指定一個B類網(wǎng)絡(luò),/32指定一個特定主機(jī)。如192.168.1.0/24指定了從192.168.1.1 到 192.168.1.255的一個范圍的IP地址。

IP地址有一個“非”操作。這個操作符號用來匹配所列IP地址以外的所有IP地址。“非”操作使用符號“!”表示。例如任何由外部網(wǎng)絡(luò)發(fā)起的連接可以表示為:alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111。

端口號可以用幾種方法指定:用“any”、數(shù)字、范圍以及用“非”操作符?!癮ny”指定任意端口。指定端口范圍用“:”它可以指定一個范圍內(nèi)的所有端口。如:log udp any any -> 192.168.1.0/24 1:1024。該條規(guī)則記錄任何從任意主機(jī)發(fā)起的到目標(biāo)網(wǎng)絡(luò)任何主機(jī)上的1~1024端口的UDP協(xié)議數(shù)據(jù)包。

方向操作符“->”規(guī)定了規(guī)則應(yīng)用的數(shù)據(jù)流方向。其左邊的IP地址為數(shù)據(jù)流的起點,右邊為終點。雙向操作符為“<>”,它告訴系統(tǒng)應(yīng)該關(guān)注任何方向的數(shù)據(jù)流。

規(guī)則選項形成了檢測系統(tǒng)的核心,一個規(guī)則的規(guī)則選項中可能有多個選項,不同選項之間使用“;”分隔開來,他們之間為“與”的關(guān)系。選項由關(guān)鍵字和參數(shù)組成,每個關(guān)鍵字和它的參數(shù)使用冒號“:”分隔。這些關(guān)鍵字主要包括:

● msg:在警報和記錄的數(shù)據(jù)中打印消息。

● logto:將數(shù)據(jù)包記錄到一個用戶指定的文件中。

● ttl:檢測IP數(shù)據(jù)包的TTL域。

● id:檢測IP數(shù)據(jù)包的分段ID域是否等于特定的值。

● nocase:設(shè)定搜索中使用與大小寫無關(guān)的方式。

● dsize:檢測數(shù)據(jù)包的有效荷載是否等于特定的值。

● content:在數(shù)據(jù)流中搜索特定的模式串。

● offset:設(shè)定content中的起點。

● depth:設(shè)定content中的終點。

● flags:檢測TCP數(shù)據(jù)包的標(biāo)志是否等于特定的值。

● seq:檢測TCP的順序號是否等于特定的值。

● ack:檢測TCP的應(yīng)答域否等于特定的值。

三、實例分析

下面結(jié)合入侵檢測的實例來介紹該系統(tǒng)是如何檢測入侵的,這里以WEB攻擊為例來進(jìn)行介紹。WEB攻擊是入侵的一大類,它是指利用CGI、WEB服務(wù)器和瀏覽器等存在的安全漏洞來損害系統(tǒng)安全或?qū)е孪到y(tǒng)崩潰的一類入侵方式。由于WEB的廣泛使用,關(guān)于它的各種安全問題不斷地發(fā)布出來,這些漏洞中的一些漏洞甚至允許攻擊者獲得系統(tǒng)管理員的權(quán)限而進(jìn)入站點內(nèi)部。因此,WEB攻擊的危害很大。

雖然WEB攻擊種類繁多,但是分析一下,還是具有如下幾個特點:

● 都是通過HTTP數(shù)據(jù)流來進(jìn)行的,所以可以通過HTTP數(shù)據(jù)流來進(jìn)行檢測。

● HTTP是無狀態(tài)的協(xié)議,一般都是通過一次請求來實現(xiàn),或者包含有一次具有典型的入侵特征的請求,所以利用一次請求信息就可以實現(xiàn)檢測。

● 一般都是通過構(gòu)造別有用心的請求字符串來實現(xiàn)的,所以可以采用基于規(guī)則的方法。

在我們的系統(tǒng)中可以檢測出100多種WEB攻擊方式。例如規(guī)則:alert http $EXTERNALNET any -> $HTTPSERVER 80 (content:"/maillist.pl"; nocase; msg: " WEB-CGI Maillist CGI access attempt ";) 。該規(guī)則規(guī)定了檢測從外網(wǎng)的任意端口到內(nèi)網(wǎng)的WEB服務(wù)器的80端口的數(shù)據(jù)流。檢測條件為請求中包含“/maillist.pl”字符串,匹配不分大小寫,告警名稱為“WEB-CGI Maillist CGI access attempt”。這里利用了兩個自定義的變量$EXTERNALNET和$HTTPSERVER,分別表示外網(wǎng)和WEB服務(wù)器。

四、結(jié)束語

本文在對入侵檢測系統(tǒng)進(jìn)行分析的基礎(chǔ)上,在Linux系統(tǒng)下實現(xiàn)了一個基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)。實踐表明,該系統(tǒng)對于檢測一些常見的入侵方式具有很好的效率和性能。同時,該系統(tǒng)提供了完整的框架,可以靈活地應(yīng)用于各種環(huán)境并擴(kuò)充。當(dāng)然,本系統(tǒng)還有很多不足的地方:數(shù)據(jù)源比較單一,還應(yīng)該加入日志數(shù)據(jù)源;而且現(xiàn)在對于應(yīng)用層協(xié)議只實現(xiàn)了HTTP協(xié)議分析,以后還可以加入其他協(xié)議分析,如TELNET、FTP等。這些都需要今后進(jìn)一步完善。未來的入侵檢測系統(tǒng)將會結(jié)合其它網(wǎng)絡(luò)管理軟件,形成入侵檢測、網(wǎng)絡(luò)管理、網(wǎng)絡(luò)監(jiān)控三位一體的工具。同時,網(wǎng)絡(luò)安全需要縱深的、多層次的防護(hù)。即使擁有當(dāng)前最強(qiáng)大的入侵檢測系統(tǒng),如果不及時修補(bǔ)網(wǎng)絡(luò)中的安全漏洞的話,安全也無從談起。只有將入侵檢測系統(tǒng)與其他安全工具結(jié)合起來,才能構(gòu)筑起一道網(wǎng)絡(luò)安全的立體防御體系,最大程度地確保網(wǎng)絡(luò)系統(tǒng)的安全。

【編輯推薦】

  1. Linux系統(tǒng)下配置Netware服務(wù)器方法
  2. 嵌入式設(shè)備上的 Linux 系統(tǒng)開發(fā)
  3. 深度介紹Linux內(nèi)核是如何工作的(1)
責(zé)任編輯:張燕妮 來源: eNet硅谷動力
相關(guān)推薦

2017-06-30 10:36:27

Linux系統(tǒng)分析工具

2010-08-25 13:46:28

入侵檢測IDS

2009-10-12 12:46:55

Linux內(nèi)核SCSI IO

2017-07-14 14:35:27

Linux中斷系統(tǒng)

2009-09-04 10:21:00

2009-11-11 10:35:04

2009-12-16 17:36:02

2009-06-03 14:15:34

2010-03-30 20:52:50

2012-09-03 10:34:30

2009-07-06 17:40:05

JSP HTTP服務(wù)器

2011-04-01 10:19:13

2011-10-28 16:03:06

2011-11-21 09:57:47

2012-10-10 11:36:02

2009-07-31 11:30:05

光纜線路監(jiān)測

2015-09-10 09:18:33

2010-08-26 09:12:01

2015-08-17 09:46:45

大數(shù)據(jù)

2010-08-25 14:58:37

點贊
收藏

51CTO技術(shù)棧公眾號