編程語言安全漏洞:C++、PHP、Java、Python、.Net 和 JavaScript
在當下的市場環境中,除了掌握困擾軟件的最常見安全問題外,開發人員還應該了解到底是什么問題在影響他們正在使用的編程語言。靜態代碼分析安全公司 Veracode 最近發布了一份年度軟件安全狀態(SOSS)報告,其中的第 11 卷則揭示了用 .NET、C++、Java、JavaScript、PHP 或 Python 編寫的應用程序中所存在的主要安全漏洞類型(基于掃描的 13 萬個應用程序)。
Veracode 的高級內容營銷經理 Meghan McBee 稱,“在你坐下來編寫代碼之前,了解這些應用程序的安全趨勢意味著你準備好快速修復它們,或者甚至是完全阻止它們。如果你選擇的是 C++、PHP、.Net 或 Java 語言,請注意,它們很容易出現一些風險最高的漏洞。實際上,高達 59% 的 C++ 應用具有嚴重程度非常高的缺陷,PHP 則緊隨其后。”
Veracode 發現,用 JavaScript 編寫的應用中,有 31.5% 的應用至少存在一個跨站腳本(XSS)缺陷;用 PHP 編寫的應用中,有 74.6% 的應用至少存在一個 XSS 缺陷。此外,還有 71% 的 PHP 應用存在加密問題。
用 .NET 編寫的應用程序中存在的主要問題是信息泄露,占比 62.8%;其他還包括有代碼質量(53.6%)、輸入驗證不足(48.8%)等。C++ 的問題有:錯誤處理(66.5%)、緩沖區管理錯誤(46.8%)、數值錯誤(45.8%)、目錄遍歷等。
Java 的問題包括:CRLF 注入(64.4%)、代碼質量(54.3%)以及信息泄露(51.9%)等。而對于 Python apps,其中發現的主要問題則與加密有關,占比 35%。
值得注意的是,在每種語言的應用程序中發現的缺陷的嚴重性也有很大的區別。Veracode 發現,有 59% 用 C++ 編寫的應用程序和 52% 用 PHP 編寫的應用程序存在高嚴重性缺陷。用 JavaScript 編寫的應用程序中,只有 9.6% 存在高嚴重性缺陷。Java 的高嚴重性缺陷數據則為 24%。
針對這些數據,Veracode 首席研究官 Chris Eng 分別作出了解讀。他指出,例如,C++ 中常見的緩沖區溢出問題出現了下降的趨勢,這并不是因為開發者的進步,而是在于 C++ 的流行度的下降。另一方面,受語言流行度上升的影響,影響 JavaScript 和 Python 的問題則正在一點點爬升。
Java 和 .NET 在企業中仍然很受歡迎,PHP 也仍然是 Web 應用開發中最受歡迎的腳本語言之一。Eng 認為,PHP 代碼中的漏洞較多的原因主要在于,該語言提供了很多不安全的 primitives 和錯誤地處理方法 。
而相較之下,盡管 JavaScript 應用中發現的缺陷較少,但 JavaScript 和 node.js 開源庫的龐大 npm 生態系統仍是其一個潛在的弱點。Eng 建議工程和產品團隊保持更新,以降低打補丁的麻煩程度和關鍵應用的成本。
此外,應用程序安全公司 Snyk 此前則發表觀點稱,影響 JavaScript、Ruby、Java、PHP 和 Python 的大多數安全漏洞是由于項目內部加載的主要組件之間的間接依賴性引起的。
報告詳情可查看:https://www.veracode.com/sites/default/files/pdf/resources/ipapers/security-flaw-heatmap/index.html
本文轉自OSCHINA
本文標題:Rust 語言 2020 調查報告發布:“Rust 太難,生命周期更難”
本文地址:https://www.oschina.net/news/123780/rust-survey-2020