C和C ++是“不安全的”語言:導致Chrome和微軟產品所有安全性錯誤中70%記憶體安全性問題 | ZDNet
Google工程師本週表示,Chrome程式碼庫中所有嚴重的安全漏洞中,大約70%是記憶體管理和安全漏洞。
該數字與Microsoft共享的統計資訊相同。在2019年2月的安全會議上,微軟工程師表示,在過去的12年中,微軟產品的所有安全更新中約70%解決了記憶體安全漏洞。
兩家公司基本上都在處理相同的問題,即它們的程式碼庫中的兩種主要程式語言C和C ++是“不安全的”語言。它們是數十年前建立的舊程式設計工具,當時安全利用和網路攻擊不是相關的威脅模型,並且與大多數早期軟體開發人員無關。結果,C和C ++都使程式設計師能夠完全控制他們如何管理應用程式的記憶體指標(地址),並且沒有限制或警告來阻止或警告開發人員在犯基本記憶體管理錯誤時。
這些早期的編碼錯誤導致在應用程式中引入記憶體管理漏洞。這包括漏洞,如釋放後使用,緩衝區溢位,競爭條件,雙重釋放,通配指標等。這些記憶體管理漏洞是攻擊者試圖查詢和利用的最搶手的錯誤,因為它們可以授予他們將程式碼植入裝置記憶體中並由受害應用程式(瀏覽器,伺服器,作業系統等)執行的能力。 )。
在年初發布的排名中,管理美國政府漏洞資料庫的組織MITER Corporation 將緩衝區溢位列為最危險的漏洞,另外兩個與記憶體管理相關的問題也排名前十
谷歌研究解決CHROME的記憶體錯誤
記憶體管理錯誤的問題在Google一直是個大問題,以至於Chrome工程師現在必須遵循"The Rule of 2."
根據此規則,每當工程師編寫新的Chrome功能時,其程式碼不得破壞以下兩個以上的條件:
- 該程式碼處理不可信的輸入
- 程式碼在沒有沙箱的情況下執行
- 程式碼使用不安全的程式語言(C / C ++)編寫
儘管軟體公司之前曾嘗試解決C和C ++的記憶體管理問題,但Mozilla一直是透過在Firefox中贊助,推廣和大量採用Rust程式語言而取得突破的人。今天,Rust被認為是最安全的程式語言之一,並且是Mozilla早期的努力,是C和C ++的理想替代品。
相關文章
- C語言記憶體管理,分配、使用、釋放以及安全性C語言記憶體
- 關於c語言記憶體分配,malloc,free,和段錯誤,記憶體洩露C語言記憶體洩露
- C++跨DLL記憶體所有權問題探幽(二)CRT中MT和MD混用導致的堆損壞C++記憶體
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- C語言的記憶體分配C語言記憶體
- C語言-記憶體分配C語言記憶體
- C語言:記憶體使用C語言記憶體
- C語言小白記錄自己的錯題和總結C語言
- c語言強制記憶體轉化引發的問題C語言記憶體
- 【C語言】整型在記憶體中的儲存C語言記憶體
- C語言記憶體對齊C語言記憶體
- C/C++程式除錯和記憶體檢測C++除錯記憶體
- C語言初學者常見問題與錯誤C語言
- C 語言宣告與定義不一致導致的問題
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- C語言-記憶體管理之二[記憶體指令]C語言記憶體
- C語言(動態記憶體分配)C語言記憶體
- C語言記憶體地址基礎C語言記憶體
- 程式語言安全性排行榜:Ruby最佳,C語言漏洞最多?C語言
- [學習筆記]解決因C#8.0的語言特性導致EFCore實體型別對映的錯誤筆記C#型別
- C 語言中的指標和記憶體洩漏指標記憶體
- C陷阱和缺陷,必須知道的495個C語言問題C語言
- C和C++中的volatile、記憶體屏障和CPU快取一致性協議MESIC++記憶體快取協議
- 修改記憶體導致Ora-27100錯誤記憶體
- C/C++——C和C++怎樣分配和釋放記憶體,區別是什麼?C++記憶體
- 使用記憶體安全工具提升應用質量和安全性記憶體
- C/C++記憶體釋放應注意的問題C++記憶體
- SQL Server 記憶體洩露(memory leak)——遊標導致的記憶體問題SQLServer記憶體洩露
- 聊聊C語言/C++—程式和程式語言C語言C++
- 指令碼語言的安全性指令碼
- C++和c語言的分別C++C語言
- C++中泛型使用導致的膨脹問題C++泛型
- 一次JVM記憶體問題導致的線上事故JVM記憶體
- C# 安全性教程C#
- 用C語言寫的程式不安全C語言
- C和C++的動態記憶體管理的區別C++記憶體
- C語言:記憶體位元組對齊詳解C語言記憶體