為挑戰防毒軟件廠商 卻意外造成大錯
【1998 的電腦大災難 😭】 昨天是 4 月 26 日,除了是震驚全球的切爾諾貝爾核事故紀念日外,在電腦歷史上,這一天亦是最惡名昭彰的「CIH 病毒」(CIH Virus)大爆發 27 週年。它不僅會格式化硬碟,還會破壞 BIOS。在潛伏近一年後便攻陷全球,這款由台灣學生編寫的病毒,其摧毀硬件的極端手段至今仍令老一輩資訊安全專家餘悸猶存。
1998 年,就讀台灣大同工學院(現大同大學)的學生陳盈豪(Chen Ing-hau,簡稱 CIH)編寫了這款病毒。當時他的初衷是為了挑戰防毒軟件廠商,認為他們誇大防毒效果,因此想設計一款能躲避偵測且極具破壞力的病毒,來證明自己的論點。
不同於當時大多數病毒會附加在執行檔末尾,導致檔案體積膨脹;CIH 病毒採用了極為罕見的「空間填充」(Spacefilling)技術。它會將自己的程式碼拆分,並塞進 Windows 執行檔(PE 格式)內部的空白區域。這使得受感染的檔案大小保持不變,成功躲過了當年許多防毒軟件的偵測。
CIH 病毒之所以被視為傳奇,在於它恐怖的「雙重破壞」功能。當電腦系統時間來到 4 月 26 日時,病毒便會被觸發,它不只是破壞硬碟資料,更讓硬件「物理變磚」。
別小看這不到 1KB 的大小,它已能完成感染、隱藏、提升權限與摧毀硬件。一旦用家執行了受感染的檔案,CIH 就會啟動以下連鎖反應:
1. 駐留記憶體(TSR):病毒啟動後,會先在記憶體中佔據一塊隱密空間。
2. 提升權限(Ring 0):這是 CIH 最著名的技術特點。它利用 Windows 95/98 的漏洞,將執行權限從一般程式的 Ring 3 跳轉到系統核心的 Ring 0。在 Ring 0 模式下,病毒便擁有了與作業系統同等的最高權限。
3. 攔截系統呼叫(Hooking):病毒會監控系統所有的檔案操作。每當用家開啟、複製或執行任何新檔案時,駐留在記憶體中的 CIH 就會立刻感染該檔案。
4. 檢查日期與發作:病毒會持續讀取系統時鐘。一旦日期匹配(例如 4 月 26 日),它就會從「擴散模式」轉為「破壞模式」,開始對電腦進行破壞。
CIH 病毒會覆蓋硬碟前 1MB 的資料來摧毀分割表,讓資料無法讀取;同時向主機板的 BIOS 晶片寫入垃圾數據,導致電腦無法啟動,甚至需要更換晶片。
原來,病毒完成後最初只用在校內的實驗室電腦中。當時有同學在不知情的情況下,使用了含有病毒的校內電腦,並透過磁碟「帶出」校外,隨後被上傳到當時盛行的 BBS,隱藏在一些工具軟件或遊戲中供大眾下載。
雖然 CIH 病毒在 1998 年 4 月 26 日已經爆發過一次,作者陳盈豪亦在 TTIT-CSE 的 BBS 上公開道歉,並主動提供解毒程式,但情況卻變得越來越嚴重。CIH 病毒被證明在 1998 年夏季感染了至少 4 個國際知名的盜版組織,結果破解版遊戲或應用程式全被感染。
此外,1998 年底 Yamaha 的 CD-R400 韌體更新檔被病毒感染;1999 年 IBM 出廠的 Aptiva 系列品牌電腦,竟然在出廠預載軟件時就已經帶有 CIH 病毒。Activision 的遊戲試玩版,以及部分歐洲電腦雜誌隨附的贈品光碟,都出現了病毒的蹤跡。
1999 年 4 月 26 日,CIH 病毒準時發作。這一天在科技史上被稱為「黑色星期一」,全球約 6,000 萬部電腦在這一天集體「暴斃」,許多政府機關、學校實驗室的資料瞬間蒸發。媒體大肆報導造成民眾恐慌,儘管多間防毒軟件廠商即日緊急發布救治工具,但對於已經「變磚」的電腦,軟件也無能為力。
事件發生當天,台灣大同工學院的電話被打爆,台灣警方迅速展開行動。陳盈豪當時正在軍隊服役,雖然他被警方帶回問話,但由於當時台灣《刑法》中尚未有針對「電腦犯罪」的條文,加上陳盈豪強調編寫病毒是為了挑戰防毒軟件廠商,並非為了牟利或惡意破壞,最終因無主觀惡意而逃過起訴。
1990 年代末期,軟件開發商和硬件廠商對「軟件供應鏈安全」幾乎沒有概念,認為自家封閉環境生成的檔案便是安全的。CIH 病毒不僅是一場科技災難,它更像是一記響亮的耳光,打醒了當時對資訊安全還處於「純真年代」的全球科技產業。
當時主流的 Windows 95/98 系統為了兼容性,允許應用程式輕易取得 Ring 0(核心權限)。一個不設防的作業系統,等於是幫病毒打開了大門。這次事件也加速了 Microsoft 放棄 9x 核心,轉向具備嚴格權限隔離的 Windows NT 核心。
對了,當年小編有一份報告就是因為 CIH 病毒要由零開始重做,「陳盈豪」這名字我一輩子也會記住。