白宮呼吁加大內存安全開發技術投資,事關國家安全
美國白宮國家網絡主任辦公室(ONCD)近日發布題為《回到基礎構件:通往安全軟件之路》的報告,呼吁業界加大內存安全投資,并鼓勵技術社區積極采用內存安全編程語言,例如Rust、Python、Swift、C#、Java和Go等。
內存安全漏洞是指編程語言中以意外的方式訪問、寫入、分配或釋放內存的一類漏洞。惡意行為者可能利用這類漏洞非法訪問、破壞數據或運行任意惡意代碼。
過去幾十年,軟件開發者通過各種方法不斷嘗試解決普遍存在的內存安全漏洞問題(例如開發者培訓、代碼覆蓋、安全編碼指南、模糊測試、靜態/動態應用安全測試),但收效甚微。
75%的漏洞與內存安全有關
根據Horizon3.ai發布的2023年漏洞利用分析報告,內存安全問題是僅次于“注入”的第二大漏洞原因,75%的內存安全漏洞被攻擊者作為零日漏洞利用。Horizon3.ai首席攻擊工程師ZachHanley表示,還有25%的漏洞起初由安全研究人員發現,之后才追溯到曾被用于零日漏洞攻擊。
美國國家網絡總監助理Anjana Rajan列舉了1988年的Morris蠕蟲、2003年的Slammer蠕蟲、2014年的Heartbleed漏洞、2016年的Trident漏洞以及2023年的Blastpass漏洞,指出這些漏洞的根源均為內存安全問題。
Rajan表示,過去35年來,內存安全漏洞一直困擾著數字生態系統,但并非無解。白宮的ONCD報告由工程師編寫,旨在鼓勵開發者在選擇構建模塊時做出有利于安全性的決策,從而大幅縮小網絡攻擊面,保護數字生態系統乃至國家安全。
內存安全語言與內存安全硬件的價值
ONCD報告闡述了內存安全編程語言和內存安全硬件的形式化方法的重要性。這些方法可以幫助軟件開發人員避免多種軟件漏洞(不僅僅是內存安全漏洞)。
報告還強調了內存安全硬件的重要性,因為對于某些系統(例如太空系統),可能無法使用內存安全語言,報告探討了如何通過硬件實現內存安全的補充方法。例如,一些制造商已經開發了新的內存標簽擴展(MTE)來檢查內存位置的指針的有效性。
報告指出,內存安全編程語言(MSL)是減少內存安全漏洞的最高效方法。將不安全的代碼庫遷移到內存安全語言的長期收益遠大于短期的遷移成本。
Trail of Bits首席執行官Dan Guido指出,形式化方法結合內存安全編程語言,能夠提供一種消除軟件漏洞的強大框架,其精準度至今無出其右。
白宮強調,ONCD報告旨在將網絡安全責任從個人和小企業轉移到大型科技公司和聯邦政府等大型組織身上。報告指出,美國網絡安全和基礎設施安全局(CISA)、美國國家安全局(NSA)、聯邦調查局(FBI)等機構聯合發布的《內存安全路線圖指南》報告(鏈接在文末),為制造商提供了消除產品內存安全漏洞的指導性步驟。
白宮報告還提及了軟件可測量性問題,并呼吁學術界參與其中,共同開發更好的診斷工具來評估網絡安全質量。
行業專家觀點:從關鍵太空系統開始
霍尼韋爾互聯企業首席技術官Jason Urso認為,將內存安全編程納入軟件設計流程,將成為網絡防御工具包的重要補充,該工具包中的其他工具還包括網絡隔離、高安全模型以及實時威脅和漏洞評估。
斯坦福大學計算機科學教授Dan Boneh則表示,如果能夠將所有現有軟件“神奇地“轉換為內存安全語言,軟件質量將會得到極大提升,但遺憾的是,這種“魔法棒”目前并不存在。
Boneh認為,白宮采取了務實的措施,建議從關鍵太空系統開始實施內存安全編程,這是一個很好的測試平臺。防止內存安全漏洞只是邁向更安全軟件的第一步,形式化驗證和限制技術也是重要的安全工具,很高興看到白宮呼吁加大對此類技術的投資。