今天iPhone災情慘重,一早就有長官打電話來問我,但眾說紛紜,而且我所有裝有最新版的iDevices都沒出問題,所以不知道發生何事,直到搜索這篇報導[1],才知道問題所在。(註: Apple已經提供新的iOS 11.2,更新後應該可解此問題,但我不負任何責任。)
各位可以好好酸Apple,挫挫他的銳氣也好,或許iPhone會因此降價。不過我不想當酸民,所以想從技術面來談談與此相關的事。
據推測[1],這次災情的原因可能如下:
"The problem seems to be tied to local notifications received from apps that offer daily or repeat reminders. For example, meditation app Headspace, one of the affected apps, sends daily reminders to users to encourage them to take some time to meditate. Any app using local (as in not pushed from a remote server) notifications that repeat will cause a crash".
出問題的使用者,大概跑了某個會在系統的告示板上重複提醒使用者的應用。不過,會因此而當機,作業系統難辭其咎。
為了效率,Apple對iOS做了很多優化。我們知道,如果把一些功能放在作業系統內部空間(kernel space),可以節省不少負擔(system call, context switch, memory copy),然而一旦有點小差錯,可能導致系統當機。
請不要小看這類站在時代尖端的系統軟體工程,這需要極度專業的軟體工程訓練,這不是修過基礎的作業系統原理就能勝任的,複雜度遠遠超過寫微控制器的程式,或是寫裝置驅動程式。
系統驗證的難度與日俱增。當系統越來越複雜的時候,越難以保證系統絕不犯錯。軟體驗證工具,如果使用得宜,可能降低出問題的機率。
由此可知系統軟體工程人才的重要性,但台灣這些年說要發展軟體,極力強調創新之餘,是否知道台灣業界極度缺乏專業、高階的系統軟體工程人才?
資安的問題也是如此。很多所謂的資安人才,學會如何運用現成的攻擊與防禦工具,但系統軟體內部的資安議題,則較缺乏關注,例如說,怎麼寫出沒有安全漏洞的軟體呢? 如何設計不會被駭客用硬體手法破解的系統?
上個月Intel的處理機被爆料出事了,幾乎所有2015年之後生產的處理機都中鏢[2]。主要是因為Intel在x86處理機內加裝一顆管理用的小處理機(Management Engine)有安全漏洞,影響Windows和Linux的使用者,但不影響Mac。
但Mac的使用者也不要高興得太早,因為OS X有個更離譜的資安漏洞也在幾天前被揭露出來[3]。使用者如果沒有設定root帳號的密碼,那麼駭客就可能可以輕鬆用root帳號登入,不需要任何密碼。
各位可以酸Intel和Apple,但大家每天在使用的Windows,三不五時就有security update,隨時都在補資安漏洞。
要發展複雜的應用與系統,勢必要有硬底子的系統軟體工程人才和系統資安人才,否則產品很容易出事。
話說,使用深度學習打造出來的現代AI系統是否穩定和安全? 這也是相當值得研究的議題。
[1] Date Bug in iOS 11.1.2 Causing Crash Loop on iPhones as December 2 Hits
https://www.macrumors.com/2017/12/02/ios-11-1-2-date-bug-crash-loop/
[2] 英特爾修補影響數百萬台PC與伺服器的CPU韌體漏洞
https://www.ithome.com.tw/news/118487
[3] Mac作業系統重大資安漏洞 蘋果忙補破網
http://www.cna.com.tw/news/firstnews/201711295007-1.aspx
沒有留言:
張貼留言