摘要:通過對蠕蟲病毒的特性分析和利用Netflow技術,從宏觀的角度提出了一種在校園網(wǎng)絡環(huán)境下的宏觀網(wǎng)絡檢測防治策略。目前應用該策略取得了良好的效果。該策略對具有相似特性的其它病毒的檢測和防治亦有較好的作用。
關鍵詞:蠕蟲;病毒;系統(tǒng)漏洞;Netflow技術
0 引言
互聯(lián)網(wǎng)的出現(xiàn)和普遍應用已經(jīng)極大地改變了人們的交流方式、生活方式及工作方式,然而,由于互聯(lián)網(wǎng)的共享性、開放性和交互性、也給人們帶來了層出不窮的安全問題。從1988年CERT/CC(計算機緊急響應小組協(xié)調中心)成立以來,統(tǒng)計到的Internet安全威脅事件每年以指數(shù)增長,近年來增長態(tài)勢變得的尤為迅猛。日益頻繁的網(wǎng)絡安全問題給國家、企業(yè)和個人造成了重大的經(jīng)濟損失。據(jù)統(tǒng)計,世界各國每年由于網(wǎng)絡安全問題而遭受的經(jīng)濟損失達數(shù)百億美元。
在各種安全事件中,惡意代碼(Malicious Code)造成的經(jīng)濟損失占有最大的比例。惡意軟件主要包括計算機病毒(Virus),蠕蟲(Worm)、木馬程序(Trjan Horse)、后門程序(Backdoor)、邏輯炸彈(Logic Bomb)等等。其中Internet蠕蟲和木馬程序的比例最高,根據(jù)2006年第三季度的Internet安全威脅分析,排名前50例的惡意代碼中,蠕蟲占75%。由于蠕蟲在網(wǎng)絡中的擴散速度遠遠大于木馬,因此越來越多的木馬程序結合了蠕蟲進行傳播,使得蠕蟲病毒成為最為嚴重的網(wǎng)絡安全問題之一。
幾乎每次蠕蟲發(fā)作都會給人們帶來巨大的經(jīng)濟損失:世界上第一個蠕蟲于1988年11月2日爆發(fā),它是由美國CORNELL大學研究生莫里斯編寫的Morris蠕蟲,該蠕蟲在很短的時間內(nèi)迅速在Internet上蔓延,導致6000多臺計算機停機,直接經(jīng)濟損失達9600萬美元;2001年7月19日,CodeRed蠕蟲爆發(fā),在爆發(fā)后的9小時內(nèi)就攻擊了25萬臺計算機,造成的損失估計超過20億美元;隨后幾個月內(nèi)產(chǎn)生了威力更強的幾個變種,其中CodeRedⅡ造成的損失估計超過12億美元;2001年9月18日,Nimda蠕蟲被發(fā)現(xiàn),對Nimda造成的損失評估數(shù)據(jù)從5億美元一直攀升到26億美元。目前蠕蟲爆發(fā)的頻率越來越快,尤其是近兩年來,越來越多的蠕蟲不斷出現(xiàn),造成的經(jīng)濟損失越來越慘重。
蠕蟲造成的嚴重損失引起了人們的重視,如何有效地監(jiān)測蠕蟲攻擊等信息安全的課題成為當前國內(nèi)外研究和開發(fā)的熱點。
1 網(wǎng)絡蠕蟲的定義、功能結構及工作機制
1.1網(wǎng)絡蠕蟲的定義
網(wǎng)絡蠕蟲是指能夠獨立運行,并能通過尋找和攻擊遠方主機的漏洞進行自主傳播的惡意代碼。
1.2網(wǎng)絡蠕蟲的功能結構
網(wǎng)絡蠕蟲的功能模塊可以分為主體功能模塊和輔助功能模塊。實現(xiàn)了主體功能模塊的蠕蟲能夠完成復制傳播流程,而包含輔助功能模塊的蠕蟲程序則具有更強的生存能力和破壞能力。
1.2.1 主體功能模塊
主體功能模塊由4個模塊構成:
(1)信息搜集模塊:該模塊決定采用何種搜索算法對本地或者目標網(wǎng)絡進行信息搜集。
(2)掃描探測模塊:完成對特定主機的脆弱性檢測,決定采用何種攻擊滲透方式。
(3)攻擊滲透模塊:該模塊利用掃描探測模塊獲得的安全漏洞,建立傳播途徑。該模塊在攻擊方法上是開放的、可擴充的。
(4)自我推進模塊:該模塊可以采用各種形式生成各種形態(tài)的蠕蟲副本,在不同主機問完成蠕蟲副本傳遞。
1.2.2輔助功能模塊
輔助功能模塊是對除主體功能模塊以外的其他模塊的歸納或預測,主要由5個功能模塊構成。
(1)實體隱藏模塊:包括對蠕蟲各個實體組成部分的隱藏、變形、加密以及進程的隱藏,主要提高蠕蟲的生存能力。
(2)宿主破壞模塊:該模塊用于摧毀或破壞被感染主機,破壞網(wǎng)絡正常運行,在被感染主機上留下后門等。
(3)信息通信模塊:該模塊能使蠕蟲間、蠕蟲同黑客之間進行交流,這是未來蠕蟲發(fā)展的重點。
(4)遠程控制模塊:控制模塊的功能是調整蠕蟲行為,控制被感染主機,執(zhí)行蠕蟲編寫者下達的指令。
(5)自動升級模塊:該模塊可以使蠕蟲編寫者隨時更新其他模塊的功能,從而實現(xiàn)不同的攻擊目的。
1.3網(wǎng)絡蠕蟲的工作機制
網(wǎng)絡蠕蟲的攻擊行為可以分為4個階段:信息收集、掃描探測、攻擊滲透和自我推進。信息收集主要完成對本地和目標節(jié)點主機的信息匯集;掃描探測主要完成對具體目標主機服務漏洞的檢測;攻擊滲透利用已發(fā)現(xiàn)的服務漏洞實施攻擊;自我推進完成對目標節(jié)點的感染。
1.4網(wǎng)絡蠕蟲傳播時具有的行為特征
(1)網(wǎng)絡上充斥著大量內(nèi)容相同的數(shù)據(jù)包,甚至會嚴重影響網(wǎng)絡的正常流量。這是由蠕蟲傳播行為的單一性決定的。
(2)網(wǎng)絡被感染主機數(shù)量逐步增加,增加過和遵循一定規(guī)律。
(3)網(wǎng)絡上會存在大量目標地址不可達或連接請求被復位的數(shù)據(jù)包,這是由蠕蟲掃描時的隨機性決定的。
我校校園網(wǎng)絡由于用戶分布普遍比較集中,用戶量大,交換機的平均負荷量本就比較嚴重,受病毒感染后影響非常明顯,一旦網(wǎng)絡出現(xiàn)癱瘓,在短期內(nèi)很難恢復正常。多年來我校校園網(wǎng)受到蠕蟲病毒的沖擊,整體網(wǎng)絡的性能受到較大的影響。2005年以來我校通過一種基于Netflow技術的宏觀檢測防治的方法,使病毒的擴散得到了有力控制,有效地降低了損害程度。
2 網(wǎng)絡“蠕蟲”病毒的宏觀檢測技術
判斷一臺計算機是否感染了“蠕蟲”病毒,可有多種方法,如利用殺毒軟件、或者通過netstart命令來檢查系統(tǒng)是否存在大量隨機出現(xiàn)的TCP SESSION等。但是這類判斷都是針對一臺計算機而言。“蠕蟲”病毒擴散迅速,短期內(nèi)就可以造成大面積機器感染。而校網(wǎng)用戶對病毒的防范意識參差不齊,不少用戶并沒養(yǎng)成增打系統(tǒng)補丁的良好習慣,部分用戶對計算機知識了解較淺,導致我校大量機器受感染,維護人員難以對校內(nèi)每一臺計算機進行檢查,來徹殺“蠕蟲”病毒。有效檢測整個校園網(wǎng)的病毒感染程度是校網(wǎng)主干交換機帶寬保證的必要前提?;趎etflow功能的一種宏觀檢測法,為一些病毒的全網(wǎng)檢測提供了有效的解決方法。
由于“蠕蟲”病毒具有向大量計算機的某固定端口(以“沖擊波”病毒的135端口為例)發(fā)送漏洞檢測包的共性,并且常常還會向大量IP發(fā)送ICMP包,因此,我們試圖利用這一共性,來批量地檢測感染機群。而交換機的Nefflow功能為這一目的的實現(xiàn)提供了可能。
Netflow是Cisco公司在其IOS交換體系中引入的一種新的交換技術。Netflow服務可在最大限度減小對交換機性能影響的前提下為用戶提供詳細的數(shù)據(jù)流統(tǒng)計信息。統(tǒng)計信息包括協(xié)議,端口和服務類型等。它替代了原有基于PortMirror的端口檢測技術,使在不占用物理端口的前提下對流量數(shù)據(jù)進行分析成為可能。目前,許多公司的三層交換機產(chǎn)品都具備了Nefflow功能,如Entersys公司的SSR2000系列產(chǎn)品等。
Netflow功能在交換機上的實現(xiàn)可通過配置命令來完成。以SSR2000為例,在交換機配置模式下輸入以下命令即可:
9800
對于數(shù)據(jù)收集服務器而言,由于數(shù)據(jù)分析程序的運行需要有一定的性能保證,建議最低配置使用100M網(wǎng)卡,512M內(nèi)存,2G的CPU,40G的硬盤存儲空間。系統(tǒng)可以安裝為Freebsd或Linux操作系統(tǒng)。數(shù)據(jù)收集服務端程序及數(shù)據(jù)分析程序可以從網(wǎng)址http://www.splintered.net/sw/flow-tools/docs/下載獲得。服務端程序啟動命令為:
flow-capture E5G V5 w/Date-collect-directory 0/0/9800
通過上述方式我們可以讓交換機向服務器發(fā)送UDP包,從而使服務器能夠收集到大量的流量信息以供程序判斷分析。收集到的數(shù)據(jù)在服務器端以二進制文件格式保存。Netflow分析程序可幫助我們獲取所關心的數(shù)據(jù)。獲取ICMP包的流量信息,可以通過命令flow-cat/Date-collect-directory/lflow-fllter rl Iflow-prim實現(xiàn)。獲取目的端口為135的數(shù)據(jù)包可以用flow-cat/Date-collect-directory/lflow-filter P135 Iflow-print命令獲得。數(shù)據(jù)格式如表1所示。
我們可將所獲取的數(shù)據(jù)保存在文本文件中,并且規(guī)定一個閾值,在一定時間段內(nèi),當同一個IP流出的ICMP或某目的端口如135的數(shù)據(jù)包累計數(shù)量超過這一閾值時,認為該計算機己被病毒感染。統(tǒng)計程序用簡單的awk命令結合有效的管道就可實現(xiàn)。如:
more filename lawk.'{print$1)'Isort|unlq c |sort n |awk
'(if($1>100)(print $2)}'
在這里我們將統(tǒng)計時間設定為一天,統(tǒng)計閾值為100,當一天內(nèi)計算機發(fā)送可疑數(shù)據(jù)包數(shù)量累計超過100,我們即認為該計算機已經(jīng)被感染。
3 蠕蟲病毒的宏觀防治
網(wǎng)絡病毒的防治一直是比較困難的?!叭湎x”病毒由于具有利用系統(tǒng)漏洞,傳播速度快,覆蓋面積廣,占用帶寬等特點,很難在短期內(nèi)徹底清除。常常會出現(xiàn)剛剛清除了一批,又有新的一批計算機被感染的現(xiàn)象。最好的防治措施是讓校內(nèi)所有的計算機都打上補丁程序,以防止病毒的進一步擴散,再用殺毒程序予以清除。為此我們采取了三步走的策略方針:
(1)向校內(nèi)發(fā)警告通知,提供補丁下載網(wǎng)站,并為因網(wǎng)絡癱瘓而無法下載補丁程序的用戶提供補丁光盤。
(2)向所有檢測到染毒的計算機發(fā)信使服務通知用戶增打補丁。此任務可以通過編寫含有net send IP\"message\"命令的批處理程序完成。但對于部分信使服務關閉的計算機而言,消息無法送達。
(3)設置強制下載模式。
由于我校用戶目前均使用Dr.com公司的動態(tài)nat機制出校訪問,具有統(tǒng)一的出口途徑,我們在用戶出口身份驗證之前先強行用戶登錄一用JSP編寫的頁面,強制用戶下載補丁和殺毒程序,并向用戶傳送一段Cooke代碼,以此判斷用戶對該殺毒程序是否已經(jīng)下載,從而強制出校訪問的每臺計算機都打上系統(tǒng)補丁。
通過妒檢測、信使服務、強制下載掃毒工具等一系列措施,我校的校園網(wǎng)往往在數(shù)天之內(nèi)就能基本控制病毒的擴散,保證了校園主干網(wǎng)的良好運行。
4 結束語
從“沖擊波”到“震蕩波”到“熊貓燒香”病毒,網(wǎng)絡型病毒正在嚴重威脅著英特網(wǎng)的正常使用,如何從宏觀的角度予以檢測和防治是目前網(wǎng)絡安全專家普遍關心的問題,本文提出的基于Netflow技術的網(wǎng)絡宏觀檢測法對蠕蟲病毒的防治取得了較顯著的作用,對類似的利用TCP或UDP連接攻擊系統(tǒng)漏洞的其他網(wǎng)絡型病毒而言,也能產(chǎn)生較為良好的效果。