Veracode 將它們在近來一年半內所掃描過的程式結果進行分析,於本月初 (2010 年 3 月) 發表了一份報告,標題是 “State of Software Security Report: Volume I”。報告中有下列幾項重要的發現:
- 大多數的軟體是不安全的。
以 Veracode 自行建立的測試方法而言,有 58% 的軟體是不安全的。如果採用 OWASP Top 10 (2007) 或是 CWE/SANS Top 25 Most Dangerous Programming Errors (2009) 的方式加以檢測,內部開發的系統有高達 88% 的比例無法通過測試。如何建立一個有效的安全軟體開發流程是刻不容緩的任務。 - 企業軟體架構中採用為數眾多的第三方軟體,而應用程式則使用了許多的第三方元件。
不管是哪種形式的架構或軟體,第三方軟體/元件都佔有相當的比例。因此在評估上必須注意到這些第三方軟體/元件本身的安全性,以及如何與之進行安全的整合。 - 開放源碼在安全性方面並沒有與其他類型的軟體有太大的差距,但是在修正時間與 (疑似) 後門程式數量上的表現優於商業軟體或是委外開發的軟體。
開放源碼在修正問題上擁有最快速的反應,而商業軟體則需花費最長的時間來修正問題,這個現象應該與商業軟體公司的生態環境較為複雜有關。因為開發源碼的程式碼為可公開取得的資料,所以在疑似後門程式的數量上同樣擁有最好的表現。不過不管是那一種類型的軟體,最好在導入前都能夠進行相關的評估,尤其是針對一些重要的系統,評估動作更是不可省略。 - 使用 C/C++ 程式語言所開發的軟體依舊佔有相當的比例,而這些軟體所含有的漏洞很容易被攻擊者利用以取得系統的控制權。
C/C++ 是商業軟體中最常見的開發用程式語言,且在樣本中有高達 42% 的 C/C++ 應用程式含有可以引發遠端程式執行 (remote code execution) 的漏洞。對於內部開發的系統而言,C/C++ 程式語言所佔的比例則低了許多。 - 很多顯而易見且容易修正的錯誤充斥於各個軟體之間,由此可見開發人員欠缺有關如何進行安全程式設計的教育訓練。
包含 Cross-site Scripting (XSS)、SQL Injection 這類存在已久的安全議題,依舊是軟體中最常見的安全性錯誤。目前已經有一些工具可供使用,以減少程式受到這些類型問題的影響。由分析結果可見開發人員對於此類問題與防範方法的認知誠屬不足,應該予以加強。 - 金融與政府部門的軟體相較於其他產業的軟體而言較為安全。
這兩個產業的軟體雖然同樣還有很多必須加以改進的地方,但是也有不少可供其他產業參考的做法。 - 在受評估的軟體類型中,委外開發軟體所佔的比例最低,顯見合約通常欠缺有關安全需求的接受標準。
雖然委外開發軟體的比例越來越高,但是在送檢軟體中所佔的比例卻相當低 (2%)。除了委外開發的軟體外,很多自行開發的系統/軟體也包含了這些委外開發的程式碼,因此其影響層面是全面的。針對這類軟體,將安全性需求與驗收標準明載於合約之中是一項很重要的工作。
相關連結:
沒有留言:
張貼留言