美國政府呼籲棄用 C/C++,軟體開發界將迎來巨變?
美國政府呼籲棄用 C/C++,軟體開發界將迎來巨變?
資料來源: https://www.techbang.com/posts/119558-the-us-governments-call-for-the-deprecation-of-c-c-will-usher
近日,美國網路安全和基礎設施安全局 (CISA) 和聯邦調查局 (FBI) 再次發出呼籲,敦促軟體開發商放棄使用 C 和 C++ 等「記憶體不安全」的程式語言,轉而採用更安全的替代方案,以降低國家安全、經濟安全和公共健康的風險。
這一呼籲並非空穴來風。CISA 早在 2024 年初就與五眼聯盟的其他成員(包括 FBI、澳洲網路安全中心和加拿大網路安全中心)聯合發表了一份報告,分析了 172 個關鍵開源專案。報告指出,超過一半的專案使用了記憶體不安全的語言編寫程式碼,佔總程式碼量的 55%。
記憶體安全漏洞:揮之不去的夢魘
CISA 強調,記憶體安全漏洞佔所有安全漏洞的 70%。由於 C 和 C++ 等語言要求開發人員手動管理記憶體的使用和分配,任何疏忽都可能導致緩衝區溢位、釋放後使用等嚴重漏洞,讓攻擊者有機可乘,控制軟體、系統甚至竊取資料。
為了解決這個問題,CISA 建議開發人員改用 Rust、Java、C#、Go、Python 和 Swift 等記憶體安全的程式語言。這些語言內建了記憶體保護機制,可以有效防止常見的記憶體相關錯誤,從程式碼層面提升安全性。
理想很豐滿,現實很骨感
儘管 CISA 的建議立意良善,但要讓開發者放棄 C/C++ 並非易事。
首先,將現有的大型程式碼庫轉換為新的程式語言需要耗費大量時間和資源,而且必須仔細規劃才能確保功能不受影響。對於許多企業來說,這無疑是一項巨大的挑戰。
其次,記憶體安全的語言在效能方面可能不如 C/C++。C/C++ 之所以經久不衰,正是因為它們能夠編寫出執行速度最快的程式。在速度和安全之間,許多開發者和企業仍然會優先考慮速度。
此外,企業還需要額外投資,更換現有的開發工具、除錯器和測試框架,以支援新的程式語言,並將新程式與舊程式碼和程式庫整合。
CISA 的最後通牒:2026 年前提交遷移路線圖
儘管困難重重,CISA 仍然堅持要求企業在 2026 年 1 月 1 日前提交遷移現有程式碼庫的路線圖,並強調從長遠來看,減少漏洞和提高安全性所帶來的收益將超過初始投資。
然而,在追求短期利潤最大化的現代商業環境下,企業是否願意買單,仍是一個未知數。
Linux 之父 Linus Torvalds 的態度:謹慎支持
就連 Linux 的創造者 Linus Torvalds 也對此持保留態度。雖然他支持在 Linux 核心程式碼中引入 Rust 語言,但也坦言 Rust 和 C 之間的爭論已經演變成「宗教戰爭」,許多經驗豐富的 C 語言開發者抵觸學習 Rust。
未來展望:記憶體安全語言的崛起之路
儘管面臨重重阻力,但記憶體安全語言的發展是大勢所趨。隨著技術的進步和安全意識的提高,相信會有越來越多的開發者和企業選擇更安全的程式語言。
然而,這個轉變過程注定是漫長而痛苦的。在 2020 年代,C/C++ 仍然會是軟體開發的主力軍。或許在 2030 年代,我們才能真正見證記憶體安全語言的全面崛起。