趙立正 王天正 青島理工大學信息與控制工程學院
計算機病毒是一種計算機程序,它潛伏在計算機系統資源之中,當滿足破壞條件時便進行破壞行為,當滿足傳染條件時便感染其他系統并伺機破壞。計算機技術與計算機網絡技術的發展,對計算機病毒的發展起到了推波助瀾的作用。計算機病毒也從破壞軟盤、磁盤和光盤等的單機病毒發展為破壞局域網、互聯網甚至使整個網絡癱瘓的網絡病毒。縱觀計算機病毒的發展歷程,不難發現,新技術的出現總會催生出新型計算機病毒,而新型計算機病毒的傳播和流行又會促進反病毒技術的更新和發展。
早在第一臺商用計算機出現之前,計算機病毒的概念便已經出現了。1949年,計算機創始人馮.諾依曼在論文《復雜自動組織論》中提出計算機程序可在內存內自我復制和變異的理論,勾勒出計算機病毒的藍圖。但在當時,人們根本想象不出這種程序將帶來怎樣的后果。
1959年,僅僅十年的時間,能自我復制的程序便從概念變為了現實。美國著名的AT&TBell實驗室的三個僅僅二十多歲的程序員編寫了一個名為“磁芯大戰”的電子游戲,玩家編寫出具有自我復制能力的程序相互攻擊,吃掉別人程序者為贏家。
1983年,世界上公認的第一個計算機病毒程序現世。它是由弗雷德 科恩博士研制并在美國計算機安全會議上提出一款在運行過程中便可以自我復制的破壞性程序。數小時后,此程序在VAXll/750機上運行成功,從而證實了計算機病毒的存在。
1986年,巴基斯坦的兩個程序員兄弟為打擊盜版軟件使用者,編制了名為“巴基斯坦”的病毒,這是世界上最早流行的計算機病毒。
1988年開始,大麻、IBM圣誕樹、黑色星期五等形形色色的病毒大肆流行。特別是羅伯特.莫里斯研制的蠕蟲病毒,是世界上首個通過網絡傳播的病毒,并制造了一起震撼世界的“計算機病毒侵入網絡的案件”。
一直到1992年,計算機病毒更是發展迅速,尤其是歐洲前社會主義國家成為孕育病毒的肥沃土壤,甚至連專門編寫病毒程序的工具---病毒制造機也相繼問世。
當今社會,計算機病毒更是結合了新的計算機技術,變得更加智能化,人性化,網絡化,復雜化。“尼姆達”、“紅色代碼”、“蠕蟲王”等一大批蠕蟲病毒蜂擁而至,掀起軒然大波。“沖擊波”、“震蕩波”、“狙擊波”更是在當時沖亂了網絡運行商和反病毒廠商的陣腳。防治計算機病毒刻不容緩。
起初,計算機病毒只是通過光盤,磁盤等物理介質以文件復制的方式傳播。但伴隨計算機網絡的發展,電子郵件、網頁、網絡共享等成為計算機病毒傳播的主要途徑。大量新型病毒都是利用基于網絡的編程技術編制的。例如在網頁文件末尾增添病毒代碼“熊貓燒香”病毒,它會在用戶訪問網頁時自動跳轉到指定網址下載病毒,完成感染用戶主機的任務。當一個瀏覽量很大的網站被感染后,該病毒就會在網絡中迅速大量的傳播。
傳統的病毒往往只是單一的感染文件或文件夾,很容易被查殺。如今的病毒不僅具有反查殺的功能,而且可以自我完善,在用戶未察覺到的情況下自行完成一系列動作。甚者有些病毒同黑客程序結合,其目的不再簡單的“惡作劇”,而是遠程操控網絡中的計算機,獲取機密信息。就拿木馬病毒來說,傳統木馬病毒需要黑客主動去連接被感染的主機,從而進行破壞行為;現代木馬病毒則是在主機被感染后主動去連接黑客程序,很難被檢測出。
伴隨無線網絡和手機、平板等無線設備的迅猛發展,計算機病毒已邁入無線的圈子。而且病毒的傳播方式也是多種多樣,無線藍牙、短信、WiFi等都是病毒傳播的路徑。比如通過無線藍牙進行傳播的“卡比爾”病毒,它會利用藍牙搜索周邊存在漏洞的手機,一旦發現,便進行自我復制后發送到對方手機。再比如短信病毒“移動黑客”會在用戶查看病毒短信時即刻關機。還有通過WiFi傳播的“變色龍”病毒,它可以選出加密技術最易攻破的WiFi接入點來感染WiFi網絡,傳播迅速而且可反查殺。
多種多樣的腳本語言和病毒制造機的流行使得病毒的編制不再僅限于技術高招的專家,更多“業余”的程序員都能很輕易的制造病毒及其變種。這便導致了病毒的種類呈指數上升,而且出現了結合多種病毒特征的混合型病毒。比如兼具引導型病毒和文件型病毒特征的Onehalf病毒,不僅會感染磁盤的主引導記錄,而且會破壞可執行文件。這種病毒很難查殺干凈,因為每次查殺時若只發現一種病毒特征便進行相應的清除工作,會使得另一種病毒特征駐留下來。而且往往這種不徹底的清除會使病毒更具破壞性。
由于“云端”概念的出現和迅速發展,使我們產生了“云病毒”的構想,其核心思想是將病毒代碼存儲于云端,當滿足病毒發作條件時,通過調用云端服務來實現相應的感染和破壞功能。
在這里,我們首先簡單介紹一下“云端的概念”。“云端”是一個軟件聚合平臺,集成了大量軟件資源,使軟件搜索、下載、使用、管理、備份等功能在獨立虛擬環境中封裝為一體,從而避免系統與軟件發生耦合。其最主要的特點是軟件虛擬化,即只有在需要軟件時才進行動態安裝,用完后一瞬間卸載軟件,絕無痕跡。正是這個特點,給了我們“云病毒”的靈感。下面我們來詳細探討一下“云病毒”的想法。
“云病毒”,顧名思義,云端病毒。首先,我們需要建造一個云端病毒庫,將形形色色的病毒通過虛擬化技術封裝為一體,然后提供類似API的云端服務接口。這樣當我們需要使用病毒代碼時,無需下載,只需聯網調用相應的云端服務即可。而且對于云端病毒庫,我們可以統一管理,對不同類型的病毒進行模塊化處理,然后通過模塊的耦合產生“雜交”病毒,使一種病毒同時兼具多種病毒的特征,增加系統檢測和查殺的難度。然后在云端服務接口不變的前提下,不斷更新病毒的內容,使得病毒不停的更換攻擊模式,從而躲過類似Snort誤用檢測系統的檢測。
當病毒感染計算機時,只需插入幾行調用云端服務和進行傳染的代碼即可,進行破壞的任務全都交給云端病毒庫來完成,并且傳染代碼也只需將調用代碼進行復制傳播即可,無需復制整個病毒程序。
當病毒完成傳染破壞任務后,便關閉云端服務,云端中的病毒庫里的一切遺留信息均從系統中消除,從而使用戶無從查起。
“知彼知己,百戰不殆”,只有充分的了解計算機病毒,才能更加精準有效的防治病毒。本篇文章通過對計算機病毒歷史的回顧,計算機病毒發展趨勢的預測以及“云病毒”的構想對計算機病毒重新認識和定位,為反病毒技術的研究和發展提供借鑒,從而減少計算機病毒帶來的危害,使我們擁有一個健康安全綠色的網絡環境。