對於經過網絡鏈接的系統來講,一個重要的安全問題是由用戶或軟件引發的惡意或者至少是不指望發生的非法入侵。用戶非法入侵可能採用的方式是在未經受權的狀況下登陸到計算機,也多是已受權用戶非法獲取更高級別的權限或進行其權限之外的操做。軟件非法入侵可能採起的方式有病毒,蠕蟲或特洛伊木馬程序等。算法
最受公衆關注的兩個安全威脅之一是入侵者(另外一個是病毒),入侵者一般被稱爲黑客(hacker)或駭客(cracker)。在有關入侵的一份早期研究中,Anderson將入侵者分爲如下三類:數據庫
假冒者(masquerader):指未經受權就使用計算機的人或穿透系統的訪問控制機制而冒用合法用戶帳戶的人安全
違法者(misfeasor):指訪問未經未經受權的數據,程序或資源的合法用戶,或雖被授予訪問權限,但卻錯誤地使用這些特權的合法用戶。服務器
祕密者(clandestiner user):獲取了對系統的超級控制權,並使用此控制逃避審計和訪問控制或者阻止生成審計記錄的我的。網絡
假冒者多是外部用戶,違法者一般是內部用戶,而祕密用戶多是外部用戶也能夠是內部用戶。併發
【CRAN04】列出以下的入侵實例:ide
遠程獲取電子郵件服務器超級用戶(root)權限函數
破壞Web服務器工具
猜想和破解口令學習
複製含有信用卡號等信息的數據庫
在沒有受權的狀況下,查看敏感數據(包括工資記錄和醫療信息等)
運行數據包嗅探器(sniffer),以捕獲工做站上受權用戶的用戶名和口令
利用匿名FTP服務器的權限錯誤(permission error)發送盜版的軟件和音樂文件
撥號到一個不安全的調制解調器並獲取內部網絡訪問權
喬裝成一個執行者,調用幫助平臺,從新設置該執行者的電子郵件口令並學習新的口令。
在未被注意的狀況下,未經許可登陸工做站。
入侵者的行爲模式的一些實例
黑客 |
|
犯罪計劃 |
|
內部威脅 |
|
黑客:傳統上,黑客入侵計算機是爲了尋找刺激或者是爲了提升其在領域中的地位。入侵檢測系統(intrusion detection system,IDS)和入侵防禦系統(intrusion prevention system,IPS)是專門爲應對這種黑客威脅而設計的。隨着入侵者問題認識的深刻,衆多的計算機緊急應急事件響應小組(CERT)已經創建起來。這些互相協做的組織收集有關係統漏洞的信息,並把這些信息發送給系統管理員。黑客們也習慣性的按期查看CERT報告。
犯罪:有組織的黑客羣體已經成爲基於Internet的系統最廣泛的威脅。這些組織的成員多是在公司或政府供職,但通常都鬆散地附屬於一個黑客團體。一個典型的特色是,這些團伙的成員都很年輕,東歐,俄羅斯或東南亞的黑客一般是在Web上作生意。他們在地下論壇中碰面,以交換情報和數據,以及進行協做攻擊。
內部攻擊:內部攻擊是最難檢測和組織的。員工已經訪問並瞭解了企業數據庫的結構和內容。
安全入侵:一個安全事件或多個安全事件的組合構成一個安全事故(security incident),在安全事故中入侵者在未經受權的狀況下獲取或嘗試獲取一個系統(或系統資源)的訪問權限。
入侵檢測:一種監控並分析系統事件的安全服務,目標是發現未經受權而訪問系統資源的嘗試活動,並提供實時或近似實時的報警。
IDS可分爲以下幾類:
基於主機的IDS:檢測一臺主機的特徵和該主機發生的與可疑活動相關的事件
基於網絡的IDS:檢測特定的網段或設備道的流量並分析網絡,傳輸和應用協議,用以識別可疑的活動。
IDS包括如下三個邏輯組件:
傳感器(sensor):傳感器負責收集數據。傳感器的輸入能夠是包含入侵證據的系統的任何一部分。傳感器輸入的類型包括網絡數據包、日誌文件和系統調用跡。傳感器收集並向分析器轉發這些信息。
分析器(analyzer):分析器從一個或多個傳感器或者其餘分析器接收輸入。分析器負責肯定是否發生了入侵。此組件的輸出代表是否發生了入侵。輸出能夠包含支持入侵發生結論的證據。分析器能夠提供指導,用於判斷什麼活動是入侵致使的結果。
用戶接口(user interface):利用IDS的用戶接口,用戶能夠查看系統輸出或控制系統的行爲。在某些系統中,用戶接口能夠看作是經理,主管或者控制檯組件。
身份認證設備,訪問控制設施和防火牆在阻斷入侵方面都起到了必定做用。另外一道防線是入侵檢測。
入侵檢測基於以下假設:入侵者的行爲和合法用戶的行爲之間存在能夠量化的差異。固然,咱們不能指望入侵者的攻擊和一個受權用戶對資源的正常使用之間可以作到清晰,精確的區分。事實上,咱們認爲二者之間會有一些重疊的部分。
可以不間斷的運行,並且人的參與儘量少
具備容錯功能,系統崩潰時,它必須可以很快恢復和從新初始化。
抵禦破壞。IDS必須可以檢測自身,檢測是否已被攻擊者修改。
對於正在運行的系統增長最小的開銷。
可以根據被檢測系統的安全策略進行配置
可以自動適應系統和用戶行爲變化
可以擴展以檢測更多的主機
可以提供很好的服務降級,也就是說,若是IDS的某些組件中止工做,不管出於何種緣由,其他部分都應受到儘量少的影響。
基於主機的IDS向易受攻擊或敏感的系統添加專用的安全軟件層,例如,數據庫服務器和管理系統。基於主機的IDS以多種方式檢測系統上的活動,目的是檢測系統上的可疑事件,併發送警報。
基於主機的IDS的主要優勢是,它能夠檢測外部和內部入侵,這一點是基於網絡的IDS或者防火牆所不及的。
基於主機的IDS的入侵檢測方法包括如下兩種:
異常檢測(anomaly detection):採集有關的合法用戶在某段時間內的行爲數據,而後統計檢驗被檢測的行爲,以較高的置信度肯定該行爲是否不是合法用戶的行爲。如下是兩種統計異常檢測的方法:閾值檢測(threshold detection):此方法涉及爲各類事件發生的頻率定義閾值,定義的閾值應該與具體的用戶無關。基於配置文件的檢測(profile based):爲每個用戶建立一個活動配置文件,用於檢測單個帳戶行爲的變化。
特徵檢測(signature detection):涉及試圖定義一組規則或者攻擊的模型,可用於肯定一個給定的行爲是入侵特有的行爲。
異常檢測對假冒者是有效的,假冒者不可能徹底正確地模仿他們感興趣的帳戶的行爲模式。另外一方面,這樣的技術沒法對違法者。對於此類攻擊,特徵檢測方法可能可以經過在上下文中識別事件和序列來發現滲透。實際中,系統可能會使用這兩種方法的組合來有效對抗更廣範圍的攻擊。
用於入侵檢測的一個基本工具是審計記錄。用戶正在進行的活動的記錄必須及時獲取並做爲IDS輸入。通常採用下面兩種方法:
原始審計記錄(native audit record):實際上,全部多用戶操做都包括收集用戶活動信息的審計軟件。使用這些信息的優勢是不須要其餘的信息收集軟件。缺點是,原始審計記錄可能不包含所需的信息或者不包含便於使用的格式的信心。
檢測專用的審計記錄(detection-specific audit record):利用一組採集工具專門生成審計記錄,而這些記錄僅包含IDS所需信息。這種方法的一個優勢是,它可疑由廠商單獨定製且可應用到各類各樣的系統中。缺點是,一臺計算機上須要運行兩個審計工具包,須要額外開銷。
檢測專用的審計記錄的一個很好實例是由Dorothy Denning 開發的[DENN87]。每一個審計記錄包含下列幾個字段:
主體(subject):動做發起者。主體一般是終端用戶,但也多是表明用戶或者用戶組的進程。全部的動做是由主體下達的命令產生的。主體能夠被分爲不一樣的訪問類別,這些類別能夠重疊。
動做(action):由主體對一個客體執行的操做或者聯合另外一個客體完成的操做,例如登陸,讀取,I/O操做和執行操做等。
客體(object):動做的接受這。例如,文件、程序、消息、記錄、終端、打印機和用戶或程序建立的結構等。當主體是一個動做(如電子郵件)的接受者時,則將其視爲一個客體。客體能夠按類型進行分組。客體的粒度依據客體的類型和環境而改變。例如,在數據庫行爲的審計中,能夠以數據庫總體或記錄爲粒度進行審計。
異常條件(Exception-Condition):表示若是有異常發生,則返回異常條件。
資源使用(Resource-Usage):指大量元素的列表,其中每一個元素給出某些資源使用量(例如,所打印或顯示的行數,讀寫記錄數,處理器時間,使用I/O單元數,會話佔用時間等)
時間戳(Time-Stamp):標識動做發生的惟一的時間和日期戳。
大多數用戶操做是由大量的基本動做組成的。例如,複製某個文件涉及執行的用戶命令,包括訪問確認和創建副本,讀源文件以及寫目標文件。考慮下面的命令:
COPY GAME. EXE TO <Library> GAME. EXE
該命令由Smith發出,要將可執行文件GAME從當前目錄複製到<Library>目錄下。生成審計記錄以下:
Smith |
execute |
<Library>COPY.EXE |
0 |
CPU=00002 |
11058721678 |
Smith |
read |
<Smith>GAME.EXE |
0 |
RECORDS=0 |
11058721679 |
Smith |
execute |
<Library>COPY.EXE |
Write-viol |
RECORDS=0 |
11058721680 |
在這個例子中,複製被終止,由於Smith沒有寫入到<Library>的權限
將用戶操做分解爲基本動做有如下三個優勢:
這樣。系統能夠檢測出試圖破壞訪問控制的行爲(根據返回的覺得狀況的數目來代表一個異常),並在一個主體可訪問的客體集中,經過表示出一個異常來檢測出已發生的破壞行爲。
如上所訴,異常檢測技術分爲兩個普遍的類別:閾值檢測和基於配置文件的檢測。閾值檢測與一段時間間隔內特殊時間發生的次數有關。若是發生次數超過預期發生的合理數值,則認爲存在入侵。
閾值分析就其自身來看,即時對於複雜度通常的攻擊行爲來講也是一種效率低下的粗糙檢測方案。閾值和時間間隔必須是肯定的。因爲用戶是不斷變化你的,這樣的閾值會生成大量的誤報和漏報。然而,簡單的閾值檢測與更復雜的技術結合起來使用會產生更好的結果。
基於配置文件的異常檢測概括出單個用戶或相關用戶組的歷史行爲特徵,用於發現有重大誤差的行爲。配置文件包括一組參數,所以單個參數上的誤差可能沒法引起警報。
此方法基於審計記錄的分析。審計記錄以兩種方式做爲入侵檢測函數的輸入。第一種方式是,設計者必須肯定度量用戶行爲的量化指標。一段事件內的審計記錄分析可用於肯定通常用戶的活動配置文件。所以,審計記錄用來定義典型的行爲。第二種方式是,當前的審計記錄做爲入侵檢測的輸入。也就是說,入侵檢測模型分析當前審計記錄,斷定當前行爲與通常行爲的誤差。
基於配置文件的入侵檢測度量標準實例以下:
計數器(counter):是一個非負整數,若是沒有被管理員復位,則只能增長不能減小。一般用來記錄必定時間內某些事件類型的發生次數。例如,一個小時內單個用戶的登陸次數,單個用戶會話過程當中執行命令的次數,一分鐘內口令驗證失敗的次數。
計量器(gauge):可增可減的一個非負整數。一般,計量器用來測量某些實體的當前值。例如,分配一個用戶應用的邏輯鏈接數和某個用戶進程的消息隊列中的排隊消息數。
間隔計時器(interval timer):兩個相關事件的時間間隔。例如,連續兩次成功登陸到一個帳號的時間間隔。
資源利用(resource utilization):必定時間內消耗的資源數量。例如,一次用戶會話期間的打印頁數和程序執行過程當中消耗的總時間。
根據這些通用的度量標準,能夠用多種方法來肯定當前活動是否在可接受的限度內。[DENN87]列出一下幾種可行的方法:
均值和標準差(mean and standard deviation)
多變量(multivariate)
馬爾科夫過程(Markov process)
時間序列(time series)
操做(operational)
最簡單的統計測試時測量必定歷史時間間隔內一個參數的均值和標準差。這些將反應平均行爲及行爲的變化幅度。均值和標準差的方法可普遍用於計數器,計時器和資源度量器。可是該方法單獨來看,對於實現入侵檢測的目的太多粗糙。
多變量模型基於兩個或多個變量之間的相關性。經過對照這種相關性的分析(例如,處理器時間和資源使用狀況的先關性,登陸頻率和會話佔用時間的相關性),能夠對入侵者行爲進行可信度高的表徵。
馬爾科夫過程模型用於創建各類狀態的轉移機率。例如,這種模型可用於查看兩個命令相繼發生的機率。
時間序列模型以時間間隔爲基礎,查找事件發生太快或太慢的序列。存在多種統計測試用於提取異常行爲的時間特徵。
最優一種方法是操做模型,它基於對"什麼是異常"的判斷,而非自動分析歷史審計記錄。一般,定義一個固定的界限,觀測值超出此及界限的行爲則被懷疑爲入侵。當入侵者行爲可從某些類型的活動推導出來時,這種方法的運行效果最好。例如,很短期內的大量登陸嘗試代表有人試圖入侵。
做爲使用這些不一樣的度量標準和模型的實例,下表列出了斯坦福研究研究入侵檢測系統(IDES)和後續程序使用的各類度量標準。
度量 |
模型 |
檢測到的入侵類型 |
登陸和會話活動 |
||
天天或某段時間內的登陸頻率 |
均值和標準差模型 |
入侵者可能在非高峯期登陸 |
不一樣地點的登陸頻率 |
均值和標準差模型 |
入侵者可能會從特定用戶不多使用或從未使用的地點登陸 |
自從上次登陸到如今的時間 |
操做類型 |
用一個"死"帳戶入侵 |
每一個會話通過的時間 |
均值和標準差模型 |
誤差過大代表存在假冒者 |
到某地點的輸出量 |
均值和標準差模型 |
對遠程地址發送過多的數據代表敏感數據的泄露 |
會話資源的使用 |
均值和標準差模型 |
異常的CPU使用或I/O操做表示存在入侵 |
在登陸時口令失敗 |
操做模型 |
試圖經過口令猜想的方法入侵 |
從特定終端登陸失敗 |
操做模型 |
試圖入侵 |
命令或程序執行活動 |
||
執行頻率 |
均值和標準差模型 |
可能檢測到使用不一樣命令的入侵者或已得到訪問特權命令的合法用戶的入侵 |
程序資源利用 |
均值和標準差模型 |
異常值代表存在病毒或特洛伊木馬,它增長了I/O或處理的使用 |
拒絕執行 |
操做模型 |
可能檢測單個用戶試圖得到更高權限的入侵 |
文件訪問活動 |
||
讀、寫、建立、刪除頻率 |
均值和標準差模型 |
一個用戶讀取和寫入的異常代表有假冒用戶或瀏覽者 |
記錄讀取和寫入 |
均值和標準差模型 |
異常表示試圖經過推理和彙集來獲取敏感數據 |
讀、寫、建立、刪除的失敗的次數 |
操做模型 |
可能檢測到一直試圖訪問非受權文件的用戶 |
使用統計配置文件的主要優勢是不須要有關安全缺陷的先驗知識。檢測程序學習什麼是"正常"行爲,而後查找行爲的誤差。此方法並不基於與系統有關的特徵和漏洞,所以,它易於在不一樣的系統間移植。
特徵檢測技術經過觀察系統內的時間,運用規則集來判斷一個給定的活動模型是否可疑的。通常狀況下,咱們將全部的方法分爲異常檢測和滲透識別。儘管這兩類方法有重疊部分。
基於規則的異常檢測(rule-based anomaly detection):從其採用的方法和所具備的能力來看,和統計異常檢測很類似。在基於規則的方法中,對歷史審計記錄的分析用來識別使用模式並自動生成描述這些模式的規則集。規則用來表示用戶,程序,特權,時隙,終端等過去行爲的模式。而後,觀測當前行爲,將其與規則集進行匹配,來肯定每一個行爲是否與某個歷史行爲模型相匹配。
與統計異常檢測相同,基於規則的異常檢測不須要具有系統中安全漏洞的知識,相反,檢測方案基於對過去行爲的觀測,並假定未來的行爲和過去的行爲相似。爲了使這個方法更有效,須要一個更大的規則庫。
基於規則的滲透識別(rule-based penetration identification):是與入侵檢測安全不一樣的一種方法。這種系統的主要功能是使用規則來識別已知的滲透或利用已知弱點的滲透。規則還可用來識別可疑行爲,即便該行爲並未超出已創建的可用模式範圍。一般,系統中使用的規則與特定的機器和操做系統有關。開發這樣的規則的最有效方法是分析從Internet上收集到的攻擊工具和腳本。這些規則能夠做爲由知識淵博的安全人員制定的規則的補充。在後一種狀況下,正常的過程是採訪系統管理員和安全分析員以收集一套已知的滲透場景和威脅目標系統安全的關鍵事件。
IDES中使用的滲透標識機制的運行過程以下:審計記錄一旦生成就與規則集進行匹配。若是找到匹配項,則用戶可疑度(suspicion rating)增長。若是沒有足夠的匹配規則,可疑度就會超過一個閾值,致使系統報告異常。
概率謬論
爲了投入使用,IDS應該能檢測到絕大多數的入侵,同時保持可接受級別的誤報率。若是隻檢測到有限比例的實際入侵,則系統給人以安全的假象。另外一方面,若是系統在沒有入侵時頻繁警報(誤報),則系統管理員要麼開始忽略報警,要麼浪費不少時間分析這次誤報。
遺憾的是,因爲涉及的機率性質,很難知足同時具備高檢測率和底誤報率的標準。通常來說,若是實際入侵數比系統的合法使用數低,則誤報率將很高,除非測試用例是很容易區別的。這是概率謬誤(base-rate fallacy)現象的一個實例。
基於網絡的IDS(即NIDS)監控的是一個網絡或多個相互鏈接的網絡上選定位置的網絡流量。NIDS實時地或接近實時地分析數據包,以試圖發現入侵模型。NIDS能夠檢測網絡層、傳輸層和/或應用層協議的活動。注意,基於網絡的IDS與基於主機的IDS是不一樣的,NIDS檢測網絡上流向潛在的易受攻擊的計算機系統的流量包流量,而基於主機的IDS系統檢測的是主機上的用戶和軟件活動。典型的NIDS工具包括:大量傳感器用來監控數據包流量,一個或多個服務器負責NIDS管理功能,以及一個或多個管理控制檯提供人機交互的接口。分析流量模式從而檢測入侵的工做能夠在傳感器,管理服務器或在兩者上組合完成。
傳感器能夠部署爲兩種模式之一:內嵌式和被動式。內嵌式傳感器(inline sensor)將插入到網絡段,以使正在監控的流量必須經過傳感器。實現內嵌傳感器的一種方法是,NIDS傳感器與另外一個網絡設備(如防火牆或局域網交換機)進行邏輯組合。此方法的優點是不須要額外的單獨硬件設備,只須要NIDS傳感器軟件。另外一種方法是使用獨立的內嵌NIDS傳感器。使用內嵌傳感器的主要動機是使他們檢測到一個攻擊時能進行阻止。在這種狀況下,該設備同時執行入侵檢測和入侵防禦功能。
更經常使用的是被動傳感器(passive sensor)。被動傳感器監控網絡流量的備份,實際的流量並無經過這個設備。從通訊流的角度來看,被動傳感器比內嵌傳感器更有效,由於它不會添加一個額外的處理步驟,額外的處理步驟會致使數據包延遲。
與基於主機的入侵檢測同樣,基於網絡的入侵檢測使用特徵檢測和異常檢測技術。
特徵檢測【SCAR07】列出一下例子,這些例子的攻擊類型都適用於特徵檢測:
異常檢測技術[SCAR07]列出如下實例,這類例子的攻擊類型都適用於異常檢測:
當傳感器檢測到潛在的危險時,它將發送一個警報並記錄與記錄與事件相關的信息。NIDS分析模塊可使用此信息來細化入侵檢測參數和算法,安全管理員可使用此信息來涉及保護技術。由NIDS傳感器記錄的典型信息以下:
時間戳(一般是日期和時間)
鏈接或會話ID號
時間或警報類型
分級(如優先級,嚴重性,影響和信任等)
網絡層、傳輸層和應用層協議
源和目的IP地址
源和目的TCP或UDP端口,或者ICMP類型和代碼
經過鏈接傳輸的字節數
已解碼的有效載荷數據,如應用程序請求和響應
狀態相關的信息(通過身份驗證的用戶名)