如果我們因為吃了漢堡而導致食物中毒的話,就可以起訴餐廳沒有盡到確保產品安全的責任——因此,如果軟件開發人員編碼疏忽導致黑客能夠輕松清空用戶銀行賬戶的話,我們卻為什么反而不能進行起訴了呢?
劍橋大學的安全研究員理查德·克萊頓博士提出了這一個問題——他發出呼吁,希望軟件開發商能夠承擔起由于沒有發現自家產品中存在的可避免安全漏洞而給用戶帶來損害的賠償責任來。
在當今的軟件最終用戶許可協議之中,開發商通常會要求用戶簽字放棄由于應用程序中包含的安全漏洞導致計算機被惡意軟件攻擊后針對軟件開發者提起訴訟的權利。
克萊頓聲稱這項規定導致開發者不需要為自家軟件中存在的任何安全漏洞承擔一點責任。目前,這項觀點已經獲得了歐洲地區官員的支持,英國上議院的一個委員會作出了在2007年實施這項措施的建議,歐盟委員會的專員們則在2009年針對這項要求進行了討論——不過,相關決議并沒有獲得通過。
克萊頓認為:“確保人們在購買所有產品的時間,都能夠被當作消費者對待是非常重要的;但是,軟件卻不在這其中,還屬于一種需要購買者自行判斷風險程度的東西。”
“這些年來,我們一直在呼吁【軟件開發商】應當為給其它人造成的損害承擔責任。畢竟,即便我們選擇去街道拐角賣漢堡,購買者依然能夠【基于受到的損害情況】來提起起訴”。
按照克萊頓的觀點,只要讓開發商承擔起相應的責任來,就可以避免軟件中可避免安全漏洞被惡意軟件使用來感染用戶,導致遭遇某種形式的重大損失——資金被盜竊之類的情況出現了。
克萊頓聲稱,只要在相關專家的幫助下,依靠針對先前案件中可以避免的缺陷所做出的定義,法院就能夠對感染源的實際情況進行確認。
他解釋到:“問題的關鍵應該是‘他們是不是由于疏忽沒有而盡到自己的責任?’”。但常規測試的目標卻是確認‘他們的工作質量是否達到了現有標準的要求?’。他還進一步指出,只要利用普通安全工具以及驗證套件就可以找出代碼中的已知缺陷來。
他堅持認為,開發者需要承擔相應責任就意味著消費者能夠獲得的保障程度上升,還可以激勵為他們在減少自有軟件安全漏洞方面作出更積極的努力。
克萊頓認為,為了實現所有軟件開發者都必須承擔相應責任的目標,這項決議就需要擁有國際級別的約束力。
“這并不是一件簡單的事情。原因就在于不僅要面對【業內】所有成員的無數抱怨,而且不能在國家級別單獨進行處理,因此為了實現這一點可能就需要在全球范圍內堅持很多年的時間”。
現實中,已經出現過幾起最終用戶針對IT廠商提供的軟件在安全方面存在的漏洞提起訴訟的案例。按照歐華律師事務所合伙人詹姆斯·斯圖爾特的說明,其中有幾起訴訟甚至還獲得了成功,讓后續訴訟行動可以作為一個判例使用從而增加勝訴的幾率。不過,即便這些訴訟獲得了一定的成功,但由于開發商可以對軟件最終用戶許可協議中的限制條件進行調整,從而就能夠輕松做到不必為產品中存在的安全漏洞承擔更多的責任。
詹姆斯聲稱,對于任何由軟件制造商單方面給出的針對編碼缺陷造成損害需要承擔責任的規定獲得成功的可能性都非常值得懷疑。原因就在于,開發商總是能夠憑借各種各樣五花八門的限制措施,來達到將所有責任都推卸給最終用戶的結果:舉例來說,聲稱最終用戶未能遵循安全方面的規定就屬于一個非常不錯的借口。
他指出:“軟件開發商可以利用很多種借口來回避掉這方面的問題。舉例來說,‘用戶是否已經升級到可以消除這些漏洞的最新版本上?’就將是很常見的借口。”
并且,克萊頓與其它支持開發商承擔責任的人士正面臨著極為強大的反對之聲。有鑒于潛在責任之嚴重程度——惡意軟件造成各項損失的規模估計至少在每年數十億美元左右的等級——軟件產業正積極進行游說反對實施任何此種類型的措施。
正如軟件業的游說者所聲稱,考慮到底層應用程序代碼的極端復雜性,開發商或許真的已經是竭盡全力來保證軟件的安全了。當2007年英國上議院就該問題進行討論的時間,來自反對方的軟件供應商就做出過這樣的比喻:家里被盜之后,受害者通常是不會選擇起訴門窗制造商要求進行賠償的。
開發商提到的另外一個問題就是,這將會導致軟件制造商選擇禁止自有應用程序使用來自第三方的外部代碼,以防止無法預料到的潛在問題出現,而最終的后果則可能會是創新與應用程序之間的互操作性遭到全面扼殺。
還有一個問題就是,無明確個人或團體負責開發工作的開源軟件中存在的缺陷應該由誰來承擔責任,如何才能進行確認。在英國上議院就該問題進行討論的時間,有人認為應當豁免掉那些自愿為此類項目提供支持人員的賠償責任。