計算機(jī)病毒知多少
引言
計算機(jī)病毒很容易引起我們的注意。一方面,病毒讓我們知道自己是多么的脆弱,一個編寫巧妙的病毒可以給全球的互聯(lián)網(wǎng)帶來巨大的影響;另一方面,它也讓我們知道人類是多么地智慧,人與人之間的相互聯(lián)系又是多么的緊密。
例如,專家估計Mydoom蠕蟲在2004年1月的一天之內(nèi)就感染了大約25萬臺計算機(jī)(時代在線)。回到1999年3月,梅麗莎病毒的強(qiáng)大威力甚至迫使微軟(Microsoft)和其他一些大型公司在該病毒得到遏制之前完全關(guān)閉它們的電子郵件系統(tǒng)。2000年的“我愛你”病毒也帶來了類似的災(zāi)難性后果。而當(dāng)您發(fā)現(xiàn)梅麗莎和“我愛你”病毒都是如此簡單之時,它們所帶來的嚴(yán)重后果會給您留下更深刻的印象。
在本文中,我們將探討有關(guān)病毒(“傳統(tǒng)”病毒和新型電子郵件病毒)的問題,以便讓您了解病毒的工作原理以及如何防范病毒、保護(hù)自己。一般說來,現(xiàn)在病毒沒有以前那么大的影響力了,但偶爾還是會有人找到制造病毒的新方法,而這正是他們制造新聞的手段。
如果您收聽新聞,您可能知道電子感染有多種不同形式。下面是一些常見的:
- 病毒——病毒是寄生在正常程序中的一小段代碼。例如,病毒可能將自己附屬到電子表格之類的程序中。每次電子表格程序運(yùn)行時,病毒也會跟著運(yùn)行,這樣它就有機(jī)會復(fù)制自己(通過附屬到其他程序)或進(jìn)行破壞。
- 電子郵件病毒——電子郵件病毒通過電子郵件進(jìn)行傳播,它一般通過向病毒受害者的電子郵件地址簿中的聯(lián)系人發(fā)送電子郵件來復(fù)制自身。
- 蠕蟲——蠕蟲是利用計算機(jī)網(wǎng)絡(luò)和安全漏洞來復(fù)制自身的一小段代碼。蠕蟲代碼的副本可以掃描網(wǎng)絡(luò),以查找具有特定安全漏洞的另一臺計算機(jī)。它可以利用該漏洞將自身復(fù)制到新的計算機(jī)中,然后又從新的位置開始進(jìn)行復(fù)制。
- 特洛伊木馬——特洛伊木馬只是一個計算機(jī)程序。它聲稱可以執(zhí)行某項(xiàng)任務(wù)(它可能聲稱自己是一種游戲),但當(dāng)您運(yùn)行它時,它卻會進(jìn)行一些破壞活動(它可能會擦除您硬盤上的數(shù)據(jù))。特洛伊木馬不會自動進(jìn)行自我復(fù)制。
計算機(jī)病毒之所以被稱為“病毒”,是因?yàn)樗鼈兺锊《居幸恍┫嗨浦帯S嬎銠C(jī)病毒從一臺計算機(jī)傳播到另一臺計算機(jī),就像生物病毒從一個人傳播到另一個人身上。
此外,它們還有一些深層次的共同點(diǎn)。生物病毒并不是一種活的生命體。它們只是一小段DNA代碼,外面包著一層保護(hù)性的外套。與細(xì)胞不同,這種病毒不能做任何事情或是進(jìn)行自我復(fù)制,因?yàn)樗皇腔铙w。生物病毒必須先將其DNA注入細(xì)胞。然后,這種有毒的DNA利用細(xì)胞的現(xiàn)有機(jī)制進(jìn)行自我復(fù)制。在一些情況下,細(xì)胞會一直吸收有毒的微粒,直到它爆裂并釋放出病毒,而在另一些情況下,細(xì)胞中會生成新的病毒微粒,一次一個,而細(xì)胞仍然存活。
計算機(jī)病毒也有某些類似的特點(diǎn)。計算機(jī)病毒必須寄生到其他一些程序或文檔中才能被執(zhí)行。而一旦它處于運(yùn)行狀態(tài),它就可以感染其他程序或文檔。顯而易見,計算機(jī)病毒和生物病毒的行為并不是完全相同,但它們也有著足夠多的相似之處,所以才都被稱為“病毒”。
什么是“蠕蟲”?
蠕蟲是一種計算機(jī)程序,它能夠從一臺計算機(jī)自行復(fù)制到另一臺計算機(jī)。蠕蟲一般通過計算機(jī)網(wǎng)絡(luò)傳播和感染其他計算機(jī)。利用網(wǎng)絡(luò),蠕蟲可以迅速進(jìn)行自我復(fù)制。例如,在2001年7月19日,紅色代碼蠕蟲就在大約9個小時內(nèi)復(fù)制了250,000多次。
蠕蟲通常利用軟件或操作系統(tǒng)中存在的某種安全漏洞。例如,Slammer蠕蟲(曾于2003年1月造成混亂局面)利用了Microsoft SQL服務(wù)器的漏洞。這篇文章可以幫助您了解這個小型的Slammer程序(376個字節(jié))。
蠕蟲在自我復(fù)制時會耗盡計算機(jī)時間和網(wǎng)絡(luò)帶寬,而且通常是一些有害的蓄意行為。2001年,紅色代碼蠕蟲就曾造成巨大影響。專家曾預(yù)測,這種蠕蟲阻塞互聯(lián)網(wǎng)的嚴(yán)重程度能夠使網(wǎng)絡(luò)逐漸陷于癱瘓狀態(tài)。
紅色代碼蠕蟲在開始復(fù)制時的確會阻塞互聯(lián)網(wǎng)的流量,但并不像預(yù)測的那么嚴(yán)重。這種蠕蟲的每個副本都會掃描互聯(lián)網(wǎng),查找沒有安裝Microsoft安全修補(bǔ)程序的WindowsNT或Windows2000服務(wù)器。當(dāng)它找到不安全的服務(wù)器時,就會把自身復(fù)制到那里。然后,新的副本接著掃描網(wǎng)絡(luò),以查找其他可以感染的服務(wù)器。取決于不安全服務(wù)器的數(shù)量,蠕蟲可以制造出數(shù)以萬計的副本。
紅色代碼蠕蟲的目的是做三件事:
- 在每個月的頭20天進(jìn)行自我復(fù)制。
- 把被感染服務(wù)器上的網(wǎng)頁內(nèi)容篡改成帶有“Hacked by Chinese”字樣的頁面。
- 對白宮的Web服務(wù)器發(fā)動一次集中攻擊,試圖控制該服務(wù)器。
最常見的紅色代碼是原始Ida Code Red(2001年7月19日爆發(fā))的一個變體,通常被稱為變種。根據(jù)美國國家基礎(chǔ)設(shè)施保護(hù)中心(NIPC)的資料:
首先由eEye Digital Security報告發(fā)現(xiàn)的Ida Code Red蠕蟲利用了Microsoft IIS Internet服務(wù)器應(yīng)用程序編程接口(ISAPI)服務(wù)的眾所周知的脆弱性。未安裝修補(bǔ)程序的系統(tǒng)很容易受到Idq.dll的“緩沖區(qū)溢出”的影響,從而讓攻擊者能夠在受感染系統(tǒng)中運(yùn)行嵌入代碼。這種駐留在內(nèi)存中的蠕蟲一旦在系統(tǒng)中被激活,會首先嘗試創(chuàng)建一系列隨機(jī)IP地址來感染未受保護(hù)的Web服務(wù)器,從而傳播自己。然后,每個蠕蟲線程都會檢查受感染計算機(jī)的時鐘。NIPC確定Ida Code Red蠕蟲的DOS執(zhí)行的觸發(fā)器時間是格林尼治標(biāo)準(zhǔn)時間的2001年7月20日0時,也就是美國東部時間的晚上8:00。
在成功感染計算機(jī)后,這種蠕蟲會在指定的時間連接到域www.whitehouse.gov。這種攻擊全部由受感染系統(tǒng)發(fā)起,它們同時向 www.whitehouse.gov(198.137.240.91)的80端口發(fā)送100次連接。
美國政府更改了www.whitehouse.gov的IP地址,從而繞過了Ida Code Red蠕蟲的攻擊,并向公眾發(fā)出了Ida Code Red蠕蟲警報,建議WindowsNT或Windows2000的Web服務(wù)器的用戶務(wù)必安裝安全補(bǔ)丁程序。
計算機(jī)病毒的起源和歷史
人創(chuàng)造了病毒。為了制造病毒,制造者需要編寫代碼,對代碼進(jìn)行測試,確保它能夠順利傳播,最后再散布病毒。病毒制造者還要設(shè)計病毒的攻擊階段,不管病毒帶來的是一封無聊的郵件還是要?dú)挠脖P。那他們?yōu)槭裁匆@樣做呢?
至少有三種原因。第一種原因與破壞公物者和縱火犯的心理相同。為什么會有人想要打碎別人的車窗,或在建筑物上亂涂亂畫,或燒掉美麗的森林呢?對于一些人來說,這些事情讓他們感到興奮。如果這種人恰巧懂得計算機(jī)編程知識,那么他們就可能會把精力用在編寫破壞性病毒上面來。
第二種原因是有些人抱著幸災(zāi)樂禍的心理,喜歡看見事情發(fā)展到一發(fā)不可收拾的地步。很多人都樂于看到爆炸或車禍這樣的事件發(fā)生。在您成長的過程中,可能發(fā)現(xiàn)鄰居某個小孩學(xué)會了制造火藥,然后他越做越大,甚至做成了炸彈,最后他不是因?yàn)閰捑攵T手,就是徹底地毀了自己。那些能制造出一種迅速傳播的病毒的人也有差不多同樣的心理——病毒在計算機(jī)內(nèi)制造了一個炸彈,隨著越來越多的計算機(jī)受到感染,最后的爆炸也就越來越“有趣”。
第三種原因可能與虛榮心或這樣做所帶來的刺激感有關(guān)。這種人喜歡爭當(dāng)?shù)谝唬ㄈ缱钤缗实侵槟吕尸敺澹I骄驮谀抢铮虼丝傆腥讼肴ヅ浪H绻蔷幊倘藛T,而您又發(fā)現(xiàn)了可以利用的安全漏洞,您很可能想搶在別人之前利用這個漏洞,以標(biāo)榜自己。“當(dāng)然,我可以把這個漏洞告訴別人。但自己直接把漏洞展示給大家看不是更好嗎?”正是這種邏輯導(dǎo)致了很多病毒的產(chǎn)生。
當(dāng)然,大多數(shù)病毒制造者好像都忽略了一個事實(shí):他們所謂的創(chuàng)造實(shí)際上給計算機(jī)用戶帶來了極大的損失。破壞用戶計算機(jī)上的全部文件是其中之一。在病毒造成實(shí)際損害之后,大公司的計算機(jī)人員必須花費(fèi)大量的時間來清除病毒。即使只是一封無聊的郵件也會帶來實(shí)際的損害,因?yàn)槭占诉€要浪費(fèi)時間來刪除它。正因?yàn)槿绱耍蓪Σ《局圃煺叩闹撇靡矘O為嚴(yán)厲。
傳統(tǒng)計算機(jī)病毒的大規(guī)模傳播始于上世紀(jì)80年代后期,這些病毒之所以能夠大行其道,主要有以下幾個方面的原因。第一個是個人計算機(jī)(PC)的普及。在上世紀(jì)80年代之前,家用計算機(jī)基本上不存在,或者只把它們當(dāng)作玩具來玩。真正的計算機(jī)是很少見的,只有一些“專家”才有權(quán)使用它們。到了上世紀(jì)80年代,隨著IBM的PC機(jī)(1982年推出)和Apple公司的Macintosh(1984年推出)的流行,真正的計算機(jī)才開始進(jìn)入企業(yè)和家庭。到上世紀(jì)80年代后期,個人計算機(jī)已經(jīng)廣泛進(jìn)入了企業(yè)、家庭和大學(xué)校園。
第二個原因是計算機(jī)bbs的使用。用戶可以通過調(diào)制解調(diào)器撥號進(jìn)入公告板,下載各種各樣的程序。當(dāng)時,游戲、簡單的文字處理軟件和電子表格等非常流行。bbs的使用導(dǎo)致了后來我們稱之為特洛伊木馬病毒的前身的產(chǎn)生。當(dāng)您看到有關(guān)特洛伊木馬的介紹時,您會覺得它是一個非常棒的程序。因此才會下載它。不過,當(dāng)您運(yùn)行該程序時,它所做出的事情可就沒那么好了,比如擦除您磁盤上的數(shù)據(jù)。您以為只是下載了一個好玩的游戲,而實(shí)際它卻擦除了您系統(tǒng)中的所有數(shù)據(jù)。不過,特洛伊木馬只能給一小部分用戶帶來麻煩,因?yàn)樗鼈兒芸炀蜁话l(fā)現(xiàn)。這樣,公告板的所有者會從系統(tǒng)中清除木馬文件,而用戶也可以給其他人發(fā)送有關(guān)病毒的警告郵件。
第三個導(dǎo)致病毒產(chǎn)生的原因是軟盤。在上世紀(jì)80年代,程序的規(guī)模都很小,您甚至可以將操作系統(tǒng)、文字處理軟件(以及其他一些程序)連同一些文檔統(tǒng)統(tǒng)放入一兩張軟盤中。當(dāng)時很多計算機(jī)都沒有硬盤,在您打開計算機(jī)時,就需要從軟盤上加載操作系統(tǒng)和其他所有內(nèi)容。病毒正是利用這三個因素制造了第一個可以自我復(fù)制的程序。
早期的病毒都是依附到某個常見程序(例如一款流行的游戲或文字處理軟件)中的一小段代碼。用戶可能從公告板中下載了受感染的游戲,并運(yùn)行了該游戲。像這樣的病毒就是嵌入到一個合法的大型程序中的一小段代碼。當(dāng)用戶執(zhí)行合法程序時,病毒會先運(yùn)行,而這也正是制造病毒的本意。病毒首先會將自身加載到內(nèi)存中,然后查找磁盤上是否還有其他程序。如果找到了,它就會修改并將自己的代碼添加到這個不受懷疑的程序中。接著,病毒會啟動這個“真正的程序”,而用戶根本無法知道病毒曾運(yùn)行過。遺憾的是,這時病毒已經(jīng)復(fù)制了自己,因此有兩個程序已被感染了。下次只要執(zhí)行這兩個程序中的任何一個,病毒就會再感染其他程序,并一直循環(huán)下去。
如果其中一個受感染的程序通過軟盤傳播給另外一個用戶,或是上傳到公告板中,那么其他程序就會受到感染。這就是病毒傳播的原理。
傳播的過程是病毒的感染階段。如果病毒只是不斷復(fù)制自身的話,它們還不會讓人如此深惡痛絕。但遺憾的是,絕大多數(shù)病毒都有某種破壞性的攻擊階段,它們會在這個階段造成一些損害。一些類型的觸發(fā)器會激活病毒的攻擊階段,然后它們就會“采取行動”——在屏幕上輸出一封無聊的郵件或擦除您的所有數(shù)據(jù)等等,無所不能。觸發(fā)器可能是某個特定日期,可能是病毒被復(fù)制的次數(shù),或是其他諸如此類的事情。
典型的感染和保護(hù)
隨著病毒制造者的水平越來越高,他們掌握了一些新的技巧。其中一項(xiàng)重要技巧就是將病毒加載到內(nèi)存中,這樣只要計算機(jī)運(yùn)行著,這些病毒就可以在后臺活動。這使得病毒能夠更有效地進(jìn)行自我復(fù)制。另一項(xiàng)技巧是感染軟盤和硬盤上的啟動扇區(qū)。啟動扇區(qū)是一個小型程序,是計算機(jī)啟動操作系統(tǒng)時首先加載的部分。它包括一個微型程序,告訴計算機(jī)如何加載操作系統(tǒng)的其余部分。通過將自身代碼放入啟動扇區(qū)中,病毒就可以確保自身處于運(yùn)行狀態(tài)。它可以立即把自己加載到內(nèi)存中,而且不管計算機(jī)什么時候啟動它都可以運(yùn)行。啟動扇區(qū)病毒可以感染插入計算機(jī)中的任何軟盤的啟動扇區(qū)。在大學(xué)校園那種多人共用計算機(jī)的地方,它們會像野火一樣蔓延。
一般說來,現(xiàn)在可執(zhí)行病毒和啟動扇區(qū)病毒都不會再有多大的威脅。第一個原因是現(xiàn)在的程序體積都很龐大。如今您購買的每個程序幾乎都是使用光盤形式分發(fā)的。光盤不能被修改,因此病毒無法感染它們。而在程序體積非常龐大之時,要想方便地攜帶它們,唯一簡單可行的方法就是購買光盤。現(xiàn)在的用戶當(dāng)然不會像上世紀(jì)80年代那樣把程序裝進(jìn)軟盤中帶走。當(dāng)時購買裝滿程序的軟盤就像買棒球卡一樣流行。此外,現(xiàn)在的操作系統(tǒng)都有啟動扇區(qū)保護(hù)機(jī)制,從而也削弱了啟動扇區(qū)病毒的威力。
盡管您的計算機(jī)仍然可能會感染啟動扇區(qū)病毒和可執(zhí)行病毒,但現(xiàn)在它們要造成危害已經(jīng)困難得多了,而且基本上不可能像以前那樣迅速蔓延了。如果用生物學(xué)名詞作比喻的話,可以稱之為“生境萎縮”。上世紀(jì)80年代,由軟盤、小型程序和脆弱的操作系統(tǒng)所營造的環(huán)境讓這些病毒肆虐一時,但隨著大型可執(zhí)行程序、不可修改的光盤以及更好的操作系統(tǒng)防護(hù)措施的出現(xiàn),適于病毒滋生蔓延的溫床在很大程度上已不復(fù)存在了。
計算機(jī)病毒世界最后的頑敵就是電子郵件病毒以及1999年3月爆發(fā)的梅麗莎病毒。梅麗莎病毒藏身在Microsoft Word文檔中,通過電子郵件進(jìn)行傳播,其原理如下:
有人采用Word文檔的形式創(chuàng)造了這種病毒,并上傳到互聯(lián)網(wǎng)新聞組。任何人如果下載并打開該文檔都會觸發(fā)這種病毒。然后,病毒會將文檔(連同自身)通過電子郵件發(fā)送給被感染者個人地址簿中的前50位聯(lián)系人。由于郵件含有被感染者的姓名等友好信息,因此收件人會誤以為文檔是無害的,并打開它。這樣病毒就可以從收件人的計算機(jī)中再產(chǎn)生50封新的電子郵件。因此,梅麗莎病毒已成為目前為止傳播速度最快的病毒!正如前面所提到的,它甚至迫使許多大型公司關(guān)閉它們的電子郵件系統(tǒng)。
2000年5月4日爆發(fā)的“我愛你”病毒甚至更加簡單。它包含一段作為附件的代碼。用戶如果雙擊附件,這段代碼就會運(yùn)行。它會將自身的副本發(fā)送給被感染計算機(jī)地址簿中的所有聯(lián)系人,然后開始破壞計算機(jī)中的文件。這是再簡單不過的病毒行為。它更像是一種通過電子郵件傳播的特洛伊木馬而非病毒。
梅麗莎病毒利用了被稱為VBA(Visual Basic for Applications)的Microsoft Word中內(nèi)置的編程語言。它是一種完整的編程語言,利用它,編程人員可以編寫程序來執(zhí)行一些任務(wù),例如修改文件和發(fā)送電子郵件。這種語言還具有一種方便但很危險的自動執(zhí)行功能。如果將程序插入文檔中,那么只要一打開文檔,程序就會立即運(yùn)行。這就是梅麗莎病毒的編程原理。任何人打開受梅麗莎病毒感染的文檔,就會立即激活這種病毒。它會發(fā)送50封電子郵件,然后感染一個名為NORMAL.DOT的中心文件,這樣其后保存的任何文件都會包含該病毒!它曾造成過極其混亂的局面。
Microsoft應(yīng)用程序內(nèi)置了一種稱為宏病毒保護(hù)的功能,可以防御這類病毒。打開“宏病毒保護(hù)”功能時(默認(rèn)選項(xiàng)是“打開”),自動執(zhí)行功能會被禁用。因此,當(dāng)文檔嘗試自動執(zhí)行病毒代碼時,系統(tǒng)就會彈出一個對話框來警告用戶。遺憾的是,很多用戶并不知道宏或宏病毒為何物,當(dāng)他們看見該對話框往往把它忽略掉,于是病毒就有機(jī)可趁了。還有很多用戶甚至關(guān)閉了保護(hù)機(jī)制。因此,盡管有防護(hù)措施,梅麗莎病毒還是能夠蔓延開來。
對于“我愛你”病毒來說,全部過程都是人為的。如果用戶雙擊了附件中夾帶的程序,那么病毒就會運(yùn)行并執(zhí)行一些操作。該病毒之所以能夠如此猖獗,就是因?yàn)橛脩綦p擊了那些可執(zhí)行程序。
您可以通過以下幾個簡單步驟保護(hù)自己的計算機(jī)免受病毒的侵害:
- 如果您真的擔(dān)心感染傳統(tǒng)病毒(相對于電子郵件病毒),那么您就應(yīng)該使用一個更加安全的操作系統(tǒng),如UNIX。我們從未聽說過這些操作系統(tǒng)感染病毒,原因就在于它們的安全功能能夠讓病毒(和一些不受歡迎的訪問者)遠(yuǎn)離您的硬盤。
- 如果您使用的是不安全的操作系統(tǒng),那么購買病毒防護(hù)軟件不失為一種好的辦法。
- 如果您只是避免運(yùn)行來自未知源的程序(例如互聯(lián)網(wǎng)),而且堅持使用通過光盤分發(fā)的商業(yè)軟件,那么您的計算機(jī)基本上不會感染傳統(tǒng)病毒。除此以外,您還應(yīng)該禁用軟盤引導(dǎo)——現(xiàn)在很多計算機(jī)都有這項(xiàng)功能,它可以避免因意外留在驅(qū)動器中的軟盤而感染啟動扇區(qū)病毒的危險。
- 您還應(yīng)該確保在所有Microsoft應(yīng)用程序中啟用宏病毒保護(hù),并且在知道這些宏會做什么之前,永遠(yuǎn)不要在文檔中運(yùn)行宏。通常不建議在文檔中添加宏,因此避免使用所有的宏是一種很好的策略。
從Microsoft Word的“工具”菜單中,打開“選項(xiàng)”對話框,確保啟用了“宏病毒保護(hù)”選項(xiàng),如上圖所示。 - 永遠(yuǎn)不要雙擊通過電子郵件發(fā)送過來的、帶有可執(zhí)行程序的電子郵件附件。格式為Word文件(.DOC)、電子表格(.XLS)、圖像(.GIF和.JPG)等的文件附件都是數(shù)據(jù)文件,它們不會帶來任何破壞(不會帶來上文提及的Word和Excel文檔的宏病毒問題)。帶有類似EXE、COM或VBS等擴(kuò)展名的文件都是可執(zhí)行文件,而可執(zhí)行文件可以帶來任何類型的破壞。一旦您運(yùn)行了,您就授予了它在您的計算機(jī)上執(zhí)行任何任務(wù)的權(quán)限。唯一的防護(hù)辦法就是:永遠(yuǎn)不要運(yùn)行通過電子郵件發(fā)送過來的可執(zhí)行文件。
遵循上面的幾個簡單步驟,即可讓您的計算機(jī)遠(yuǎn)離病毒的感染。
評論
查看更多