GSS 資安電子報0006期【如何做好開放源碼的軟體安全 】

企業到處在使用開放源碼軟體(Open Source Software)

2007 年IDG (Industrial Distribution Group ) 針對IT專業人員的調查報告顯示,有接近三分之二的企業正在使用開放源碼軟體或者計畫在明年內使用它。這樣的政策帶來給企業許多的好處︰可以降低開發成本,減輕使用過多的公司開發資源,使用先進的開發技術,不需要開發的時程表,使用公開的標準,和迅速的部署。

2006年OpenLogic 報告顯示,美國的企業平均同時使用75 個不同的開放源碼軟體套件;2007 年平均值已經增加至94 個,企業也希望公司能多多使用開放源碼軟體。  

然而開放源碼軟體裡存在安全漏洞的問題,這意味著公司正把他們的門戶開放給病毒及駭客入侵來利用,以及其他的相關問題,相反地極有可能影響到他們的商業交易、使用者及客戶。 

軟體安全專家John Viega在<<有關開放源碼安全的神話>>書中表示,『開放源碼軟體將程式原始碼開放供大眾檢驗、以及同時有眾多使用者在尋找及修復開放源碼的軟體安全漏洞,這些都會讓大眾誤以為開放源碼程式是安全的。』

實際上,在同年也就是2006 年,當這些開放源碼與CERT 研究機構的軟體安全漏洞資料庫做比對的時候,發現開放源碼軟體有超過8500個程式碼安全漏洞存在。

有鑑於使用開放源碼軟體的優點,很多公司接受這樣的程式碼安全漏洞的風險,即使他們不完全知道那些風險有可能的影響有多麼廣大。事實上大多數開放源碼軟體的開發者,在他們軟體開發過程中,撰寫安全的軟體並不是最優先要處理的主題。他們經常忽視軟體安全的三種必要的要素︰人員、流程及技術:

  1. 不運用軟體安全專家
    程式碼撰寫安全的問題,經常是被開發者或同仁審核者擺著不處理的。經常是在出版軟體之後,再來處理程式碼撰寫安全的問題。
  2. 不適當的軟體安全開發流程
    很多開發者在他們的整體軟體品質目標中是不包含軟體安全這個部分的。開發的軟體要安全的觀念,在很多的開放源碼的開發者心中是普遍不存在的。
  3. 沒有足夠的技術發現軟體安全漏洞
    開放源碼的開發者,很少可以像機構內部或者商業軟體的開發者一樣,能夠在軟體開發過程中使用到最新的軟體安全檢核工具。

有關這個議題,要有什麼樣的對策呢?
因為這些開放源碼的軟體不夠安全,就要全部避免使用開放源碼軟體嗎?
答案是:不。

使用開放源碼軟體的優點已經逐漸有下降的趨勢,盲目地打開企業大門來使用開放源碼軟體而先不全面地審核該開放源碼軟體是否安全,這樣的作為正逐漸為企業帶來麻煩。
在面對這些開放源碼軟體安全風險的挑戰,要採取的最佳對策是什麼呢?

Fortify 建議採用的10個最佳實務經驗

  • 建立一個所有使用開放源碼軟體的資料庫
    要求使用軟體的紀錄清單,記錄內容要包括開放源碼的所在位置、各種版本及相關說明文件。
  • 指定負責維護使用開放源碼軟體資料庫的人員
    維護準確和完整的開放源碼軟體組成清單及相關使用說明文件及使用規範。
  • 對開放源碼的管理要與企業內部開發的軟體,採用一致的標準作為
    在使用開放源碼軟體套件之前,應該包括一個使用或不使用這個開放源碼軟體套件的內部評估報告。對這個開放源碼軟體在上線使用前,必須要進行軟體安全漏洞的全面檢測。
  • 開放源碼的安全漏洞檢測
    與軟體開發者協同合作檢測看看是否漏洞的特徵是否存在開放源碼中,並且協助管控鑑識及修復這些發現的安全漏洞。
  • 不允許有尚未修復安全漏洞的程式碼,進入上線的階段
  • 教育訓練開發人員
    讓軟體開發人員負責發現一些常見又很容易就鑑定出來的程式碼撰寫安全漏洞問題。
  • 指派一位軟體安全專家
    當他判斷軟體不安全時,他有否決產品進入上線階段的權力。
  • 建立軟體安全開發制度
    建立整個軟體安全開發的生命週期,這包括相關的非程式碼撰寫的活動,
    例如威脅分析模型和開發的錯誤案例經驗分享。
  • 參加Fortify 開放源碼安全檢測專案
    Fortify 檢測開放源碼的程式碼安全漏洞專案,目前僅支援Java 程式語言,未來會提供其他開發語言的檢測。
    說明請參閱網址http://opensource.fortify.com
  • 正確的軟體安全檢測技術
    在軟體品質確保的過程中,有關軟體安全的檢測應該包括軟體開發生命週期中的靜態程式碼分析和軟體動態執行的分析。

Fortify 是您在確保開放源碼軟體安全的最佳夥伴

Fortify 與超過100多個開放源碼的開發團隊合作去鑑定開放源碼軟體的安全弱點。
這些努力的結果可以提供給開放源碼的審核專案團隊及任何人。參與者都能從Fortify SCA (程式碼安全檢測工具)能得到全部的分析結果及找到錯誤,很容易就可以檢閱問題與加註意見並且對找到問題加以修復。因為是開放源碼,檢測結果對外公開,潛在的使用者可以評估度量他們將採用來自不同開放源碼軟體的安全風險水準,然後做出抉擇。