62歲程序員植入邏輯炸彈, 面臨10年監(jiān)禁和25萬美元罰款
一個62歲的程序員由于植入邏輯炸彈被抓了,可能會面臨10年的監(jiān)禁和25萬美元的罰款。
這個程序員叫Tinley,是美國西門子在賓夕法尼亞州門羅維爾市的一個合同工,2002年他用Excel和VBA開發(fā)了一個軟件,管理公司的電氣設(shè)備訂單。 這個軟件工作得很好,直到2014年,Tinley在其中植入了一個邏輯炸彈。
于是,每年這個Excel軟件都會出點小故障:彈出一些錯誤消息,按鈕的大小也會發(fā)生改變。這時候西門子只好把他給叫過來,付給他錢來Fix這些Bug。
Tinley是怎么改這個Bug的呢?非常簡單!把那個“炸彈”的觸發(fā)日期給重置一下,然后就可以等待明年繼續(xù)收錢了。
事情如Tinley所愿,運轉(zhuǎn)得非常良好,直到2016年5月,他出去度假了,但是西門子要下一個緊急的訂單,非常著急,可是這個Excel軟件又出問題了。
在西門子公司的強烈要求下,Tinley被迫交出了這個Excel軟件的管理員密碼,好讓其他西門子的程序員去Fix Bug ,很快這個邏輯炸彈被發(fā)現(xiàn)了。為了確認就是VBA腳本中的邏輯炸彈引發(fā)了過去幾年的問題,西門子還請律師和程序員一起工作,一共花費42000美元。
故事講完了,不知道大家有什么感想?
首先,肯定是不能在軟件中留這樣的邏輯炸彈了,但是從一個程序員的角度來講,有這么幾點可以思考的:
1. 西門子在門羅維爾市的子公司IT管理能力堪憂啊!
同樣的錯誤,一再出現(xiàn),居然沒有引起他們的重視!每次Tinley過來Fix Bug 的時候,難道都沒有人問問root cause嗎?為什么一到特定時間軟件就會顯示錯誤信息,界面按鈕的大小發(fā)生變化?(Tinley在辯護中聲稱這是Excel升級導致的,實際上微軟的Office向后兼容性是相當好的)
2. 肯定沒有代碼審查
根據(jù)特定日期觸發(fā)炸彈,這樣的邏輯在VBA腳本中應該是非常清楚的,而VBA腳本是解釋執(zhí)行的,代碼就在那里,只要有代碼審查,肯定會被發(fā)現(xiàn)。
3. 遺留系統(tǒng)的問題
有人對用Excel和VBA來實現(xiàn)一個核心的訂單系統(tǒng)感到震驚,其實這可以理解。我在網(wǎng)上搜了一下,門羅維爾市是個小鎮(zhèn),人口才3萬,這里可能是西門子的一個辦事處。也許他們之前都是手工用Excel來記錄這些訂單,后來才雇傭Tinley把工作自動化了。
2002年開發(fā),已經(jīng)用了10多年了,這說明還是能滿足他們的需求的,可能就是這個原因,他們一直沒有找另外一個人來接手這個軟件。
但是比較悲催的是,這個系統(tǒng)的邏輯只有Tinley知道,只有他一個人能維護,或者這么說,別的程序員也不愿意維護這樣古老的系統(tǒng),讓我去我也不愿意啊,要是讓我把它重寫成Web系統(tǒng)還差不多。
這就是典型的遺留系統(tǒng),出了問題就去找Tinley, 沒想到Tinley在里邊埋了一個炸彈。
4. 版權(quán)問題
在2011年的時候,西門子就問Tinley要那個Excel的密碼,但是Tinley不給,他聲稱他要保護他的軟件。這個訂單系統(tǒng)真的是屬于Tinley的嗎?
我沒見到Tinley和西門子的合同,大家可以看看自己和公司簽的合同,看看有沒有這么一條:在合同有效期內(nèi),員工的工作成果都歸公司所有,包括專利,軟件,文檔。
Tinley很有可能沒有所有權(quán)的。
總之,Tinley的所作所為已經(jīng)嚴重違反了法律,希望大家能引以為戒吧。
【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號coderising獲取授權(quán)】