董夙慧
江蘇聯(lián)合職業(yè)技術(shù)學(xué)院徐州財經(jīng)分院 江蘇 221008
在我們的日常生活中早就對 Windows中的病毒已經(jīng)習(xí)慣了,對付Windows中的病毒,我們有很多辦法:殺毒軟件、專殺工具等,但是這些東西往往主要集中在Windows這一領(lǐng)域。
隨著網(wǎng)絡(luò)的發(fā)展,很多企業(yè)都使用了Linux操作系統(tǒng),其原因主要是Linux的安全性比較高,但是Linux也會感染病毒,但是我們?nèi)绾稳ソ鉀Q這一問題呢?似乎我們的辦法不多。本文將會對Linux防范病毒的方法進(jìn)行初步的介紹。
Linux剛剛出現(xiàn)的時候,由于其內(nèi)核和系統(tǒng)的架構(gòu)比較巧妙,該系統(tǒng)似乎可以防范所有的病毒。但事實證明,Linux并不是這樣。1996年秋,澳大利亞一個叫VLAD的組織用匯編語言編寫了據(jù)稱是Linux系統(tǒng)下的第一個病毒——Staog,它專門感染二進(jìn)制文件,并通過三種方式去嘗試得到root權(quán)限。這個實驗足夠證明Linux系統(tǒng)有被病毒感染的可能性。
在2001年的時候,一個叫做Ramen的Linux蠕蟲病毒出現(xiàn)了,它利用了Linux一些版本中的rpc.statd和wu-ftp這兩個安全漏洞進(jìn)行自動傳播,并在傳播工程中大量消耗網(wǎng)絡(luò)帶寬,給當(dāng)時的網(wǎng)絡(luò)帶來很大的問題。
像這樣類似的案例還有很多,就不一一列舉了。其實,大多數(shù)一般的 Linux用戶幾乎沒中過病毒。這是因為 Linux上的病毒跟Windows上的病毒比起來還是非常少的,另外真正能使用 Linux的企業(yè)數(shù)量也不多,影響的范圍要比Windows小的多。但近年來,Windows的安全問題非常嚴(yán)峻,同時互聯(lián)網(wǎng)發(fā)展迅速,Linux用戶的增加,越來越多的服務(wù)器傾向于安裝Linux系統(tǒng),增加了受攻擊的可能。由此發(fā)展下去將來一定會有越來越多的 Linux病毒出現(xiàn)。如何防范Linux病毒就成為Linux用戶必須要做的事情了。
要想有效的防范Linux下的病毒,就必須對Linux下病毒的基本原理和發(fā)作時的癥狀進(jìn)行分析,靈活采用各種方法對病毒進(jìn)行限制、清除和數(shù)據(jù)恢復(fù)。由于Linux與Windows的文件存儲形式不同,所以殺毒的原理和方法也不同。一般Linux病毒分為以下幾類:
(1) 蠕蟲病毒
蠕蟲病毒是一個大家都很熟悉的病毒,它可以利用系統(tǒng)漏洞悄無聲息的傳播和突然爆發(fā),給很多Windows用戶留下了深刻的印象。近年流行的“紅色代碼”和“尼姆亞”,還有大家熟悉的“熊貓燒香”等都是蠕蟲病毒的代表。
在實際中,Linux下的蠕蟲病毒與Windows下的蠕蟲病毒的原理和發(fā)作癥狀都是差不多的,它們都可以獨立運行,并將自身傳播到其他的計算機上去。蠕蟲病毒經(jīng)常會利用一些系統(tǒng)漏洞進(jìn)行傳播,讓用戶毫無察覺,又會在特定情況下突然爆發(fā),讓用戶措手不及。對計算機安全危害巨大。
在Windows下文件幾乎都是使用PE結(jié)構(gòu)存儲的,要想徹底查殺蠕蟲病毒不太容易,但在Linux系統(tǒng)中,文件沒有PE結(jié)構(gòu),蠕蟲病毒的查殺就會比較容易。
要想徹底的擺脫蠕蟲病毒,目前來看是不現(xiàn)實的。我們能做的就是經(jīng)常給系統(tǒng)打補丁,關(guān)心安全漏洞,及時采取措施,同時配合防火墻來限制蠕蟲病毒的傳播。但是只要是系統(tǒng)就會有漏洞,我們知道的漏洞畢竟是其中一部分,還有很多系統(tǒng)漏洞是很容易被蠕蟲病毒利用的。同時我們的防火墻可能也會存在漏洞,也有可能無法限制蠕蟲病毒。
(2) ELF格式文件的病毒
這種病毒主要是使用匯編語言和C語言編寫的可以感染ELF文件的病毒。其中Lindose病毒就是一個典型的代表,如果發(fā)現(xiàn)一個ELF文件時,就會查找匹配類型,如果匹配的話就會修改ELF文件的入口點指向病毒代碼部分,運行完病毒后才會轉(zhuǎn)入正常的程序。所以就會形成一個在正常程序運行前先運行病毒的一個狀態(tài)。
對于Linux操作系統(tǒng)而言,這并不是一種很難控制的病毒,因為在Linux系統(tǒng)下有著很好的系統(tǒng)權(quán)限控制機制。眾所周知,系統(tǒng)要運行任何一個程序都需要一定的權(quán)限,假如我們能夠管理好自己系統(tǒng)的各種文件的權(quán)限,即使我們中了ELF病毒,那么系統(tǒng)也無法給病毒一個運行的權(quán)限,病毒不會運行,只不過多了個垃圾文件而已。
在這里特別提醒大家,很多用戶在使用Linux系統(tǒng)的時候都是使用root用戶登錄的,其實這是一件非常危險的事情。尤其不要以root身份運行來歷不明的文件,以免感染整個系統(tǒng)。
(3) 腳本病毒
腳本病毒其本身的危害性并不是很大,通常也只是對本機造成破壞。這種病毒主要是用 shell等腳本語言編寫的病毒,對編寫人員的知識要求并不是很高,很容易編寫,同時破壞系統(tǒng)也變得相對容易的多。這類病毒目前危害最大的就是可以自動下載安裝木馬程序,使用戶的計算機編程黑客可以控制的“肉雞”,并以此為跳板攻擊其他計算機。
一般腳本病毒都是其他病毒的“前鋒”,計算機先中了腳本病毒之后,便會通過腳本病毒種其他病毒和木馬,這樣計算機就會更危險。在實際中,一般病毒都和腳本分開進(jìn)入用戶系統(tǒng),因為一般殺毒軟件只能檢測出病毒,卻不能檢測出腳本。只要用戶不小心運行了腳本,腳本就會找到病毒,并將其運行感染系統(tǒng)。對于這種病毒,必須嚴(yán)格控制root的權(quán)限,并且不能隨便運行來源不明的腳本程序。
(4) 后門程序
后門程序一般是指那些可以繞過安全性控制而獲取對程序或系統(tǒng)訪問權(quán)的程序。這種程序我們把他稱為木馬,他和一般的程序最大的區(qū)別就是他不一定會自我復(fù)制,他的存在主要是收集和探測計算機中的信息,或者給黑客提供一個可以進(jìn)入系統(tǒng)的方法。
后門程序在Linux平臺上也非?;钴S,一般他可以利用系統(tǒng)服務(wù)去加載后門程序,也可以通過很多方式注入的系統(tǒng)文件中,有些甚至開元加載到內(nèi)核中來實現(xiàn)。他們非常隱蔽,我們對于這些程序很難防御。
隨著加“殼”技術(shù)的發(fā)展,后門程序經(jīng)過加殼程序的偽裝,基本可以輕松通過所有殺毒軟件的檢測,目前對這種后門程序我們幾乎無能為力,只能借助一些專用軟件,對后門進(jìn)行查殺,但效果很有限。
(5) 其他病毒
Linux由于其系統(tǒng)的特殊性,在 Linux下病毒的種類和數(shù)量相比較 Windows來說要少得多,并且絕大多數(shù)的Windows平臺下的病毒,在Linux系統(tǒng)中不會發(fā)作。但是需要注意的是,很多Windows病毒可能會存放在Linux的文件系統(tǒng)中,但是他們不會發(fā)作,他們可能有機會通過Linux的平臺傳遞到網(wǎng)絡(luò)中的其他Windows系統(tǒng)中去。
在實際Linux中的samba服務(wù)器就有可能成為一個攜帶Windows病毒的文件服務(wù)器,samba服務(wù)器本身可能不會感染病毒,但是凡是通過samba提供服務(wù)的Windows用戶就很有可能感染病毒。這種病毒雖然不會在Linux中發(fā)作,但是它會占用Linux的資源,也可能有一天會出在這兩種環(huán)境中都能發(fā)作的病毒,所以對這些病毒不能掉以輕心。對于這類病毒,我們目前沒有什么好的辦法。
Linux系統(tǒng)本身并沒有自帶殺毒軟件,因為他很少中病毒。隨著Linux的發(fā)展,陸續(xù)出現(xiàn)了一些第三方的殺毒軟件。但是他們一般都是免費提供查毒功能,殺毒功能則是收費的。Linux在殺毒防毒這個方面相對較弱,因為沒有很多很好的第三方殺毒軟件給予支持。下面推薦一個Linux版的殺毒軟件——NOD32。
圖1 NOD32主界面
總體來看,Linux防毒比Windows容易的多。因為Linux下病毒種類相對較少;Linux的文件沒有PE結(jié)構(gòu),查殺相對容易;病毒在Linux下發(fā)作的可能性較??;管理Linux的人員一般都比較專業(yè),而管理Windows的人員水平參差不齊。
對于Linux下病毒需要采用多種手段,系統(tǒng)的管理和查殺,絕對不可以因為Linux本身病毒少、平臺安全性高,權(quán)限管理嚴(yán)格而掉以輕心。為了做好Linux病毒防范工作,給予以下建議:
(1) 系統(tǒng)要有人負(fù)責(zé)管理
系統(tǒng)不怕有漏洞,就怕沒人管。對于專用Linux服務(wù)器,一定要有專人負(fù)責(zé)管理,絕對不可以長期不去查看或管理服務(wù)器。做好日志記錄,要讓任何一次訪問都有日志可查,并且要定期備份日志,最好有個中央日志服務(wù)器,統(tǒng)一備份和管理日志。
(2) 加固系統(tǒng),減少系統(tǒng)漏洞
做好系統(tǒng)加固工作,讓系統(tǒng)漏洞更少,黑客無從下手。根據(jù)很多案例來看,黑客攻擊服務(wù)器時都是找一些安全性較差的服務(wù)器下手,這些服務(wù)器往往是沒有定期打補丁,或系統(tǒng)安全設(shè)置較少,對一些應(yīng)用程序限制較少等。這就對服務(wù)器的管理人員的專業(yè)技能水平提出了很高的要求,就得需要管理人員不斷的學(xué)習(xí),不斷了解Linux的系統(tǒng)安全公告,不停的加固系統(tǒng),這是一項長期的工作。
(3) 做好用戶權(quán)限管理
合理分配系統(tǒng)權(quán)限,限制登錄系統(tǒng)的用戶的權(quán)限。一般情況,建議管理員不使用root用戶登錄,同時給特定的用戶適當(dāng)?shù)臋?quán)限,盡量使用sudo等工具管理或調(diào)試系統(tǒng)。如果用戶數(shù)量過多,盡量使用虛擬用戶等,保證權(quán)限合理分配。同時要對文件和文件夾的權(quán)限進(jìn)行限制,可以配合 ACL機制管理文件和文件夾的訪問權(quán)限。Linux從2.6內(nèi)核開始增加了一個 selinux,也可以配合 selinux保護(hù)系統(tǒng)關(guān)鍵程序的主要配置文件,保證系統(tǒng)安全。
(4) 安裝程序要慎重
不要隨意安裝一些來歷不明的驅(qū)動程序、可執(zhí)行程序、腳本。安裝Linux下的殺毒軟件,定期更新并查殺病毒和木馬。關(guān)注病毒爆發(fā)預(yù)警報告,定期用專殺工具在病毒爆發(fā)前查殺服務(wù)器中相關(guān)病毒(最好具有一套可以查殺 Windows和Linux兩種平臺病毒的工具)。
(5) 充分發(fā)揮防火墻作用
配置防火墻,限制危險網(wǎng)站,限制流行木馬程序,安裝入侵檢測軟件(例如snort、aide等)。讓防火墻配合入侵檢測軟件,實現(xiàn)聯(lián)動。對危險數(shù)據(jù)通過防火墻過濾掉,不讓進(jìn)入服務(wù)器;對進(jìn)入服務(wù)器的數(shù)據(jù)使用入侵檢測軟件進(jìn)行監(jiān)視,一旦發(fā)現(xiàn)某些程序有異常,立即聯(lián)動防火墻對可疑數(shù)據(jù)進(jìn)行控制,把風(fēng)險降到最低。
Linux下防范病毒,并不僅僅是查殺病毒,而是對Linux平臺全面的系統(tǒng)的安全管理,是一個長期的、細(xì)致的過程。一般能讓Linux種病毒的人都是高手,絕對不可放松警惕,Linux安全管理并不是一勞永逸的。
[1]向文杰,李毅.Linux環(huán)境下ELF文件型病毒的分析.科技信息.2006.
[2]黨華,張濤,吳灝.Linux系統(tǒng)中基于系統(tǒng)調(diào)用序列的病毒檢測方法研究.計算機工程與應(yīng)用.2005.
[3]王筱慧,唐蘇瓊.小型局域網(wǎng)的計算機病毒防范要點.溫州師范學(xué)院學(xué)報.2002.