搜尋此網誌

2009年2月25日 星期三

用民主表決的方式增進軟體開發的安全性

這幾年來,應用系統的安全受到很大的威脅。駭客攻擊的目標,已經從網路、作業系統、網路服務,一路"提升"到應用程式本身。不論是商業的產品、Open Source的軟體,甚至是自行開發的程式,都無法倖免。尤其是Web應用程式,更是駭客眼中的天堂。為了因應這些問題,就有所謂的SSDLC/SDL。SSDLC/SDL除了希望讓開發出來的系統本身能夠具備足夠的安全性外(如不會遭受SQL Injection攻擊),更希望可以確保系統在運作時符合相關的安全性需求(如確保資料不會被不相關的人所讀取)。

軟體工程的東西,本身就很複雜。再加上安全來參一腳,複雜程度可見一般,看Microsoft SDL的示意圖就知道了:
MSDN-SDL

這麼複雜的東西,老實說我也無法全面了解並解釋清楚,好在這個並不是我今天要講的主題。我今天要講的一個很簡單的方法,簡單到完全不需要任何資訊系統就可以進行。

在美國北羅卡萊納州立大學 (North Carolina State University)的一位安全專家 Laurie Williams 做了一項研究,利用類似跳水比賽的評審方式,讓開發系統的人員進行投票,以期增加系統的安全性。這套被 Laurie Williams 稱之為 Protection Poker 的機制,跟一般評審不同之處就是每個評審(系統開發人員)針對每個功能需要回答兩個問題,一個是該功能所使用資料的重要性,另外一個就是該功能是否容易受到攻擊。每個問題使用卡片的方式加以評分,而評分最高與最低的兩個人,還必須進一步解釋評分的理由。也因為這樣,這個方法不但可以找出系統的安全性需求,更可以達到分享與教育的目的。

這樣簡單又方便的方法確實不錯,不過有些問題可能必須加以克服或釐清,才能夠讓效果更符合預期。首先,是評審團的組成分子只限於程式設計師,將會導致過於專注在技術性的問題,而不是整體的考量。甚至,在不同的階段(規劃、分析、設計、實作)使用此方法,組成分子的比例也應該有所不同。另外,如何找到足夠質與量的評審,讓眾人合作的力量能夠發揮,對於一般小型的公司而言可能是最大的問題。最後要加以考量的,當然就是這樣的方式適合用在哪一類的專案,又用在哪一個階段比較適合。這部分可能就需要有更多的研究數據來加以佐證了。

這個研究計畫目前還在很初期的研究階段,僅進行過一個示範性的專案。 Laurie Williams 與其團隊正打算進一步進行更多、更全面的研究,就讓我們拭目以待其研究結果了。

相關連結:

沒有留言:

張貼留言

About