2009年2月11日星期三

小心窗戶

小測試:以下各項有甚麼共通點?
A) 美國巡洋艦 USS Yorktown
B) 英國皇家海軍
C) 法國海軍

(吓?你唔係答「都係同軍事有關」咁廢呀嗎?)

無錯!它們都用 Windows 作業系統,也因此「中招」。
French fighter planes grounded by computer virus; 英國《每日電訊報》,2009 年 2 月 7 日
據報道,法國海軍的電腦數據庫曾遭一種名為 Conflicker(又稱 Downadup)的病毒入侵,令所有「疾風」式 (Rafale) 戰鬥機於上月 15 及 16 日都不能從電腦下載飛行計劃,必須停飛。這些戰機最後要從「另一個系統」啟動。據法國《解放報》報道,當時海軍參謀部及國防部都不清楚有多少軍事信息系統可能受感染。

雖然微軟早於去年十月已通告這種病毒的危險,但海軍方面並無在意,亦無採取必要的安全措施。(McAfee? F-Secure? Symantec? 抑或在下使用的自由軟件 ClamWin?)海軍懷疑這次是有人使用了帶毒的 USB 手指,而不是駭客入侵。發言人 Jérome Erulin 表示,今次事件只影響通訊,並無資料流失。他聲稱海軍已截斷該病毒的傳播途徑,現時「有 99% 的網絡是安全的」云云,但海軍方面亦承認之前消除病毒時,其通訊要回復到傳統的電話、傳真及郵遞方式。

海軍方面稱,傳輸最機密文件的 Sicmar 網絡未受影響。受襲擊的是海軍內部非安全網絡Intramar,而病毒直至上月 21 日才被發現。由於整個網絡都受感染,軍方人員被勒令不得開啟電腦。兩日後,軍方決定將 Intramar 網絡與軍方其他電腦隔離,但是 Villacoublay 空軍基地及第八通訊團的一些電腦已經受感染。

總之,一句講晒,好大鑊。

HMS Ark Royal

英國軍方最近亦受到電腦病毒困擾。英國皇家海軍軍艦的管理系統叫 NavyStar (N*),它管制電郵、互聯網、後勤、醫療以及人事等多項功能。系統硬件由 Fujitsu 提供,基本上都是標準的個人電腦配件,但安裝上有特別設計,令電腦可抵受 70G 的加速度,以及令電腦輻射不會影響其他系統運作。系統軟件則由 BAE Systems 提供,根據 Fujitsu 的資料(第十頁插圖底部),N* 採用的是 Windows XP 作業系統。

自上月 6 日起,英國的軍事網絡遭一種混合病毒感染,根據《星期日泰晤士報》報道,病毒令最少廿四個空軍基地及七成半的海軍艦隻的電郵系統癱瘓。由於艦隻使用 N*,可想而知空軍受感染的也是 Windows 作業系統。報道指病毒曾把皇家空軍的一些電郵傳到俄羅斯,不過據科技網站 The Register 引述,英國國防部發言人表示雖然該病毒確曾「嘗試致電回家」,但他堅持國防部「既有的安全措施」已制止此事發生,因而「沒有任何機密或個人資料流失」云云。(咁即係有其他資料流失?)The Register 的編輯相信該病毒可能和 Conficker 有關。

這宗事故拖了個多星期仍未解決。據 BBC 及《每日電訊報》及 The Register 報道,該病毒影響電郵及互聯網,而從樸次茅斯港前往利物浦的皇家方舟號 (HMS Ark Royal) 航空母艦,相關的通訊系統仍未恢復,但國防部發言人表示該病毒對各艦的武器及導航系統以至日常運作都沒有影響,官兵如要致電回家,可使用艦上的「福利電話系統」或私人手機云云。不過此病毒的確影響軍方運作。據 itv.com 報道,皇家空軍的飛機須倚靠後備通訊設施來取得飛行計劃。

