開源軟體發展與軟體安全問題(1)
來源:互聯網
上載者:User
關鍵字
安全
攻擊
開源
Linux
關於微軟Windows與基於Linux的作業系統哪個更安全的討論席捲了互聯網。 討論涉及許多人的既得利益和偏袒的利益。 由於瞭解不夠以及邏輯錯誤引發的誤解導致了討論的混亂,使得討論趨於白熱化。 出於廣告宣傳策略的需求希望能使贊助方獲得更多的關注,派性論文使用整理過的統計資料泡制過於明顯的權威及客觀,實際上等於用偏見和可疑的事實來支援討論。 這場缺乏確切結論的大討論看似永無休止的部分原因就在於對安全的評估過多的集中于一個附帶現象上:他們只研究安全性能的表面現象,而沒有深入的分析安全特性的原因。 部分原因也在於,對於大部分擁有產權的軟體廠商來說,開源軟體的開發是神秘的全新的。 因此,這些非開源軟體廠家無法瞭解開源世界對於安全問題在背後所做的努力。 還有一部分原因是許多捲入討論的人們是只對軟體安全有很膚淺的瞭解的最終使用者。 即使IT專家有時也不能瞭解軟體安全在軟體結構和開發過程中所做的努力,因為IT專家就算對 網路和系統安全配置擁有很深的瞭解,其技術中也往往比包括對開源軟體發展和軟體結構的實際瞭解。 如果想要填補公眾知識庫中關於軟體安全帶來的影響的空白,可能要寫上厚厚的幾大本材料。 但是從這廣泛的題目中選擇有限的幾個題目進行粗略的介紹還是可能的,這就是本文 的目的所在。 最後,Linux與Windows的安全大討論成為了一場實例的競賽。 這些包含了更多更基礎的關於安全所帶來的種種利益與損害的例子分別服務于開源與閉源開發模式。 這不僅僅是一個 技術問題,同時還是一個社會事件,如果更仔細的研究這場討論,則更象一個經濟學家和遊戲理論家的事件。 到現在為止,在大部分討論中兩種開發方式中最容易遭到誤解的是開 源研發方式。 現在我們來看開源軟體的開發如何考慮軟體安全問題。 不公開即安全有些直指開源軟體安全的爭論完全基於錯誤的推論。 許多流傳廣泛是聽起來也頗有道理反對開源軟體的的莫過於被我們稱為「不公開即安全」的謬論。 一個最常見的說法是:「當 它和微軟程式一樣流行時,你才會看到它有多安全」,另外一個則是「任何老練的安全駭客都能看到原始程式碼,因此就不夠安全」。 「不公開即安全」的謬論限制了對於基於Linux的作業系統和Mozilla Firefox 瀏覽器的相對安全性的討論。 實際情況是「不安全即公開」並不能真正保提供功能性的安全。 它只能 提供表面上看起來的安全,實際上,開源開發社區所仰仗的安全原則正好與次相反。 這種原則也可稱為「公開即安全」,它包括兩個軟體安全的基本原則:透明的安全以及普及帶 來的安全。 透明的安全開源軟體發展的安全性經常因為任何人都能得到原始程式碼而遭到質疑。 這個理論認為打算進行安全進攻的人通過對原始程式碼的研究能夠找到代碼中能夠構成攻擊弱點的缺陷,從而使得 針對這些弱點的進攻更容易完成。 這個理論有一定的根據,但是並不是人們所想像的那種方式。 事實上用眼睛分析原始程式碼查找缺陷、進行分類並進一步創建缺陷是一項艱苦卓絕的工作。 如果真的如同他們所說的那樣由於原始程式碼的公開性,開源軟體更容易遭受攻擊,那麼微軟 公司以外的人就不可能發現任何IE的缺陷。 事實上,對於任何不平凡的應用來說,即使這樣艱苦的工作也要比通過反工程技術查找缺陷來得容易。 這些技術需要試探某個運行中的 應用,輸入畸形的資訊或者故意錯誤的使用,然後檢查應用的可擴充性以及輸出,來確定程式的運行是如何以及在何時背離了應用運行的初衷。 可能終有一天我們能夠將原始程式碼輸入另外一個程式來判斷哪個部分有缺陷,而不必再使用反工程技術來查找缺陷,不過即使那一天到來,使用二進位可執行設備代碼檔可以同樣 輕鬆的完成任務,根本用不著原始程式碼本身。 畢竟,進行那種分析所需的並不是類似程式設計員給變數或方法命名所需的資訊,而是分析的目標軟體所採用的演算法的構造方法。 畢竟,設 備代碼本身與輸入編譯器的原始程式碼在功能上是統一的。 唯一的不同是它對特定的程式設計人員的可靠性有所不同。 從統計學上來看,這一事實不能支撐開源軟體天生具有更多缺陷的說法。 例如,代碼分析企業Coverity的一份報告顯示,他們只在Linux的內核的570萬行語句中發現了985個bug。 可以比較的是,卡耐基梅隆大學的CyLab實驗室所進行的的一個研究顯示,具代表性的商業性閉來源程式每一千行語句平均帶有20-30個bug。 按照這個比率計算,570萬行語句中可能 帶有的bug數量就會超過11.4萬,是Linux內核bug數量的114倍。 軟體透明度在開源軟體發展過程中的重要作用經常被稱為同行評審。 之所有有這個過程,是因為原始程式碼的公開狀態,以及程式設計人員不可能與單一的控制實體,如CEO的目標完全保持 一致的事實所促成的,開發原始程式碼的人員需要互相管理彼此的行動。 因此很少出現,卻非常激烈的關於不壞好意的程式師可能在程式中預留「後門」的論調在同行評審的過程下不 攻自破。 嚴格而謹慎的遵守品質標準的代碼才會得到開源軟體專案代碼庫的接納。 事實上,如果程式在公開審查中被發現帶有木馬病毒,就會被指出。 而原始程式碼不公開的具有產權 的軟體也可以,有時的確具有特意加入的rootkit功能,只有發生意外時才有可能被發現,例如2005年下半年著名的Sonyrootkit事件。 1 2 下一頁>> 內容導航第 1 頁:透明的安全 第 2 頁:普及帶來的安全 給力(0票)動心(0票)廢話(0票)專業(0票)標題党(0票)路過(0票) 原文:開源軟體發展與軟體安全問題(1) 返回網路安全首頁