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++跨DLL記憶體所有權問題探幽(二)CRT中MT和MD混用導致的堆損壞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++中的volatile、記憶體屏障和CPU快取一致性協議MESIC++記憶體快取協議
- C陷阱和缺陷,必須知道的495個C語言問題C語言
- C中的匯流排錯誤和段錯誤
- C語言大型軟體設計的物件導向C語言物件
- 使用記憶體安全工具提升應用質量和安全性記憶體
- 聊聊C語言/C++—程式和程式語言C語言C++
- C++和c語言的分別C++C語言
- C結構體中資料的記憶體對齊問題結構體記憶體
- 4- C語言常見錯誤C語言
- C和C++的動態記憶體管理的區別C++記憶體
- 最大連續子陣列和求解問題(C語言)陣列C語言
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- python和c語言的區別是什麼PythonC語言
- C語言訪問資料物件在記憶體中真實位模式的一個方法C語言物件記憶體模式
- 主元素問題(C語言)C語言
- C語言-記憶體函式的實現(二)之memmoveC語言記憶體函式
- C語言-記憶體函式的實現(一)之memcpyC語言記憶體函式memcpy
- 記錄一個由於倉庫層錯誤導致軟刪除失效的問題
- 日誌導致jvm記憶體溢位相關問題JVM記憶體溢位
- Python和C語言區別是什麼?PythonC語言
- 16.C語言錯題整理C語言
- SQL語言與資料庫完整性和安全性SQL資料庫
- C/C++語言精髓 *和&詳解C++
- 第1天 C語言Dev-Cpp環境搭建及使用、C語言記憶體四區C語言dev記憶體
- 一次JVM記憶體問題導致的線上事故JVM記憶體