孫云
摘 要: 入侵檢測系統(tǒng)通常會產(chǎn)生大量的報警,需要大量的人力進(jìn)行分析,這嚴(yán)重降低了系統(tǒng)的可用性。文章在對入侵檢測算法和網(wǎng)絡(luò)攻擊進(jìn)行詳細(xì)分析的基礎(chǔ)上,提出一種基于異常檢測的報警融合技術(shù),將低層次的報警歸并為高層次的攻擊事件,減輕了人工分析的工作量。研究和實驗表明,該算法能有效地對Web攻擊報警進(jìn)行聚類和融合,提高了系統(tǒng)的可用性。
關(guān)鍵詞: 入侵檢測; 異常檢測; 報警融合; 網(wǎng)絡(luò)安全
中圖分類號:TP393.08 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2016)08-39-05
Abstract: IDS (Intrusion Detection System) usually generates a lot of alerts, and the need for a large number of human analyses seriously reduces the availability of the system. In this paper, an alerts fusion method is put forward after thoroughly analyzing anomaly intrusion detection algorithm and network attacks. The methods can reduce the number of alerts and alleviate security expert's workload. The experiments show that the method can fuse Web attack alerts effectively and improve IDS's availability.
Key words: intrusion detection; anomaly detection; alerts fusion; network security
0 引言
隨著網(wǎng)絡(luò)安全問題的日益嚴(yán)峻,傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù)如防火墻難以提供足夠的安全防護(hù),入侵檢測系統(tǒng)被認(rèn)為是繼防火墻之后的第二道安全防護(hù)系統(tǒng),在保障網(wǎng)絡(luò)安全中擔(dān)負(fù)起重要的角色。然而,入侵檢測系統(tǒng)運行時往往會產(chǎn)生大量的報警,單憑人力難以處理日益增長的海量報警,嚴(yán)重降低了系統(tǒng)的可用性。如何對報警進(jìn)行有效處理,減少人工分析的工作量,提高系統(tǒng)的實用性,一直是困擾入侵檢測系統(tǒng)的難題。本文介紹了異常入侵檢測算法Payload AD(Anomalous Payload-based Network Intrusion Detection)的原理,并分析其對Web攻擊的檢測,在此基礎(chǔ)上提出一種報警融合技術(shù),將低層次的報警歸并為高層次的攻擊事件,進(jìn)而減少報警的數(shù)量,提高了報警的質(zhì)量。
1 入侵檢測算法Payload AD概述
Payload AD(Anomalous Payload-based Network Intrusion Detection)[1]是一種基于數(shù)據(jù)包負(fù)載的異常入侵檢測算法,算法基于如下的觀察事實:將網(wǎng)絡(luò)數(shù)據(jù)包看成由字節(jié)組成的數(shù)據(jù)流,每個字節(jié)的取值范圍為[0,255],對于不同目的端口(對應(yīng)于不同網(wǎng)絡(luò)協(xié)議)的數(shù)據(jù)包,包中負(fù)載的字節(jié)取值分布是不同的,比如:對于端口21(FTP命令端口),23(TELNET),80(HTTP)等,包中的字節(jié)多為可打印字符(例如:FTP命令,TELNET交互命令,HTTP請求),而對于20(FTP數(shù)據(jù)端口),22(SSH),由于傳輸?shù)氖俏募蚣用艿臄?shù)據(jù),包中的字節(jié)多為隨機分布;同樣,對于相同端口的數(shù)據(jù)包,不同長度數(shù)據(jù)包的字節(jié)取值分布也會不同,小包往往是一些命令字符,取值分布比較規(guī)則,而大包多為文件和數(shù)據(jù)傳輸,取值分布較為隨機。將正常流量的數(shù)據(jù)包按照目的端口和包長度分類,對于每一類數(shù)據(jù)包,統(tǒng)計其字節(jié)取值分布,將其作為正常分布,將新來數(shù)據(jù)包的字節(jié)取值分布與正常分布對比,計算新包與正常分布的偏離,如偏離過大則判定新數(shù)據(jù)包屬于異常。
該算法實現(xiàn)簡要步驟如下。
⑴ 給定一個正常網(wǎng)絡(luò)流量的數(shù)據(jù)包集合作為訓(xùn)練集,對于每一個數(shù)據(jù)包,統(tǒng)計向量freq[0..255],freq[k]為字符值k(k∈[0,255])在該數(shù)據(jù)包中出現(xiàn)的頻率,該向量反映了數(shù)據(jù)包的字符分布特征。
⑵ 將數(shù)據(jù)包按長度和目的端口分類,對長度為i、目的端口為j的數(shù)據(jù)包類,計算參量值M[i,j]={mean[i,j][0..255],var[i,j][0..255]},其中mean[i,j][0..255],var[i,j][0..255]是兩個向量,分別表示字符值0~255在該類數(shù)據(jù)包中出現(xiàn)頻率的均值和標(biāo)準(zhǔn)差,用M[i,j]表示長度為i目的端口為j的數(shù)據(jù)包正常分布參量值。
⑶ 當(dāng)新的數(shù)據(jù)包到來時,統(tǒng)計其字節(jié)分布向量new_freq[0..255](定義同1),根據(jù)數(shù)據(jù)包的長度length和目的端口dport查找相應(yīng)參量M[length,dport],計算偏離量d=f(new_freq,M[length,dport]),如果偏離量超過一定閾值t,則認(rèn)為是異常數(shù)據(jù)包。
⑷ 對于正常數(shù)據(jù)包(偏離值沒超過閾值),使用增量算法更新參量,使參量能實時反映流量的變動。
計算新數(shù)據(jù)包與正常流量的偏離f(new_freq,M[length,dport])使用的是馬氏(Mahalanobis)距離,馬氏距離的優(yōu)點在于,不但考慮了均值,還考慮了協(xié)方差,克服了變量之間相關(guān)性的干擾。為避免復(fù)雜的平方和開方運算,計算時采用了簡化的馬氏距離公式[1]:
new_freq,mean和var分別是新數(shù)據(jù)包的字符分布向量、參量M[length,dport]的均值向量mean[length,dport]和標(biāo)準(zhǔn)差向量var[length,dport],a(0