


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、入侵檢測基本概念與檢測算法基礎本文主要分為幾個部分1.入侵檢測基本概念2.入侵檢測算法的理論研究發(fā)展3.入侵檢測算法的一種實現嘗試1.入侵檢測基本概念入侵檢測是一種通過收集和分析被保護系統的信息,從而發(fā)現入侵的技術。它的主要 功能是對網絡和計算機系統進行實時監(jiān)控,發(fā)現和識別系統中的入侵行為或企圖,給出入 侵警報入侵檢測攻防對抗的觀點1.要想完全避免安全事件的發(fā)生并不太現實,網絡安全人員需要做的是盡力發(fā)現和察 覺入侵及入侵企圖(即具有高度的異常敏感性,從長遠的角度來看,安全的問題本來就是 一個互相攻防對抗的過程。1安全的攻防對抗沒有一招解決所有問題的技術2好的攻防思路是部署一種盡可能敏感的攻擊事
2、件捕獲機制,當發(fā)生了已知、或者 未知的攻擊的事件時,我們能第一時間獲取到關于本次攻擊的盡可能多的元數據(強大的入侵檢測機制3針對發(fā)生的攻擊,采取針對性的防御,針對性地防御是最有效的方法漏洞進行針對性的代碼修復、為系統的某個cve漏洞打上補丁(對cms的4在針對性防御的基礎上,我們對一些解決方案進行歸納、總結,試圖找到一種底 層性的、歸類性的安全解決方案(回想歷史上微軟的dep、aslr、safeseh技術2.采取有效的措施來堵塞漏洞和修復系統入侵檢測的定義及分類1.定義:1將入侵企圖或威脅定義為未經授權蓄意嘗試訪問信息(sql注入、橫向/縱向越權 訪問、非法下載數據庫/日志信息、竄改信息(掛黑
3、鏈、sql注入,使系統不可靠或不能 使用(種植后門木馬、webshell2入侵是指有關試圖破壞資源的完整性、機密性及可用性的活動集合定義(安全的三大3從分類角度指出入侵包括:3.1嘗試性闖入(掃描行為3.2偽裝攻擊(代理、跳板攻擊3.3安全控制系統滲透3.4泄漏3.5拒絕服務(ddos3.6惡意使用(僵尸網絡、rootkit后門2.分類:入侵檢測技術主要分成兩大類型1異常入侵檢測能夠根據異常行為和使用計算機資源情況檢測出來的入侵,異常入侵檢測試圖用定量方式描述可接受的行為特征,以區(qū)分非正常的、潛在的入侵性行。整個流程基本如下:1.1建立威脅模型,包括:1.1.1確定一個算法1.1.2監(jiān)控哪些事
4、件的發(fā)生1.1.3需要獲取哪些數據1.1.4對獲取到的數據進行怎樣的計算1.1.5計算的結果的上線閾值是多少1.1.6當超過這個閾值的時候,需要采取什么操作,是直接報警、還是采取權重打分 的機制1.2進行行為監(jiān)控,并捕獲數據1.3對捕獲的數據進行異步、或實時計算1.4根據計算的結果采取相應的預設動作2誤用入侵檢測誤用檢測是指:根據己知的攻擊方法,預先定義入侵特征,通過判斷這此特征是否出 現來完成檢測任務。誤用檢測中使用的檢測技術主要有:模式匹配、專家系統、狀態(tài)轉移 等,其中模式匹配原理簡單,可擴展性好,而且最為常用。據統計,現在大約的入侵檢測95%的入侵檢測都是特征匹配3. 異常入侵檢測和誤用
5、入侵檢測的異同點1誤用入侵檢測根據己知的攻擊方法,預先定義入侵特征,通過判斷這此特征是否 出現來完成檢測任務2異常入侵檢測是檢查出與正常行為相違背的行為,異常入侵檢測的核心就是對合 法的行為和可疑的行為進行二值邏輯區(qū)分我個人覺得誤用入侵檢測更多的是一種針對性防御,根據已知的對性的匹配規(guī)則,例如:poc、exp攻擊特征,指定針1 waf對web漏洞的url特征建立的阻斷規(guī)則庫2網絡防火墻對ddos等攻擊的流量模式建立規(guī)則庫3殺軟對已知病毒、shellcode的二進制特征、api調用特征建立規(guī)則庫而異常入侵檢測更側重于對已知、未知的異常行為進行捕獲、判斷,本文重點學習異常入侵檢測異常入侵檢測方法異
6、常入侵檢測的主要前提條件是將入侵性活動作為異常活動的子集。理想狀況是異常活動集與入侵性活動集等同,這樣,若能檢測所有的異常活動,則可檢測所有的入侵 性活動。但是,入侵性 活動并不總是與異常活動相符合,它們之間存在以下幾種關系1異常且入侵性(黑客攻擊2異常但非入侵(誤報3非異常但入侵(漏報4非異常且非入侵(正常業(yè)務操作,選擇忽略異常入侵要解決的問題就是構造異常活動集,并從中發(fā)現入侵性活動子集 異常入侵檢測方法依賴于異常模型的建立,不同模型構成不同的檢測方法。異常檢測 就是通過觀測到的一組測量值偏離度來預測用戶行為的變化,然后作出決策判斷的檢測技術,對此,學術界和企業(yè)界都提出了很多優(yōu)秀的異常模型,
7、在不同的場景下不同的異 常模型的效果是打不相同的我認為本質上來說,這也就一個誤報、漏報的問題1我們可以通過文件行為監(jiān)控,捕獲所有的磁盤文件操作行為(windows、;linux都 提供了相應的callback回調api2通過逆向機器學習、行為建模、閾值判斷從所有的行為中過濾出:2.1用戶正常操作2.1.1文件新建管理員通過ftp、ssh、rdp登錄后在web根目錄下進行單個文件的新建管理員在進行文件單個、批量復制(復制文件從操作系統的層面上來看還是一 個文件新建的行為 rar壓縮包解壓(rar壓縮包解壓只是一種軟件機制,在操作系統層面還是在 進行文件的
8、新建2.1.2文件修改管理員通過ftp、ssh、rdp登錄后在web根目錄下進行單個文件的編輯并 修改(注意:從操作系統層面來看,只有打開文件并編輯保存之后才能算文件修改,否則只 是單純的文件訪問行為2.2網站正常運行行為2.2.1文件創(chuàng)建網站的web系統在正常的運行過程中會有一些文件創(chuàng)建的行為產生 cache臨時緩存文件預編譯模板高速緩存網站配置信息settings高速緩存 log日志文件、error_log出錯日志文件文件上傳控件(fck、kindeditor導致的圖片、rar附件上傳 web
9、系統為了并發(fā)串行訪問的需求生成臨時鎖文件(.lock2.2.2文件修改網站配置信息sett ings高速緩存的修改管理員進行網站模板編輯2.3黑客在嘗試進行攻擊2.3.1文件創(chuàng)建黑客通過注入拿到了網站后臺,通過后臺可以上傳文件的地方進行上傳(本質上是文件創(chuàng)建行為黑 客 通 過web漏 洞 的 代 碼 執(zhí) 行 直 接 生 成 文 件(。?黑客通過注入拿到了網站后臺,通過webshellsql執(zhí)行接口進行文件寫入(selectshell.shell into outfile path黑客已經拿到了rdp、ssh、f
10、tp登錄口令,以正常管理員的身份進行登錄, 并寫webshell黑客通過老的webshell上傳新的webshell2.3.2文件修改黑客通過注入拿到了網站后臺,對模板文件、配置文件進行修改,在其中插 入webshell(這類文件一般都是.php黑客通過老的webshell對網站的正常文件進行編輯標準的入侵檢測測試數據集kdd99 data set,kdd測試數據集的這種思路我覺得非 常好,有時候,通過這種集中式的數據觀察、對數據進行聚類、分段,能得到很多對入侵 行為、入侵模式新的觀點。 我們需要建立一套磁盤文件行為的規(guī)范化表示,并捕獲一段時 間內的記
11、錄,建立一個測試數據集,為我們之后作訓練作準備2.入侵檢測算法的理論研究發(fā)展我們前面提到一個關鍵概念:異常入侵檢測方法依賴于異常模型的建立,不同模型構成不同的檢測方法。異常 檢測就是通過觀測到的一組測量值偏離度來預測用戶行為的變化,然后作出決策判斷 的檢測技術,下面我們逐步學習幾種在學術界提出的關于異常模型的思想概念0 x1:基于特征選擇異常檢測方法基于特征選擇異常檢測方法是通過從一組度量(例如文件創(chuàng)建時間、文件大小、時間/事件孤立度、是否包含敏感關鍵字中挑選能檢測出入侵的度量構成向量(或者子集來準確 地預測(或分類已檢測到的異常行為。這種技術的難點有以下幾個:1 異常活動和入侵活動之間難于作
12、出判斷(回想之前我們提到的入侵性活動和異常活動的關系2進行二值分類的特征值(閾值的選取是否合理、符合實際、達到準確效果 為此,一個度量集(特征向量對各種各樣的入侵類型不可能是足夠的。 在文獻(網絡安全入侵檢測研究綜述.pdf中提到使用學習分類器方案生成遺傳交叉算 子和基因突變算子,除去降低預測入侵的度量子集,而采用遺傳算子產生更強的度量自己 取代。這里小瀚個人覺得對于可疑磁盤文件操作行為的入侵分類,我們需要著重考慮的問題 有兩個1度量子集的選取:和遺傳優(yōu)化算法相比,更加利于項目實踐、更貼近實際的做法是將安全研究員的經 驗進行固化,安全人員根據服務器滲透、入侵、cms漏洞的實際研究經驗,選擇在正
13、常業(yè) 務操作、和黑客攻擊中所表現出的所有度量維度。以此來建立入侵檢測度量子集。2測量值偏移度(異常閾值的確定:比起度量子集的選擇,測量值偏移度的計算則更加棘手,即使采用安全人員的安全 知識來進行確定也具有很大的主觀性、隨機性的制約。很難保證確定的閾值的正確性,因 為在不同的業(yè)務場景(web系統下,超過怎樣的值算作入侵,不是很容易用經驗進行確定,在這方面。在這個 問題上,可以考慮引入例如機器學習、遺傳算法這類的反饋機制,不斷通過,通過一些學 習的過程來確定最好的閾值(所以提到引入kdd的這種思想,建立一個文件操作行為的kdd數據集,進行數據分析0 x2:基于貝葉斯推理的異常檢測方法 基于貝葉斯推
14、理的異常檢測方法是通過在任意給定的時刻測量值,推理判斷系統是否有入侵事件發(fā)生。其中每個變量表示系統不同方面的特征:a1,a2,a3.an變量1如磁盤i/0的活動數量2或者系統中頁面出錯的數量下面是數學的模型定義:1假定ai變量有兩個值: 1表示異常、0表示正常2 i表示系統當前遭受入侵攻擊。每個異常變量ai的異常可靠性表示為:p(ai=1/l和敏感性”表示為:和p(ai=1/q因此,根據各種異常測量的值、入侵的先驗概率及入侵發(fā)生時每種測量到的異常概 率,能夠檢測判斷入侵的概率。但是,為了檢測的準確性,還必須考慮各個測量ai之間的獨立性。一種方法是通過相 關性分析,確定各個異常變量與入侵的關系0
15、 x3:基于模式預測的異常檢測方法基于模式預測的異常檢測方法的假設條件是事件序列不是隨機的而是遵循可辨別的 模式。這種檢測方法的特點是:1考慮了事件的序列2考慮了事件之間的相互聯系teng和chen給出了基于時間的推理方法,利用時間規(guī)則來識別用戶行為正常模式 的特征。classfication and detection of computer intrusions通過歸納學習產生這些規(guī)則集,并能動態(tài)地修改系統中這些規(guī)則,使之具有較高效的 預測性、準確性、和可信度,如果規(guī)則大部分時間是正確的,并能夠成功地運用預測所觀 察到的數據,那么規(guī)則就 具有高可信度,tlm給出了一條產生規(guī)則:(e1-e2
16、-e3-(e4=95%、e5=5%其中e1e5表示安全事件 這條規(guī)則表明:如果前面觀測到事件e1-e2-e3這樣一個事件鏈模式,則后面觀測到e4事件的概率 是95%,而e5事件的概率是5%根據觀察到的用戶行為、或者機器行為歸納出一套規(guī)則規(guī)則集來構成用戶的輪廓 框架。1如果觀察到的事件序列匹配規(guī)則的左邊,而后續(xù)事件顯著偏離規(guī)則預測到的事 件,那么系統就可以檢測出這種偏離,這就表明用戶操作是異常的,否則相反這種技術的優(yōu)點有:1能較好地處理變化多樣的用戶行為,并具有很強的時序模式2能夠集中考察少數幾個相關的安全事件,而不是關注可疑的整個會話過程3對發(fā)現檢測系統遭受攻擊,具有良好的靈敏度4根據規(guī)則的蘊
17、含語義,在系統學習階段,能夠更容易地辨別出欺騙著訓練系統的 企圖0 x4:基于數據采掘的異常檢測方法 除了依靠安全人員的經驗固化來建立規(guī)則、模式。還有一種思路是將數據挖掘技術應 用到入侵檢測研究領域中,從審計數據或數據流中提取感興趣的知識,這些知識是:1隱含的2事先未知的3潛在的有用信息 提取的知識表示為:1概念2規(guī)則3規(guī)律4模式等形式 并可用這些知識去檢測異常入侵和已知的入侵。基于數據挖掘的異常檢測方法目前已 有現成的kdd算法可疑借用,這種方法的優(yōu)點是可適應處理大量數據的情況0 x5:適合于入侵檢測的分步特征選擇算法 入侵檢測是一種通過收集和分析被保護系統的信息,從而發(fā)現入侵的技術。它的主
18、要 功能是對網絡和計算機系統進行實時監(jiān)控,發(fā)現和識別系統中的入侵行為或企圖,給出入 侵警報。我們知道,入侵行為的特征是由特征來刻畫的,一般情況下,只有特征向量中包含 足夠多的類別信息,才能通過分類器實現正確分類:識別正常、或入侵。而問題就在于:怎么證明特征向量中是否包含足夠的類別信息是很難確定的,為此,為 了提高識別率,系統總是最大限度地提取特征信息,使得特征維數增大。但是,維數的增 大、數據量的提高必然導致入侵檢測系統處理的速度下降,計算資源消耗增大。同時還有另一方面,不同的特征對檢測的有效性貢獻也不同(即它們的權值不同,如 果對它們相同對待就會導致算法效率下降,因此,根據特征的貢獻度權值分
19、配不同的資源 對入侵檢測算法來說是一個值得考慮的方面因此,特征選擇算法的任務主要是刪除兩類特征:1無用特征2冗余特征 傳統入侵檢測的特征選擇算法是以對一組測試數據檢測的正確性、或時間作為度量準 則,這種方法有一定的局限性:即使測試數據的統計特性與實際特性相同,它也是針對特定 的檢測方法,缺乏普遍性拋開檢測算法,從數據統計特性出發(fā),文獻提出了一種基于互信息的分步特征選擇算法,首先刪除無用特征,然后再刪除冗余特征,減少了刪除冗余特征的計算量0 x6:模式匹配算法在入侵檢測中的應用我們知道,入侵檢測分為誤用檢測和異常檢測,之前學習的都是異常檢測,接下來繼續(xù)學習誤用檢測,而誤用檢測中使用的檢測技術中占
20、大多數的主要是模式匹配是所謂的正則匹配(也就模式匹配算法性能的好壞直接影響到入侵檢測系統的效率。隨著網絡傳輸速度的大幅 度提高,入侵檢測系統需要處理的數據量越來越大,如果模式匹配算法來不及處理這些實 時的大量的數據包,必然 會丟棄部分數據包,而這些被丟棄的數據包中很可能就包含有入侵信息,從而造成漏報我們接下來學習幾種用于入侵檢測的模式匹配算法,包括:1單模式匹配算法模式匹配:是指在給定長度為n的目標串t=t1t2tn中查找長度為m的模式串p=p1p2pm的首次出現或多次出現的過程。這里ti(1isnpj(1,若1次 或 多 次 ,1次只能對1個模式串進p在行匹配的算法t中 出 現則稱匹配成功,
21、否則稱匹配失敗。單模式匹配算法:在目標串中2多模式匹配算法在目標串中可同時對多個模式串進行匹配的算法(即多模正則匹配單模匹配算法、多模匹配算法是一種思想,它們有很多具體的算法實現,下面逐一學1.單模匹配算法1.1bruteforce算法(bf算法在bf算法的目標串和模式串的字符比較中,只要有1個字符不相等,而不管前面已 有多少個字符相等,就需要把目標串t回退,下次比較時目標串t只后移1個字符。雖然 算法簡單,但效率低下從這個缺點出發(fā),可以明白匹配算法的優(yōu)化方向 高效的模式匹配算法都是設法增大不匹配時目標串t或模式串p之間的偏移量,以減 少總的比較次數(即減小時間復雜度1.2 kmp算法1970
22、年,sacook從理論上證明了一維模式匹配問題可以在o(m+2時間內解決。d.e.knuth,v.r.pratt和t.h.morris在bf算法的基礎上提出了一種快速模式 匹配算法,稱為kmp算法,該算法消除了bf算法的目標串指針在相當多個字符比較相等 后,只要有1個字符比較不等便需要回溯的缺點,使算法的效率得到了大幅度提高,時間 復雜度達到最理想的o(m+n,空間復雜度是o(m1.3 bm算法相對于bf算法,kmp算法雖然消除了主串指針的回溯,在不匹配時能使模式串右滑 若干位,但由上述next函數可知:右滑的最大距離不會超過1趟匹配操作所進了的比較次 數j,原因在于kmp算法的匹配操作是從左
23、到右進行的。受到rsboyer和jsmoore提出一種新的快速字符串匹配算法一1.4 rk算法kmp算法的啟發(fā),bm算法。karp和rabin在1981年提出來的rk算法利用了hash方法和素數理論。rk算法的思想是:1首先定義一個hash函數,用該函數計算出模式串p的hash函數值2再計算出目標串t中所有長度為m的子串的hash函數值3然后用相應的hash函數值進行比較。當出現hash沖突時,再進行相應字符串的 比較4當構造hash函數的素數選擇得合理,hash沖突出現的概率就可以做到很小。rk算法的時間復雜度是0(mn。在實際應用中,可設法取kr算法的如果hash沖突不發(fā)生,即不再需要額外
24、的字符匹配,0(m+n;若考慮字符匹配,則rk算法的時間復雜度是適當大的素數q,使得mod q仍可執(zhí)行并且hash沖突又幾乎不發(fā)生,從而使得實際運行時間只需0(m+n。rk算法采用了與kmp和bf算法不同的思路,盡量減少字符之間的比較次數,從而 達到提高效率的目的2.多模式匹配算法 與單模式匹配算法相比,多模式匹配算法的優(yōu)勢在于一趟遍歷可以對多個模式進行匹 配,從而大大提高了匹配效率。對于單模式匹配算法,如果要匹配多個模式,那么有幾個 模式就需要幾趟遍歷。當然多模式匹配算法也適用于單模式的情況。下面學習一下多模匹配的相關算法2.1 ahocorasick(ac算法ac算法1975年產生于貝爾實
25、驗室,最早用于圖書館的書目查詢程序中。該算法基于 有限狀態(tài)自動機(fsa,在進行匹配之前先對模式串集合sp進行預處理,形成模式樹(樹 形fsa,然后只需對目標串t掃描一次就可以找出所有與其匹配的模式串p。模式樹k的構成如下:ac算法模式匹配的時間復雜度是的長度無關。無論模式串中,所以無論是最好情況還是最壞情況,0(n,并且與模式集中模式串的個數和每個模式串ac算法模式匹配的時間復雜度都是0(n,包括p是否出現在目標串t中,t中的每個字符都必須輸入狀態(tài)機預處理時間在內,ac算法總時間復雜度是o(m+n,其中m為所有模式串的長度總和22 acbm算法對多模式串的匹配而言,雖然ac算法比bm算法高效
26、得多,但ac算法必須逐一查bm算法則能夠利用 右滑”ac算法中,則可大大提高commentzwalter最先將snort就是采用commentzwalter算法;baezayates結合bmp看目標串的每個字符,即必須按順序輸入,不能實現跳躍,而應用到多模式匹配算法的效率。許多人據此給出了各種改進的算法。跳 過 目 標 串 中 的 大 段 字 符, 從 而 提高搜索速度。如果將bm算法的這種啟發(fā)式搜索技術bm算法和ac算法結合在一起給出了ac-bm的優(yōu)化算法算法和ac算法也給出了多模式匹配改進算法。據說著名的入侵檢測系統3.入侵檢測算法的一種實現嘗試目前對漏報的問題基本沒遇到問題,但是對誤報的
27、問題很嚴重,從特征子集(規(guī)則的角度、和偏移度(閾值這兩個角度應該還有很多需要改進、優(yōu)化的地方/*算法目的:對磁盤文件的正常操作、異常操作進行二值區(qū)分,起到入侵檢測的作用事件特征向量維度:向量0 x1:可疑文件創(chuàng)建行為(on_fileadded1相鄰兩次文件創(chuàng)建時間的間距2相鄰兩次文件創(chuàng)建時間的間距的閾值(判斷是否為密集文件操作3密集文件創(chuàng)建事件連續(xù)發(fā)生的次數密集文件創(chuàng)建事件(在間距閾值之內發(fā)生一次文件創(chuàng)建算作一次4文件的擴展名后綴5新建文件所在目錄的其他文件創(chuàng)建時間的平均值6新建文件所在的目錄是否為新建目錄向量0 x2:可疑文件修改行為(on_filemodified1相鄰兩次文件修改時間的間
28、距2相鄰兩次文件修改時間的間距的閾值(判斷是否為密集文件操作3密集文件修改事件連續(xù)發(fā)生的次數密集文件創(chuàng)建事件(在間距閾值之內發(fā)生一次文件修改算作一次4文件的擴展名后綴5文件的修改時間和創(chuàng)建時間的差值(表明是否是老文件被修改/頭文件#include /變量聲明unsigned long file_create_time_last。/記錄上一次文件創(chuàng)建的unix時間unsignedlong file_create_time_count。/記錄本次文件創(chuàng)建的unix時間unsigned longfile_modify_time_last。/記錄上一次文件被重寫、修改的unsigned long fi
29、le_modify_time_count。件被重寫、修改的unix時間/記錄本次文unix時間/*當有文件的創(chuàng)建操作時觸發(fā)這個回調函數parameter:const cstring & strfilename:捕獲到的磁盤文件操作的完整路徑return value:1:入侵事件0:正常操作*/int on_fileadded(const cstring & strfilename/*說明:在進行實際的入侵行為判斷前,先進行一次密集文件創(chuàng)建狀態(tài)判斷,因為有以下幾種行為可能導致短時間內出現大量的文件創(chuàng)建操作被捕獲1管理員通過ftp、ssh、rdp登錄后在web根目錄下進行單個文件的
30、新建2管理員在進行文件單個、批量復制一個文件新建的行為(復制文件從操作系統的層面上來看還是3 rar壓縮包解壓(rar壓縮包解壓只是一種軟件機制,在操作系統層面還是 在進行文件的新建4 cache臨時緩存文件5預編譯模板高速緩存6網站配置信息settings高速緩存7 log日志文件、error_log出錯日志文件8文件上傳控件(fck、kindeditor導致的圖片、rar附件上傳9 web系統為了并發(fā)串行訪問的需求生成臨時鎖文件(.lock在入侵檢測前排除掉這部分的報告,可以減少一些誤報 參數說明:兩次創(chuàng)建事件時間間隔閾值(小于則說明在進行密集文件創(chuàng)建密集文件創(chuàng)建事件連續(xù)發(fā)生的次數內則說明
31、當前處于密集文件復制狀態(tài): 5次: 10ms(如果連續(xù)5次的文件創(chuàng)建時間間隔都在閾值之*/if (intensive_file_creation_detection(strfilename, 10, 5 = 1/處于文件創(chuàng)建密集狀態(tài),即正常操作return 0。else/并非文件創(chuàng)建密集狀態(tài),繼續(xù)判斷邏輯/參數說明: strfilename為捕獲到的磁盤文件操作的完整路徑if (createtime_detection(strfilename = 1/入侵事件return 1。else/正常操作return 0。/*判斷是否處于文件密集創(chuàng)建狀態(tài)中parameter:const cstring
32、& strfilename:捕獲到的磁盤文件操作的完整路徑int threshold:兩次創(chuàng)建事件時間間隔閾值(小于則說明在進行密集文件創(chuàng)建int times:密集文件創(chuàng)建事件連續(xù)發(fā)生的次數(在間距閾值之內發(fā)生一次文件創(chuàng)建算作一次密集文件創(chuàng)建事件return:0:并非在進行密集文件創(chuàng)建操作1:正在進行密集文件創(chuàng)建操作*/int intensive_file_creation_detection(const cstring & strfilename, intthreshold, int timesunsigned long file_create_time_current =
33、0。/新增的當前文件的創(chuàng)建時間long handle。/保存指定文件的文件屬性結構體的變量struct _finddata_t fileinfo。handle=_findfirst(strfilename, &fileinfo。if(-1 = handlereturn 0。file_create_time_current = fileinfo.time_create。if ( (file_create_time_current - file_create_time_last file_create_time_count+。/開始計數file_create_time_last = fil
34、e_create_time_current。else /if( (file_create_time_current - file_create_time_last 60 file_create_time_count=0。/只要有一次不滿足,則計數器清零file_create_time_last = file_create_time_current。if( file_create_time_count times return 1。else return 0。/*可疑文件創(chuàng)建行為的入侵檢測判斷parameter:const cstring & strfilename:捕獲到的磁盤文件操作
35、的完整路徑 return:1:入侵事件0:正常操作*/int createtime_detection(const cstring & strfilenamechar * pch。char *ext = *.*。long handle。/用來保存路徑中最后一個的位置的指針/需要檢測的文件擴展名/保存指定文件的文件屬性結構體的變量char pathbuf128 = 0。/保存路徑信息的緩沖區(qū)struct _finddata_t fileinfo。char createtimebuffer50。/保存文件創(chuàng)建時間(用于顯示之用unsigned long curfilecreatetime。
36、/新增的當前文件的創(chuàng)建時間unsigned longavgfilecreatetime = 0。/保存當前目錄下所有文件的創(chuàng)建時間的平均 值int i = 0。static int num_file = 0。static int num_bad_file = 0。/只檢測.php、.html文件if(ignore_ext(strfilename = 1 return 0。 /*1.獲取當前新增文件的創(chuàng)建時間,為了之后的比較之用*/ handle=_findfirst(strfilename, &fileinfo。if(-1=handlereturn 0。curfilecreatetim
37、e = fileinfo.time_create。/*2.計算當前新增文件所在目錄的所有文件的創(chuàng)建時間的平均值1獲取路徑中最后一個的位置2截取從路徑開始到最后一個之前的路徑字符串3拼接通配符4遍歷新增的文件當前目錄下的所有文件,知道找不到其他的為止*/ pch =strrchr(strfilename,。strncpy ( pathbuf, strfilename, (pch - strfilename + 1 。strncat (pathbuf,ext, 3。handle=_findfirst(pathbuf, &fileinfo。_findnext(handle,&file
38、info。if(-1=handlereturn 0。while(!_findnext(handle,&fileinfoi+。/*1.當前目錄下的所有文件個數已經統計完畢2.開始遍歷新增的文件當前目錄下的所有文件,知道找不到其他的為止3. avgfilecreatetime最終的計算結果就已經是平均值了*/handle=_findfirst(pathbuf, &fileinfo。_findnext(handle,&fileinfo。if(-1=handlereturn 0。while(!_findnext(handle,&fileinfoavgfilecreate
39、time += (fileinfo.time_create / i。/*1.根據一個時間閾值進行可疑性判斷2.注意:如果avgfilecreatetime為0,則說明是新創(chuàng)建的文件夾,php的寫磁盤不允許直接創(chuàng)建新目錄的同時寫文件,所以如果是往新的文件夾下復制文件,一定是合法的行為,要排除這種情況*/if (avgfilecreatetime != 0if (curfilecreatetime - avgfilecreatetime 1000000/m_listbox.addstring( _t(一 個 可 疑 文 件 的 創(chuàng) 建 行 為 被 檢 測 到 + strfilename。retur
40、n 1。elsereturn 0。elsereturn 0。_findclose(handle。/*過濾指定擴展名后綴的文件parameter:const cstring & strfilename:捕獲到的磁盤文件操作的完整路徑return:1:這個文件應該忽略0:這個文件不能忽略,需要繼續(xù)執(zhí)行檢測邏輯*/int ignore_ext(const cstring & strfilenamechar * pch。/用來保存路徑中最后一個.的位置的指針char extbuf20。/保存需要捕獲文件后綴名char ext_php12 = .php。char ext_html12 =
41、 .html。pch = strrchr(strfilename,.。/獲取路徑中最后一個.的位置strcpy(extbuf, pch。if ( (strcmp(ext_php, extbuf != 0 & (strcmp(ext_html, extbuf != 0/既不是.php、也不是.html,應該忽略return 1。:elsereturn 0。/*當有文件的修改操作時觸發(fā)這個回調函數parameter:const cstring & strfilename:捕獲到的磁盤文件操作的完整路徑 return value:1:入侵事件0:正常操作*/int on_filemo
42、dified(const cstring & strfilename/*說明:在進行實際的入侵行為判斷前,先進行一次密集文件修改狀態(tài)判斷,因為有以下幾種行為可能導致短時間內出現大量的文件修改操作被捕獲1管理員通過ftp、ssh、rdp登錄后在web根目錄下進行單個文件的編輯 并修改(注意:從操作系統層面來看,只有打開文件并編輯保存之后才能算文件修改,否則 只是單純的文件訪問行為2網站配置信息settings高速緩存的修改3管理員進行網站模板編輯 在入侵檢測前排除掉這部分的報告,可以減少一些誤報 參數說明:兩次創(chuàng)建事件時間間隔閾值(小于則說明在進行密集文件創(chuàng)建: 10000ms密集文件創(chuàng)
43、建事件連續(xù)發(fā)生的次數(如果連續(xù)5次的文件創(chuàng)建時間間隔都在閾值之 內則說明當前處于密集文件復制狀態(tài): 1次*/if (intensive_file_modify_detection(strfilename, 10000, 1 = 1/處于文件修改密集狀態(tài),即正常操作return 0。else/并非文件修改密集狀態(tài),繼續(xù)判斷邏輯/參數說明: strfilename為捕獲到的磁盤文件操作的完整路徑if (modifytime_detection(strfilename = 1/入侵事件return 1。else/正常操作return 0。/*判斷是否處于文件密集修改狀態(tài)中parameter:const cstring & strfilename:捕獲到的磁盤文件操作的完整路徑int threshold:兩次創(chuàng)建事件時間間隔閾值(小于則說明在進行密集文件創(chuàng)建int times:密集文件創(chuàng)建事件連續(xù)發(fā)生的次數(在間距閾值之內發(fā)生一次文件創(chuàng)建算作一次密集文件創(chuàng)建事件retu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老字號品牌振興計劃實施方案(參考范文)
- 《少年的你》觀后感(15篇)
- 河道生態(tài)修復工程可行性研究報告
- 工廠建設項目立項報告
- 形勢與政策關注國家大事培養(yǎng)家國情懷
- 新疆烏魯木齊市實驗學校2023-2024學年高三上學期1月月考物理含解析
- 不跟陌生人走安全教育教案
- 廣東省部分學校2023-2024學年高三上學期11月聯考地理含解析
- 心理安全小班課件教案
- 杭州職業(yè)技術學院《學前游戲論》2023-2024學年第二學期期末試卷
- 2020版5MW風力發(fā)電機組安裝手冊風電機組安裝手冊
- 【新能源汽車動力電池常見故障及維修方法探討5900字(論文)】
- 《廣州市城市樹木保護專章編制指引》解讀(分享版)
- 樂山老江壩安置方案
- 詩詞大會比賽題庫含答案全套
- 過磅合同范本
- 排水管網檢測投標方案(技術標)
- 《大學生職業(yè)生涯規(guī)劃作品》重慶
- PI形式發(fā)票范文模板
- (PQCDSM)生產現場改善與安全生產管理
- 全國青少年電子信息智能創(chuàng)新大賽圖形化編程(必做題模擬三卷)
評論
0/150
提交評論