正常情況下,更新補(bǔ)丁應(yīng)該是修復(fù)系統(tǒng)已知漏洞的,但是更新補(bǔ)丁同時也可能產(chǎn)生新的問題,更新補(bǔ)丁也可能存在缺陷,近半年以來微軟的更新補(bǔ)丁經(jīng)常出現(xiàn)狀況,因此,我們有必要制定相應(yīng)的應(yīng)急計劃。
在2014年12月11日,AMD全球技術(shù)營銷主管羅伯特 · 哈洛克在Twitter上發(fā)布信息,指出最新的Windows更新補(bǔ)丁KB3004394存在嚴(yán)重的缺陷,該更新將阻礙AMD顯示卡驅(qū)動程序的安裝,而且哈洛克建議應(yīng)該立即卸載KB3004394。第二天,哈洛克再次發(fā)布信息,指出該更新將可能影響Windows 7下任何驅(qū)動程序的安裝,與此同時,微軟也宣布撤回更新補(bǔ)丁KB3004394,Windows 7用戶將無法通過Windows的更新功能安裝該更新補(bǔ)丁。
過去的6個月里,每一個Windows用戶都不得不被迫面對類似的窘境,自2014年8月以來,微軟不得不宣布撤回的更新補(bǔ)丁已經(jīng)多達(dá)10個,KB3004394只是持續(xù)了幾個月的一系列錯誤事件的高峰事件。一直以來,及時安裝更新補(bǔ)丁、修復(fù)已知缺陷、確保Windows安全無憂可以說是一條金科玉律。然而,現(xiàn)如今人們不得不重新考慮這樣做是否正確以及制定更新失敗的應(yīng)急計劃。事實上,最近一段時間以來,并不只是微軟公司的更新補(bǔ)丁頻繁出現(xiàn)問題,Google和蘋果公司在近半年來也同樣遭遇類似的問題,他們分別在2014年秋天和冬天發(fā)布了智能手機(jī)操作系統(tǒng)的新版本,但是對于新版本、新功能感到興奮不已的用戶很快就發(fā)現(xiàn)自己像是在參加beta測試。
致命的Windows補(bǔ)丁
每月的第二個星期二對于希望通過更新確保系統(tǒng)安全的Windows用戶來說是一個重要的日子,這一天微軟將為各種不同版本的Windows操作系統(tǒng)提供最新的安全更新和系統(tǒng)補(bǔ)丁。為了第一時間修復(fù)系統(tǒng)存在的問題,以往開啟系統(tǒng)的自動更新功能,以便系統(tǒng)能夠自動下載并安裝更新補(bǔ)丁是值得推薦的做法。但是從2014年夏天開始,這已經(jīng)不再是一個正確的做法。那一段日子以來,微軟已經(jīng)多次撤回存在錯誤的更新補(bǔ)丁,同時,還有許多更新補(bǔ)丁存在的問題沒有得到解決。雖然以往微軟偶爾也有個別沒能真正發(fā)揮作用的更新補(bǔ)丁,但是過去的6個月里幾乎是每一個微軟更新補(bǔ)丁發(fā)布日都會出現(xiàn)有問題的補(bǔ)丁。
大多數(shù)出問題的更新補(bǔ)丁用于修補(bǔ)安全漏洞或優(yōu)化Windows的架構(gòu),2014年8月的4個更新補(bǔ)丁也是如此。微軟原本希望使用這幾個補(bǔ)丁修復(fù)Windows 7和Windows 8中一個操縱字體文件獲得更大權(quán)限的漏洞,但是這些補(bǔ)丁沒有正常工作,卻導(dǎo)致字體文件夾權(quán)限異常以及系統(tǒng)崩潰出現(xiàn)藍(lán)屏錯誤提示。而10月另一個出問題的內(nèi)核驅(qū)動程序補(bǔ)?。↘B3000061)則相對沒有什么危害,它只是無法正常安裝。
緊接著在第四季度出現(xiàn)錯誤的3個補(bǔ)丁則是用于更新加密架構(gòu)的,在斯諾登事件后,眾所周知,操作系統(tǒng)和程序必須使用更先進(jìn)的加密算法,以確保數(shù)據(jù)和系統(tǒng)的安全。由于安全散列算法SHA-1已經(jīng)被認(rèn)為是不安全的,因而,微軟希望通過更新補(bǔ)丁KB2949927在Windows 7上測試SHA-2,但是該補(bǔ)丁和另外一個驅(qū)動補(bǔ)丁KB3000061一樣,更新補(bǔ)丁在安裝之后重新啟動操作系統(tǒng)的過程中被自動卸載,然后又再被安裝到系統(tǒng)上,并且在此之后新的加密程序沒有能夠正常地工作,Windows服務(wù)器在嘗試通過TLS 1.2保護(hù)瀏覽器和服務(wù)器之間的HTTPS連接時無法實現(xiàn)或者服務(wù)器速度異常緩慢。其次,由于微軟的更新打亂了系統(tǒng)中安裝的根證書,所以系統(tǒng)出現(xiàn)驅(qū)動程序和許多軟件(例如Windows Defender)未能通過證書驗證而無法安裝或啟動的問題。在這種情況下,微軟不得已只能撤回相關(guān)的更新,放棄新的安全算法,這導(dǎo)致在今年年初的混沌通信大會(Chaos Communication Congress,簡稱CCC)上,Windows的安全架構(gòu)被密碼專家呂迪格·韋斯裁定為不及格。
更新失敗的應(yīng)急措施
當(dāng)Windows的更新出現(xiàn)問題時,其表現(xiàn)可能是千奇百怪的。根證書和內(nèi)核模式驅(qū)動程序的補(bǔ)丁出現(xiàn)故障很可能導(dǎo)致Windows無法啟動。在這種情況下,我們需要系統(tǒng)的安裝光盤或者之前準(zhǔn)備的系統(tǒng)恢復(fù)盤,以便啟動電腦并修復(fù)或恢復(fù)系統(tǒng)。因為Windows會自動保存每次更新之前的系統(tǒng)數(shù)據(jù),因而可以通過系統(tǒng)還原工具嘗試恢復(fù)到安裝更新前的狀態(tài),還原工具包含在上面所說的啟動介質(zhì)中。如果恢復(fù)失敗,那么微軟建議我們手動完成這一工作,我們需要在命令提示符的狀態(tài)下鍵入“DISM /image:C\/cleanup-image /revertpendingactions”(假設(shè)C盤為系統(tǒng)安裝Windows系統(tǒng)的盤符)。
如果更新失敗后Windows能夠啟動,那么有更多修復(fù)方案可以供我們選擇。最簡單也是最有效的方法是馬上通過搜索引擎查找更新補(bǔ)丁以KB開頭的編號,這個號碼可以通過查看更新歷史記錄找到。通常,我們可以找到一些用戶提供的修復(fù)方案或者微軟相應(yīng)知識庫文章的最新信息。如果無法在線查找到任何解決辦法,那么卸載更新補(bǔ)丁或許將是唯一的選擇。另外,如果在線搜索并沒有發(fā)現(xiàn)其他人安裝該更新補(bǔ)丁會出現(xiàn)異常,那么極有可能是系統(tǒng)更新功能本身出現(xiàn)問題了,而不是更新補(bǔ)丁存在缺陷,為了重置Windows更新組件,微軟特意發(fā)布了一個修復(fù)工具(support.microsoft.com/zh-cn/kb/971058),只需簡單地下載并運行它即可。
如果更新補(bǔ)丁仍然經(jīng)常出現(xiàn)問題,那么我們應(yīng)該考慮停止自動更新。在“Windows更新”中選擇“更改設(shè)置”,修改設(shè)置為“下載更新,但是讓我選擇是否安裝更新”,這樣我們可以在更新發(fā)布后確定其沒有問題后再手動進(jìn)行安裝。
用戶成為beta測試員
微軟的更新補(bǔ)丁出現(xiàn)錯誤的頻率和集中度都顯得有點詭異,而相對于普通的更新補(bǔ)丁來說,對于系統(tǒng)更新,特別是系統(tǒng)版本更新?lián)Q代(如Windows 10、iOS 8、Android 5)的更新,我們需要更加小心。
目前,微軟的Windows 10正在測試中,微軟希望能夠通過安裝技術(shù)預(yù)覽版的用戶進(jìn)行更多的測試。由于微軟已經(jīng)宣布,Windows 8等早期版本的系統(tǒng)可以免費升級Windows 10,因而許多人都對Windows 10的測試感興趣。僅2014年,世界各地已經(jīng)有超過150萬的測試者安裝了Windows 10預(yù)覽版,其中更有45萬用戶使用Windows 10處理日常工作。通過這些使用不同硬件的免費測試員,微軟已經(jīng)成功地消除了約1300個漏洞。但即便如此,Windows 10的更新補(bǔ)丁問題同樣困擾著這些用戶:2014年12月微軟發(fā)布了一個用于解決explorer.exe文件問題的補(bǔ)丁KB3020114,和此前Windows 7和Windows 8的更新補(bǔ)丁KB3000061一樣,用戶的系統(tǒng)陷入了一個更新循環(huán)。兩天后,微軟發(fā)布公告說明并糾正了這個問題,并發(fā)布了一個新的補(bǔ)丁KB3025096。
不能打電話的iOS 8.0.1
手機(jī)操作系統(tǒng)的更新問題同樣令人不安:蘋果的iOS和Google的Android系統(tǒng)都在近期更新?lián)Q代。蘋果公司iOS系統(tǒng)出現(xiàn)了各種難以解釋的問題,在iOS 8發(fā)布一個星期后,該系統(tǒng)馬上發(fā)布了8.0.1版本,然而新的系統(tǒng)不僅沒有更穩(wěn)定,反倒問題不斷:最嚴(yán)重的是用戶出現(xiàn)移動網(wǎng)絡(luò)中斷、無法打電話、甚至連指紋掃描儀都拒絕工作。但是,截止到目前為止,蘋果公司并沒有提供詳盡的解釋,沒有說明為什么在內(nèi)部測試中沒有檢測到8.0.1版本所存在的問題。iPhone的營銷主管格雷格發(fā)出的唯一聲明則否認(rèn)出現(xiàn)的問題是一個軟件錯誤。這也難怪許多iPhone用戶對于是否要切換到新的版本仍舉棋不定,尤其是當(dāng)蘋果的問題似乎有更深層次的原因時,新的MacOS X同樣出現(xiàn)問題,WLAN錯誤困擾了用戶很長一段時間。知名開發(fā)商馬爾科·阿莫認(rèn)為,蘋果出于營銷的目的堅持每年推出操作系統(tǒng)的一個新版本,時間過于緊張,設(shè)置最后期限的做法對于軟件開發(fā)來說也是不切實際的。
Android 5因為一個錯誤推遲了交付日期:許多Nexus 5一直無法使用無線局域網(wǎng)。另外,還有一些智能手機(jī)和平板電腦經(jīng)常過一段時間就從待機(jī)模式激活,這大大縮短了電池的使用壽命。Google已經(jīng)在Android 5.0.1版本糾正了這個問題,但更嚴(yán)重的是一個內(nèi)存錯誤:一些Nexus設(shè)備更新后出現(xiàn)應(yīng)用程序無法釋放所使用的內(nèi)存,最終內(nèi)存完全補(bǔ)占用,導(dǎo)致應(yīng)用程序崩潰。目前,Google已經(jīng)關(guān)閉了相關(guān)的Bug跟蹤,這表示該問題已經(jīng)解決,補(bǔ)丁將在下一次更新時進(jìn)行安裝,不過,Google尚未公布相關(guān)的信息。
此外,Google似乎忽略了Android開放源代碼的部分。自定義ROM的開發(fā)人員通過Android開源項目(Android Open Source Project,簡稱AOSP)的代碼開發(fā)自定義的ROM,例如CyanogenMod。一位化名為Pulser_G2的著名定制ROM開發(fā)商曾經(jīng)在2013年通過AOSP開發(fā)Nexus7的自定義ROM,他認(rèn)為Google似乎沒有采取任何質(zhì)量保障措施,也就是說,使用Google發(fā)布的AOSP開發(fā)的自定義ROM,用戶或許將遭遇被迫充當(dāng)beta測試員的境遇。