請問,「會刪除檔案」的程式是不是病毒?
不是。
舉例來說,使用者可以用「檔案總管」刪除檔案,但「檔案總管」是個正常的應用程式,不是病毒。
好的,那如果我,嚴某,寫了一個程式,一執行它就會不分青紅皂白地亂砍檔案,把硬碟清乾淨,那這是不是個病毒?
不是,它頂多是個「惡意程式」,因為它可能不具傳染性;又如果你知道這東西的行為這麼惡劣,你就不會去執行它了;又或者說,如果你不知道這程式的作用,你就不會隨意執行之;此外,這麼惡劣的行為,大多防毒軟體會偵測到並禁止執行;再者,作業系統大多會禁止過於恐怖的行為(像是:直接刪除C磁碟裡面的所有檔案)。所以,這惡意程式也許惡意,但不容易闖關成功就是。
所以,我們可以大概得知,「正常」的病毒程式,通常有以下的條件:
1. 刻意的惡質行為(刪除檔案、偷取資料、癱瘓電腦……)
2. 避免被防毒軟體和系統偵測到
3. 具備傳染能力,以便「流毒無窮」,「遺臭萬年」
關於第一點,要提醒各位的是:病毒的行為和一般電腦程式的行為並無顯著之不同,兩者的差異通常只在於動機和行為模式而已。拿「刪除檔案」來說,一般的程式(像是檔案總管)是在使用者的操作之下,進行「有意識」的刪除檔案行為;但是病毒卻是在使用者「不知情」的情況下,進行無意識的「檔案屠殺」行為。看起來都是「刪除檔案」的行為,只是因為「動機」不同,也就產生了天差地別的結果。
要防堵病毒先知道運作原理
所以,病毒和一般的程式,純粹就功能來看其實沒有太大不同,都是一種程式,只是兩者的「動機」和「行為模式」(前面講的那三點)有很大很大地不同。所以,了解一個程式在電腦裡面執行的大概流程,將有助於你知道對付病毒的竅門。請參考「程式執行概念圖」。
一般來說,程式執行時,一定要經過作業系統這一關。所以Microsoft想了一個主意來防堵病毒,那就是「要讓Windows執行的程式,得經過Microsoft的認證」。也就是說,你既然信任Microsoft(不然你怎會採用Windows?),那Microsoft就從Windows來幫你把關。沒經過認證的軟體,就會由Windows來警告使用者「這程式沒有經過認證,你真的要執行嗎?」之類的訊息。
可惜,立意雖佳,效果奇差,多數人都是不經思考就選擇「是」。
IE、Word都可以執行程式(和病毒)
此外,在作業系統底下固然可以執行各種應用程式,某些應用程式本身同時也是其他應用程式的執行平臺,使用者在操作它們的過程中可以額外執行特殊的應用程式,但也造成了病毒可以利用的「漏洞」。
理論上,Word只是一套應用程式,但是在設計的過程中,設計公司(就Microsoft)讓它不只是一套「文字處理器」。Word其實是一套「文件產生器」,它可以執行很多特定的指令碼,這種多樣化、強大而複雜的功能,讓Word的功能可以經由指令碼不斷的延伸,這種指令碼稱為「VBA」(Visual Basic for Applications)。
同樣的,「好的程式」稱為程式,「壞的程式」就是病毒了。所以早期有一些所謂的「巨集病毒」,就是用VBA撰寫,並藏在Word、Excel的文件檔案之中傳遞給使用者。不知情的使用者用Word、Excel去開啟這些「藏毒」的文件,就中毒了。
另外一種常見(且危險性更高)的病毒,則是藉由瀏覽器執行。瀏覽器(不只是IE,其他的瀏覽器也一樣)和Office很類似,它也是一個「程式執行器」。因為在瀏覽器設計之初,為了要讓它能夠給使用者更豐富的上網應用(像是,可以網路購物),瀏覽器大多有執行Web應用程式的能力。Web應用程式的格式和技術都或有不同的複雜程度,Java、JavaScript、ASP、PHP、Perl……,老實說,我個人……都不懂(很抱歉讓各位失望了)。但是,由於瀏覽器有執行程式的能力,所以它也可以執行具有危險性的程式碼,這點我挺確定。
為何有些瀏覽器宣稱它們比較安全?那是因為,它們在設計的過程中,就刻意注意執行各種指令碼的防護過程,或是可以關閉某些程式碼的執行能力(Firefox的設定中有選項可以關閉JavaScript的執行能力),或是根本不支援某些指令碼(像是Firefox本身不支援ActiveX元件的執行)。不過,網路上的問題多得嚇人,就算你用了號稱更安全的瀏覽器,這也是事實,但它也不是百分百的安全,因為駭客會設法研究瀏覽器和作業系統的漏洞,讓你「一上網就中毒」,這才是恐怖的地方。
不過,目前作業系統和防毒軟體也都會防護這些可以執行程式的平臺,所以只能說,各位用這些軟體時,多留意,可別以為這些程式只是一般的程式──不只喔!它們還是可以執行指令碼的「程式執行平臺」呢!
防毒軟體請只裝一套就好平心而論,如果讓Windows自動管理所有的應用程式,以防堵所有的惡意程式,也不失為一個方法。雖然「你信任的人『可能』會傷你最深」,但你總得信任一個人、一個東西,讓它幫你過濾、管理所有的程式,以避免電腦中毒。如果你覺得Windows不可靠,那你得找新的「代理人」來幫你管。大多數使用者的選擇是防毒軟體。所以我們在作業系統底下加裝一套防毒軟體,來補足作業系統的不足,請參考「防毒軟體防護架構圖」。
使用防毒軟體的注意事項是:
1. 一臺電腦裝一種防毒軟體就好
防毒軟體百百種,但是一臺電腦裝一套就好,別裝兩、三套同樣功能的防毒軟體,以為這樣會更安全──沒有這種事情的。因為防毒軟體在作業系統下管理所有進出的程式行為,而這種「管理行為」本身就是一種高權限的行為。你裝了兩套防毒軟體,這兩套軟體「互相」都會認為對方是危險的程式,輕則電腦緩慢,重則無法開機,整個死當。所謂「貞女不事二夫,忠臣不事二主」,請不要惡搞你的電腦。
不過,如果一臺電腦安裝「一套防毒軟體+一套防火牆軟體」那是可以的,因為這兩套軟體的功能互相不干擾。只是,建議你若另外加裝防火牆軟體,最好把Windows XP SP2內建的防火牆功能關閉(防火牆和防火牆之間也會打架)。
2. 防毒軟體要定期更新病毒碼
大多防毒軟體必須不斷的更新病毒碼,因為它們會藉由「特徵」、「行為模式」的比對來偵測各種病毒和惡意程式,這些特徵和行為都不斷更新,所以你平常最好開啟防毒軟體的自動更新功能。但是一年(或是三個月?不一定,看你的防毒軟體購買時給你的授權時間)到了,你得記得去買授權碼的時間延展,或是乾脆買新版防毒軟體(通常新版軟體會貴些),不然若有新的病毒出現,防毒軟體卻無法更新病毒碼,那你的電腦也就無法百分百安全被防護。
3. 防毒軟體也會誤判,因此使用者不能完全把管理責任丟給軟體
防毒軟體管理所有Windows程式的進出,有時也會有誤判的時候。這時你得注意,並不是永遠都「Let it be(隨它去)」就可以了,你得至少有點判斷能力。
比方說,你正在安裝一個應用程式,此時防毒軟體提出警告,「這程式有潛在的危險」,老實說,如果你這應用程式你很清楚是「百分百的安全」,那你就該把這程式加入病毒防護軟體的「安全名單」之內,以避免它一直警告你「這軟體有危險」。但如果你確實是在執行一個你根本不知道是啥的東西,那當然要慶幸你的防毒軟體警告你了(並且中止病毒的執行、停止軟體的安裝,並把這程式殺掉)。
不過,我得強調,很多軟體安裝時,多少都會需要修改Windows的一些設定,那都有可能會造成防毒軟體的警告,你若不允許軟體安裝時的修改,這些軟體卻又不能正常執行。所以,別以為防毒軟體百分百聰明,畢竟,我再講一次,純就功能面來看,病毒的行為本身和正常程式沒有太大不同,所以這種誤判在所難免,使用者總得負責判斷一些「難免」的行為,不是都不管它就可以高枕無憂的。
本期結語:Vista的終極警探:UAC
不過,大概就在去年,「殭屍」橫行的狀況也太嚴重了點。最近又有隨身碟(硬碟和記憶碟都有)出貨就藏木馬的新聞,整個IT界真是「談毒色變」。Microsoft也不希望自己的Windows總是被當作「病毒的溫床,殭屍的寄生處」(這種事情也不太光彩吧!),所以在Windows Vista的研發過程中,加入了一個稱為「UAC」的能力。
UAC,User Access Control,中文可稱之為「使用者存取控制」吧!
就我自己的觀感,Windows Vista總之就是把所有它認定「有危險性」的行為,都要求使用者得「確認」才會執行,即使明明是你使用者手動執行的功能也一樣。此外,就是把所有「很敏感的」資料夾都保護起來,設法要維持系統核心極端的穩定、牢不可破(robust)。所以,Windows資料夾你不能隨意擺東西進去了,Program Files資料夾也是。
這種想法立意不錯,畢竟是跨出了一步。而且,根據一些我得到的訊息,這種行為並非一般防毒軟體主要以「特徵」來防堵病毒,而是以「行為模式」來防堵各種危險,某種程度來說是個聰明的概念。
不過,一方面,你的電腦的作業系統得先換成Vista,才有這功能;二方面,這功能有點惱人,有的人會選擇乾脆把這功能關掉(寧可中毒也不希望自由被限制)。三方面,則是這更強的防護,對於某些會在Windows、Program Files裡面放資料的舊軟體,安裝時可能會導致嚴重問題。但不管如何,這至少提供了更多的防護。我只能建議,如果你不是個高手,那還是建議你就保持UAC的開啟。就算你(是個高手)真的把它關了,也一定是在「你至少有安裝防毒軟體」的前提之下才關閉UAC。「安全誠可貴,自由價更高?」UAC開還是關,權利在你手裡。
文/|
2007-11-29發表
熱門新聞
2025-04-28
2025-04-28
2025-04-28
2025-04-28
2025-04-28
2025-04-25
2025-04-25
Advertisement