白宮稱:C和C++不安全

科爾同學 2024-02-29 15:51:02

根據一份新報告,美國白宮國家網絡安全辦公室(ONCD)呼籲開發人員使用“內存安全編程語言”,其中不包括一些流行的語言,比如C和C++。

內存安全是指保護免受與內存訪問相關的錯誤和漏洞的影響。比如:緩沖區溢出和懸空指針。Java由于其runtime錯誤檢測被認爲是一種內存安全語言。但C和C++允許使用直接內存地址進行任意指針算術運算,並且沒有邊界檢查。

2019年,微軟的安全工程師報告稱,大約70%的安全漏洞是由內存安全問題引起的。谷歌在2020年也報告了相同的數字,那是針對Chromium浏覽器中發現的漏洞。

報告中稱:“專家們確定了一些編程語言,它們既缺乏與內存安全相關的特征,又在關鍵系統中廣泛使用,如C和C++。從一開始選擇使用內存安全的編程語言,是一種以安全設計爲目標的軟件開發方式之一。”

報告詳細說明了其認爲“不安全”的編程語言,即C和C++。並且說明了“幾十種可以使用且應該使用”的內存安全編程語言。

在2022年11月,美國國家安全局(NSA)發布了一份詳細說明其認爲內存安全的編程語言的網絡安全信息簡報。NSA推薦的內存安全編程語言包括:Rust,Go,C#,Java,Swift,JavaScript,Ruby。

通過查看編程語言流行度的TIOBE指數,我們可以看到Python排在第一位。在NSA推薦的選項中,C#排名第五,Java排名第四,JavaScript排名第六,Go排名第八,Swift排名第16,Rust排名第18,Ruby排名第20。所以NSA選擇的語言在前20名中,只有其中四種是開發者“流行”使用的。

ONCD相信更好的指標能夠使技術提供商更好地規劃、預測和減輕漏洞問題。

該報告還回顧了阿波羅13號任務,這是NASA稱之爲“成功的失敗”的任務。該任務遭遇了災難性的故障,三名宇航員不過采取臨時修複措施,解決了許多問題,平安返回了地球。報告詳細說明了應該使用一種盡可能接近內核的內存安全語言,以免發生未來的事故。

隨著越來越多的世界轉向數字化,更好的編碼需求變得更加重要。糟糕的代碼可以被惡意利用來攻擊弱點。報告中提到了2021年12月的Log4j漏洞,該漏洞利用了一個名爲Log4Shell的零日漏洞,它是一個開源Java日志記錄庫Log4j被利用的案例。

2 阅读:327
评论列表
  • 2024-03-01 23:31

    唯一不安全的只有白宮

科爾同學

簡介:IT、數碼、網絡知識分享交流