如果你覺得這樣的情況算嚇人的話,最好再想一想。根據 The Register 的三篇報道(這裏這裏這裏)以及 Defense Industry Daily 的消息,皇家海軍計劃逐步將舊艦與新艦的指揮系統安裝在 Windows 2000 或 Windows XP 上。指揮系統的唯一供應商 BAE Systems 更決定在只用 Windows XP 來安裝「新一代潛艇指揮系統」(Submarine Command System Next Generation),而微軟則戲稱這套系統為 Windows for Submarines。此系統已安裝在配備三叉戟 (Trident) 核彈的潛艇戒備號 (HMS Vigilant) 上,並會安裝在其他先鋒 (Vanguard) 級潛艇上。如果有日有操作員誤以為核彈發射掣是 Windows activation 的話,呵呵 ……


以前那些所謂 mission-critical systems,多用 Unix 作業系統。近年可能為了減省成本,不少都轉用 Windows。只是 Windows 早有前科。1997 年 9 月 21 日,當時仍未退役,並具備神盾戰鬥系統(Aegis combat system,或譯宙斯盾戰鬥系統)的美國巡洋艦 USS Yorktown,就因為 Windows NT 故障以致推進系統失靈,在海上動彈不得達兩小時四十五分 (Wired, Government Computer News)。事緣操作員輸入某個分母時,錯誤地輸入零,造成 division-by-zero error。這本應是應用程式的錯,頂多令程式本身當掉,但根據海軍的備忘錄顯示,這項錯誤後來卻 "crash all LAN consoles and miniature remote terminal units"。

照常理說,如果電腦符合 IEEE 754 標準的話,把數字除以零應該得出有正負號的 Inf (infinity),即使是 C/C++ 程式,多數編譯器也會給出 Inf 或者 NaN (not a number) ,而不是超出浮點數字長度的輸出,因此不會造成眾多程式錯誤中最常見也令作業系統垮掉的 buffer overflow。究竟這宗事故是應用程式的錯還是 Windows NT 的錯,並不清楚。當然,歸根究底也是操作員的錯,因此事後軍方訓練各操作員,遇上問題的話,可嘗試更改資料項的數值。(只是 …… 都當了機,如何更改?)

一名有廿六年經驗的美國海軍控制系統承造商 Anthony DiGiorgio 認為這是 Windows 的問題。他說,「把已知有某些錯誤模式的 Windows NT 用在艇艦上,有如希望幸運在我們這邊。」

在美國的 IT-21 計劃及 Smart Ship Project 下,艦隻的指揮及控制系統開始由 Unix 改為 Windows。神盾艦隊組隊科的署理技術總監 Ron Redman 認為,「控制儀器和機器的話,Unix 是較佳的系統;傳輸資訊的話,NT 較佳。NT 還未盡善盡美,我們有幾次試過因 NT 的問題導至系統失靈」。他表示 Yorktown 曾經多次因 Windows NT 的問題而要拖回港口。「由於政治關係,我們被迫做一些無政治壓力之下我們不會做的事,例如用 Windows NT。如果由我決定的話,我也許不會把 Windows 作這應用(註:控制推進系統)。」

1 則留言:

方潤 說...

學校也是這樣的。據聞明知學生有需求,但學校遲遲不肯為圖書館的公用電腦加裝USB插頭(因為那些是window2000舊機)的主要原因,就是因為易受感染。
有很多人不知為何竟然連防毒也不做。

又所以雖然在下有手指跟身,但幾乎只會用在家中電腦和學校那部私人laptop。插在其他電腦上面,可免則免。
以前有人作了個很抵死的比喻﹕拿手指隨處插,跟不載套去性濫交一樣。
可見「安全性行為」也不一定只是「安全/性行為」。

(其實就像以往用軟磁碟一樣,但軟碟至少可以set unwritable,不讓電腦反向感染。但手指連這一點也做不到。)