前一陣子我談到有關Scan發表了一篇對於 OSS (開放源碼軟體)的安全性檢測報告,基本上整個方向大致上是正面的。不過這兩天另外一家應用系統與程式安全的公司 -Fortify- 發表了另一篇的報告,其內容對於OSS的安全性則有完全不一樣的見解。
這篇報告提出了三個觀察到的現象:
1. 沒有提供與資訊安全專家聯絡的方法及相關訊息 (Failure to Provide Access to Security Expertise)
2. 沒有採用考量安全性的開發流程 (Failure to Adopt a Secure Development Process)
3. 沒有善用技術找出軟體內存在的安全弱點 (Failure to Leverage Technology to Uncover Security Vulnerabilities)
另外,該篇報告也提出了兩個建議:
1. 政府與企業在導入開放源碼軟體時應該非常小心謹慎 (Government and commercial organizations that leverage open source should use open source applications with great caution)
2. 開發源碼軟體應該採用與商業軟體一樣有效的安全實務 (Open source projects should adopt robust security practices from their commercial counterparts)
雖然沒有明講,但是最後一點很明顯的指出了OSS的安全性是比不上非OSS的商業軟體。
關於OSS與非OSS之間哪一個比較安全,一直以來有各式各樣不同的論述,對此我也不打算在此討論。事實上,我認為這個問題永遠不會有解答,主要原因有下列幾點。第一個是全世界的軟體這麼多,要全部檢測是不可能的,所以採樣方法就是第一個爭論點。另外一個就是每個方法或工具檢測的項目不一樣,所以評斷的標準是第二個爭論點。另外,非OSS的商業軟體,因為沒有程式碼可以取得,所以根本就不可能做完整的程式碼檢測。最後,除了程式碼以外,有哪些也算是軟體安全的一部份?這部分同樣也是沒有標準。這麼多的不確定性,再加上兩陣營有各自的擁護者,要提出一個可讓眾人信服的結論,可說是比登天還難。
儘管如此,我們還是可以試著從中找出兩篇報告的不同之處。
1. Scan的計畫是以幫助OSS增進程式碼安全性為出發點,跟Fortify只是做檢測有很大的不同,所以參與Scan計畫的軟體大多在程式碼的安全上有很大的改善。而Fortify因為並沒有提供協助,甚至並未告知被檢測的軟體之開發團隊,自然不保證軟體在安全上的提升。
2. Scan計畫有270個(根據網站最新公布)OSS參與,而Fortify只找了11個軟體做檢測,而且都是以Java為程式語言所開發的軟體。對此,Fortify的說服力很明顯的欠缺了。
3. Scan不試著去比較OSS與非OSS之間的差異,因為這原本就不屬於該計畫的部分。而Fortify同樣也沒有提到該計畫有檢測任何非OSS的商業軟體,但是最後卻出現了一些比較的結論,同樣缺乏足夠的說服力。
4. Fortify觀察到的三點現象,雖然跟程式碼本身的安全應該有所關係,但是並沒有相關的證據顯示之間的相關性與其強度為何。所以以較嚴謹的角度來看,同樣不夠客觀。當然,沒有採用考量安全性的開發流程是一個不好的事情,但是這件事跟最後程式碼安全性的關聯並沒有辦法被證明(至少在這篇報告中是沒有辦法的),所以不能因此推論出較不安全的結論。甚至更不能因為程式碼的安全性較差,就反推回去沒有使用考量安全性的開發流程。為什麼我說是反推回去,因為報告中並沒有看到他們與原軟體開發團隊有任何直接或間接的接觸。
事實上,這篇報告在iTWire也幾乎是一面倒的被質疑。雖然我本身也常使用OSS,但是我卻不認為OSS就一定比較安全,只不過這篇報告的說服力的確是很薄弱。不過,薄弱歸薄弱,"觀察"到的三個現象卻是我們開發或使用軟體應該注意並設法改善的地方,不管是OSS還是非OSS的商業軟體。
前一陣子有另外一篇文章同樣提到有關OSS的安全議題,不過他是談論如何避免導入OSS所可能遭遇的風險。既然OSS的使用已經是不可避免,我想這樣的忠告更具實用性,所以附上相關連結以供參考。
後記:根據各項最新的研究報告顯示,OSS相關的工作需求有明顯的成長。雖然並無法明確顯示出OSS與非OSS軟體的使用比例,但至少可以確定企業導入OSS的例子已經有大幅的增加。除了這些看得到的OSS,其實還有很多使用中的OSS是被忽視的。
原文出處:
沒有留言:
張貼留言