編程語言裡,哪個開發軟件最安全?

導讀:我們用最新的開源代碼漏洞分析報告看,比較哪一種編程語言最安全。

開源軟件的漏洞一直存在,目前還在不斷增長。軟件安全公司WhiteSource的知識和研究小組負責人Tsaela Pinto在最新的《開源軟件漏洞狀態》報告中指出,2019年有6100個漏洞,而2018年為4100個,同比上升了50%以上。

研究報告還說明了哪些語言的漏洞最多,最常見的漏洞是什麼,還告訴我們軟件開發社區該怎樣更好地構建應用程序。

2019年開源語言漏洞排行榜

在過去的一年,開源漏洞中最多的是跨站腳本(aka XSS或CWE-79),是流行編程語言中最常見的漏洞。

編程語言裡,哪個開發軟件最安全?

上面列出的語言,緩衝區錯誤位列第一,輸入驗證不當位列第二名。

通過上面的數據,會發現一個問題線索,這與軟件開發社區有關。也就是說,有些漏洞是因為開發人員沒有在代碼中加入限制用戶可執行的操作有關,從而破壞了Web應用程序的安全性。

在大多數情況,這些安全漏洞通常都是因為編碼草率導致的結果。因此,這些突出的漏洞證明,回到編碼的基本標準對安全至關重要。

各個語言的漏洞比率

這項報告還研究了開放源代碼安全漏洞的分佈,以及這些流行語言的變化情況。

編程語言裡,哪個開發軟件最安全?

C語言是報告漏洞最多的語言,佔30%以上,這主要是因為C是最古老的語言之一,包括我們現在用的一些受歡迎的開源項目,如最大漏洞是在2018的Linux系統代碼,還有如網絡掃描程序Wireshark以及ImageMagick圖形處理軟件。

不管你是C的愛好者還是討厭C的人,你都無法否認,沒有其它語言能和C語言開發的代碼競爭。

但是,讓人驚奇和著迷的是,PHP給我們帶來了很大的變化,從2009-2018的10年時間,從15%的漏洞比例上升到2019年的27%。

這給我們提出了兩個問題:

第一,PHP最易受攻擊的原因是什麼;

第二,人們使用PHP的比例到底有多少?

根據2019年Tiobe編程語言排行榜,PHP因其易用性,軟件開發能力有限的人也能輕鬆入門,如今正變得越來越流行。PHP似乎在安全性上交換了易用性。值得稱道的是,PHP開發社區在發現漏洞方面變得越來越好,因此這種交換方案相信很快就會被廢棄。

流行的應用程序如WordPress,Megento,Joomla,Drupal等都在使用PHP進行開發。

人們正在加強開源代碼之安全

第三個問題是,為什麼我們看到編程語言的漏洞在增加,從某種角度看到開源和應用程序開發的趨勢。

隨著代碼的不斷開發,開源社區中的點評也越來越多。人們需要考慮通過自動化工具來幫助發現更多漏洞,然後修復和及時發佈issue。

如今開發者可以通過GitHub Security Lab(https://securitylab.github.com/)來直接提交漏洞報告。這樣一來,發佈漏洞的數量會持續增加,特別是有著大量代碼庫,但沒有嚴格審查的語言中。

比如時間比較悠久的開源,如PHP的Wordpress、Drupal等,很多研發人員開始審查它們,人們發現代碼中一直存在的漏洞,但尚未有人報告過。

沒有最佳語言,只有更好的編碼實踐

從本質上來講,安全漏洞就是一組漏洞,它們讓應用程序和數據受到破壞,甚至更大的損失。當編碼漏洞威脅到數據的可訪問,完整和隱私性時,這些就屬於安全漏洞的範疇。

在大多數情況下,這些漏洞是人們自身所犯的錯誤,只要人類繼續編碼,bug就會持續發生,漏洞也會持續出現在項目中。

無需再多考慮哪種編程語言最安全,沒有一種語言是或達到,核心問題是我們如何管理軟件中的漏洞,如何編寫安全的代碼。

第一位且最重要的是,開發者應該被教育並遵循代碼最佳實踐來進行編碼,安全地編碼。

我們會對某個人說代碼寫得爛,但這還不夠,每個人的編碼都要變得更好。

除了遵循編碼最佳實踐外,不僅是在上線部署之前,程序員還要仔細檢查代碼中的漏洞,包括上下文依賴,功能部分,除去程序本身的邏輯等等。在一些關鍵功能上,如果發現有嚴重的漏洞,則需要程序員斷舍離,刪除或替換,最好重新編寫代碼。

如果各位開發者知道在軟件開發生命週期中各個階段中測試的重要性,對於檢測軟件中的安全漏洞,也請遵循相同的原則~

喜歡請多多關注易傑智科技!


分享到:


相關文章: