GSS 資安電子報0025期【開放源碼的安全研究(下)】

 

 

2.

失敗於採用安全開發流程

 

所有專案分析下來,有很大量的安全議題超過三個版本都未被解決,有時候還超出一年都未改善。此外,安全弱點大量的增加或者持續的更新的新版本後,都還未被解決,例如表3。

 

表3:跨版本間的修復趨勢

 

這持續出現的大量安全問題,不僅是顯示了立即的安全風險,也展示了專案並未採用一個成功的安全開發流程。假使一個安全的開發流程存在時,我們期待看到隨著時間的推移安全問題的數量明顯減少。

 

 

3.

失敗於利用技術來發現安全弱點

 

令人驚奇的是,在研究中識別出來的安全漏洞數量─尤其是最熱門的開放源碼的軟體,多的嚇人。特別在兩個最盛行的漏洞問題:跨站腳本攻擊(Cross-Site Scripting)與資料隱碼攻擊(SQL Injection) 代表對開放源碼開發者一個重大挑戰。表4匯總了在這些類別中發現的問題數目。

 

表4:跨站腳本攻擊(Cross-Site Scripting)與資料隱碼攻擊(SQL Injection)的問題

Fortify透過Java Open Review(JOR)專案,已經與超過一百位的開放源碼的開發團隊確認了一些常見的安全漏洞問題的類別,包括跨站腳本攻擊(Cross-Site Scripting)與資料隱碼攻擊(SQL Injection)。然而許多開放源碼的開發團隊並未善加利用JOR專案,造成喪失了一個可以快速識別與修復安全問題的大好機會。除了JOR,一些不同的開放源碼產品,例如:FindBugs,可以被利用來作為安全開發生命週期的一部份。

以我們找出的問題現狀來看,其實令人失望。表5匯總了依目前的版本下被Fortify SCA發現的高風險的安全問題。

表5:匯總被檢測的軟體問題統計數據

 

 

結論

這些發現可以提供一些倚賴開放源碼軟體的組織,喚醒他們的注意力。Fortify特別建議:

  • 政府和商業機構,利用開放源碼應用程式時必須十分謹慎。關鍵業務的開源專案應該要進行風險分析和源碼審查(Code Review),並且這些程序應在新版的開源元件被審核通過前都要持續進行。組織必須完全評估開放源碼的安全實作,我們建議各位使用以下的標準來針對開放源碼社群作一份清單。此外,企業應該:
    -在開放源碼社群提高安全意識,並且強調其預防漏洞的重要性。企業的安全小組應向開放源碼的維護者闡明安全需求以加快採用安全開發生命週期。
    -以執行評估了解在您的開放源碼部署狀況,以及從安全角度來看元件的開發。
    -自行修復漏洞,或者利用Fortify的JOR提供不同的開源碼軟體的稽核版本。
  • 開放源碼的專案應該從他們的商業對手中學習採取強而有力的安全做法。開放源碼的開發可以從一般私有企業做法中而受益──特別是那些金融服務機構和大型獨立軟體廠商(IS)。開放源碼社群就可以證明與宣傳,結合流程與技術的有效的安全做法。最佳實踐應包含:

    人員-任命並授權一名安全專家,並給與否決上線權,此方式被稱為階段關卡模式。發展專業技能來引導安全活動並且讓安全的事能夠做對。
    流程-將安全主動融入整個軟體開發生命週期內。包括程式設計以外部分,例如:威脅模型與誤用案例的發展。
    技術-充分利用技術讓安全的事能做對,其中包括靜態分析,和在進行品質保證中,動態分析發展過程的安全測試。

具體來說,開放源碼的專案可以充分利用商業軟體社群中已經具備的先進技術。隨著發展融入安全開發生命週期,開放源碼的專案可能要引用Gary McGraw博士的書-Software Security: Building Security In。書中涵蓋了從威脅模型、源碼審查和安全測試的誤用案件(abuse case)。微軟將他們建立的威脅建模方法及配套產品放上網站。而Fortify也發展了一個依據數百家企業的運作經驗為基礎的安全開發方法的「商業軟體保證(Business Software Assurance)」。進一步,開發人員也善用OWASP的源碼審核指引來協助自身內部的安全檢核。Fortify已透過Fortify Open Review專案將靜態分析軟體提供給開放源碼專案以貢獻在開放源碼安全的努力。

通過這些安全行動的實踐,開放源碼社群可以證明與宣傳有效的安全開發流程,這將可以鼓勵使用者更有信心的採用。如本報告所述,Mozilla開放源碼採用的安全行動可作為最好的範例。

關於作者Larry Suto

Larry Suto曾在Fortune 500大公司擔任許多顧問的工作,例如:Charles Schwab、Cisco、Kaiser Permanante、Pepsico 與Wells Fargo。他專擅於企業安全架構、風險管理與軟體原始碼安全。Larry的聯絡方式:larry.suto@gmail.com

關於Fortify公司

Fortify的商業軟體保證(Business Software Assurance)方案可以保護企業與組織在今日所面臨的最大的安全風險:執行商業活動的應用程式軟體。Fortify減少災難性財務損失的威脅和減少聲譽遭受損害,以及確保即時遵守政府和產業的法規遵循。Fortify的客戶遍及政府組織與全球2000大的各行各業:財務服務、醫療、電子商務、通訊、出版、保險、系統整合與資訊科技業。欲進一步瞭解資訊,請上www.fortify.com網站。