隨著網絡技術的飛速發展,信息共享和網絡互連成為發展趨勢。信息的共享增加了個體之間的信息交流,提高了生產率,但同時也使得個人、公司的私有信息,甚至國家機密面臨嚴重的入侵威脅,各種安全問題時有發生。因此計算機信息安全日益為人們所關注。
傳統上,信息安全研究包括針對特定的系統設計一定的安全策略,建立支持該策略的形式化安全模型,使用身份認證、訪問控制、信息加密和數字簽名等技術實現安全模型并使之成為針對各種入侵活動的防御屏障。然而近年來隨著系統入侵行為程度和規模的加大,安全模型理論自身的局限以及實現中存在的漏洞逐漸暴露出來,這是信息系統復雜化后的必然結果。增強系統安全的一種行之有效的方法是采用一個比較容易實現的安全技術,同時使用輔助的安全系統,對可能存在的安全漏洞進行檢查,入侵檢測就是這樣的技術。
入侵檢測的研究最早可追溯到20世紀80年代,但受到重視和快速發展是在Internet興起之后。早在1980年,J Anderson等人就提出了入侵檢測的概念,對入侵行為進行了簡單地劃分,提出使用審計信息跟蹤用戶可疑行為。1985年,Denning在Oakland提出第一個實時入侵檢測專家系統模型,以及實時的、基于統計量分析和用戶行為輪廓(Profile)的入侵檢測技術。該模型是入侵檢測研究領域的里程碑,此后大量的入侵檢測系統模型開始出現,很多都是基于Denning的統計量分析理論。進入90年代以后,隨著Porras和Kemmerer基于狀態轉換分析的入侵檢測技術的提出和完善,根據已知攻擊模型進行入侵檢測的方法成為該領域研究的另一熱點。
入侵就是指連續的相關系列惡意行為,這種惡意行為將造成對計算機系統或者計算機網絡系統的安全威脅,包括非授權的信息訪問、信息的竄改設置以及拒絕服務攻擊等等。入侵檢測是指對惡意行為進行診斷、識別并做出響應的過程。實施入侵檢測的系統稱為入侵檢測系統(IDS,Intruding Directional System)。
衡量入侵檢測系統的兩個最基本指標為檢測率和誤報率,兩者分別從正、反兩方面表明檢測系統的檢測準確性。
實用的入侵檢測系統應盡可能地提高系統的檢測率而降低誤報率,但在實際的檢測系統中這兩個指標存在一定的抵觸,實現上需要綜合考慮。除檢測率和誤報率外,在實際設計和實現具體的入侵檢測系統時還應考慮操作方便性、抗攻擊能力、系統開銷大小、可擴展性、自適應能力、自學習能力以及實時性等。
從系統組成上看,入侵檢測一般由3個部分組成:數據采集、入侵檢測、響應。
數據采集模塊根據入侵檢測類型的不同,采集不同類型的數據,比如網絡的數據包、操作系統的系統調用日志或者應用日志。數據采集模塊往往會對采集到的信息進行預處理,包括對信息進行簡單的過濾,輸出格式化的信息。前者有助于消除冗余數據,提升系統的性能;后者可提升系統的互操作性。預處理后的信息一般都先存放到日志數據庫中,再提交給分析引擎。分析引擎實現檢測算法。從最簡單的字符串匹配到復雜的專家系統甚至神經網絡,分析引擎是入侵檢測系統的核心,分析引擎最終判定一個行為是異常的還是正常的。檢測策略包含了如何診斷入侵的配置信息、入侵的簽名(也就是入侵的行為特征)。各種閾值也往往存放在檢測策略中。狀態信息包含了檢測所需的動態信息,比如部分執行的入侵簽名,當前發生在系統中的行為上下文等。分析引擎在做出行為的入侵判斷后將判斷的結果直接發給響應模塊。響應模塊然后根據響應策略中預定義的規則進行不同的響應處理。一般來說,可能的響應行為包括:發出報警,通知管理員。對惡意行為自動地采取反擊措施,一方面可自動地重新配置目標系統,阻斷入侵者;另一方面可以重新配置檢測策略和數據采集策略,如可針對正在執行的特定行為采集更多的信息,對行為的性質進行更準確的判斷。
對于目前已有入侵檢測的分類有多種方法,比較通用的方法有兩種:一種是根據數據采集點的不同,將IDS分為基于主機的IDS和基于網絡的IDS;另外一種就是根據檢測所基于的原則不同,將入侵檢測系統劃分為異常檢測IDS和誤用檢測IDS。