40年前的全球首個致命軟件Bug:至少三人因100倍強輻射身亡

【40年前的全球首個致命軟件Bug:至少三人因100倍強輻射身亡】40年前的全球首個致命軟件Bug:至少三人因100倍強輻射身亡

快科技9月22日的 , 軟件Bug雖然會造成許多不便 , 但好在幾乎不會致命 , 但在40年前的1985年 , 一款名為Therac-25的放射治療機 , 就出現了通常被認為是世界上第一個致命的軟件Bug 。
這款機器因軟件中的一個Bug引發了致命的競態條件 , 導致至少六人遭受了輻射劑量高達正常值100倍的照射 , 其中三人因此喪生 。
Therac-25剛推出時 , 因其將兩種治療模式集于一身而備受醫療機構青睞 , 它既能用于電子束療法治療淺層組織問題 , 如皮膚癌;也能用高電流電子束進行兆伏X射線療法 , 針對深層組織問題 , 然而這兩種模式一旦混淆 , 后果不堪設想 。
該機器的一個創新之處在于采用純軟件控制 , 而早期機器則有電磁機械硬件聯鎖裝置來防止此類輻射事故 , 例如Therac-20雖與Therac-25有共同的Bug , 但其硬件會在軟件故障時阻止不安全操作 。
據加州公立大學計算機科學碩士生安妮·瑪麗·波雷洛發表的論文 , 這一致命漏洞在六起已知事故中均有體現 。
通常情況下操作員誤選了錯誤的模式后迅速試圖糾正 , 經驗豐富的操作員修改治療參數速度過快 , 從而導致Bug的出現 。
關鍵在于 , Therac-25改變輻射束模式需要約8秒 , 而操作員在這一時間窗口內的快速輸入會混淆軟件 。
首起事故發生在1985年6月 , 最后一起在1987年1月 , 制造商AECL最初拒絕承認系統存在過錯 , 直到1986年春才開始徹底調查 , 此時美國FDA也已介入 。
Therac-25的悲劇引發了對所有醫療軟件進行形式驗證、嚴格測試和改善文檔的呼聲 , 如今它已成為計算機科學領域常被提及的警示案例 。

    推薦閱讀