美國啟動重大重構計劃,用AI將易攻擊代碼轉換為Rust語言

美國啟動重大重構計劃,用AI將易攻擊代碼轉換為Rust語言

世界各地的關鍵IT系統仍然充斥著漏洞 , 而AI工具可能會讓利用這些漏洞變得前所未有的容易 。 但AI也可能成為解決方案的一部分:一項新計劃旨在自動將易受攻擊的代碼轉換為專注于安全的Rust語言 , 這將消除絕大多數已知的軟件漏洞 。

內存安全漏洞占70%的軟件漏洞
AI編程工具的快速發展使得處理那些以前因成本過高或耗時太長而無法承擔的軟件工程任務變得比以往任何時候都容易 。 進步研究所智庫啟動了\"重大重構\"計劃 , 使用這些工具將用C和C++編寫的開源軟件轉換為Rust 。 與前兩種語言不同 , Rust被設計用來防止一類危險的漏洞——內存攻擊 。
內存安全問題發生在軟件以非預期方式訪問或操作內存時 。 這些漏洞在為開發者提供內存處理手動控制的舊語言中很普遍 。 大多數新語言都包含防護措施來防止此類問題 , 但這通常以較低性能為代價 。 因此 , C和C++等內存不安全語言仍被廣泛使用 , 內存安全漏洞仍占軟件漏洞的約70% 。
AI驅動的代碼轉換革命
Rust于2015年首次發布 , 旨在在引入內存安全的同時匹配C和C++的性能 。 這種語言已被渴望加固代碼的科技公司快速采用 , 包括亞馬遜、谷歌和微軟 , 但將舊軟件轉換為Rust是一個費時費力的昂貴過程 。
劍橋大學博士生、項目負責人赫比·布拉德利表示 , 重大重構計劃的成功基于AI工具已經改變了等式這一觀點 。 該計劃提議建立一個由美國政府資助的\"專項研究組織\" , 使用AI驅動的編程工具到2030年將關鍵開源軟件庫中的1億行代碼轉換為Rust 。 布拉德利估計 , 投資1億美元 , 該項目可以防止數百次網絡攻擊 , 累計損失約20億美元 。
\"我非??春肁I改變軟件開發方式的能力 , 這顯然包括做一些以前被認為成本或時間禁止的事情的潛力 , \"布拉德利說 。 \"五年后 , 如果人們想要任何主要庫的Rust版本...他們將能夠制作出來 。 \"
布拉德利表示 , 這種方法如此有吸引力的原因是 , 它有可能一次性解決大量漏洞 , 而不必采用逐案處理每個漏洞的常規方法 。 這對于由少數過度工作的志愿者維護的小型開源庫的\"長尾\"來說可能特別有吸引力 。
人工轉換與AI自動化的較量
手動將小型C代碼庫轉換為Rust通常需要經驗豐富的Rust工程師數千小時的人力投入 , 而這類工程師供不應求 。 但布拉德利表示 , 最新的AI編程工具現在可以在很少監督的情況下可靠地執行少于1000行程序的翻譯 。 在稍加監督的情況下 , 包含多達5000行的程序也在可及范圍內 。 布拉德利補充說 , 這些能力也在快速發展 。
概述該提案的立場文件表明 , 一個由不到50名安全工程師、AI研究人員和管理人員組成的團隊可以在三到五年的時間內對關鍵開源庫產生相當大的影響 。 初步努力將集中于識別最重要的安全庫 , 并開發用于驗證AI翻譯代碼安全性和功能性的強大工具 。
該項目希望借助現有的創建AI驅動Rust翻譯工具的努力 , 最值得注意的是美國國防高級研究計劃局的\"將所有C轉換為Rust\"(TRACTOR)程序 。 該程序于2024年啟動 , 旨在研究如何將新興的生成式AI工具與傳統代碼分析相結合 , 以自動化Rust翻譯 。
混合方法的探索與實踐
盡管自啟動以來AI代碼生成有了快速改進 , 但項目經理丹·沃拉奇認為混合方法仍然可能勝出 。 他表示 , 該計劃資助的六個團隊采取了多種方法 , 從幾乎完全依賴AI到主要構建經典轉換工具 , 只將問題的部分外包給生成模型 。
\"AI看起來很有前途 , 但我們也有幾十年編寫軟件來分析其他軟件的研究 , \"他說 。 \"TRACTOR的全部意義在于探索您可能混合和匹配傳統計算機科學與現代AI的所有不同方式 。 \"
各團隊在12月提交了第一輪結果 , 該計劃的評估團隊目前正在分析他們的參賽作品 。 沃拉奇表示 , 他們將被評判的兩個主要標準是正確性(代碼是否做它應該做的事情)和性能 , 但第三個更主觀的衡量標準可能是最重要的 。 各團隊被要求創建\"慣用的\"Rust代碼——遵循最佳實踐并以既定方式解決問題的代碼 。 換句話說 , \"代碼看起來像熟練的Rust程序員從頭構建的樣子嗎 , \"沃拉奇說 。
挑戰與前景并存的未來
這對于確保生成的代碼易于人類工程師維護至關重要 , 但為Rust項目貢獻的開源開發者喬什·特里普萊特表示 , 這可能具有挑戰性 。 \"如果你使用AI翻譯的代碼 , 與手動翻譯的代碼相比 , 你可能最終得到人類難以維護的代碼 , \"他說 。
特里普萊特表示 , 這可能并不總是問題 , 他歡迎任何將更多代碼轉換為Rust的努力 。 如果項目已經在使用AI幫助維護其代碼——這種情況越來越常見——那么使用AI翻譯成Rust是完全合理的 。 但他警告那些尚未定期使用該技術的團隊不要為了代碼轉換而轉向它 。 他還認為對于數千個其他項目依賴的流行開源庫需要更加謹慎 。
\"可能你會想在轉換中更加小心 , 也許使用AI來幫助你 , 但要非常小心 , \"他說 。 \"AI在防止做錯事方面永遠不會有100%強大的萬能解決方案 , 無論是通過幻覺還是不理解任務 。 \"
喬治城大學安全與新興技術中心高級研究分析師杰西卡·季表示 , 另一個潛在挑戰是 , 雖然Rust的受歡迎程度在增長 , 但它仍然有相對較小的開發者基礎 。 \"假設AI翻譯一切順利 , 生成的Rust代碼將需要以某種方式維護和監控 , \"她在給IEEE Spectrum的電子郵件中寫道 。 \"那里的Rust專家比C/C++專家少得多 , 所以代碼庫上的專家眼睛數量可能會更少 。 \"
然而 , 季表示 , 也許最大的障礙將是說服美國政府資助該項目 , 特別是在設想的規模上 。 她認為更現實的目標可能是向私營部門尋求概念驗證的資金 。 \"我認為現在是推出這樣提案的好時機 , 因為AI公司特別有動機展示其模型的能力 , \"她說 。
布拉德利也在考慮類似的思路 。 雖然他與美國和英國政府代表進行了討論 , 但他也在探索該項目是否更適合作為商業企業 , 因為大量可以從轉換為Rust中受益的易受攻擊代碼存在于私營公司和關鍵基礎設施提供商中 。
Q&A
Q1:重大重構計劃是什么?它的目標是什么?
A:重大重構計劃是由進步研究所智庫啟動的一項計劃 , 旨在使用AI工具將用C和C++編寫的開源軟件自動轉換為Rust語言 。 該計劃提議建立一個由美國政府資助的專項研究組織 , 到2030年將關鍵開源軟件庫中的1億行代碼轉換為Rust , 投資1億美元預計可防止數百次網絡攻擊 。
Q2:為什么要將C和C++代碼轉換為Rust?
A:因為內存安全漏洞占所有軟件漏洞的約70% , 而C和C++等舊語言容易出現內存攻擊漏洞 。 Rust語言在2015年發布 , 專門設計用來在保持C和C++性能的同時引入內存安全 , 可以防止這類危險漏洞 。 雖然亞馬遜、谷歌、微軟等公司已快速采用Rust , 但手動轉換過程費時費力且昂貴 。
Q3:AI工具在代碼轉換中能發揮什么作用?
【美國啟動重大重構計劃,用AI將易攻擊代碼轉換為Rust語言】A:最新的AI編程工具現在可以在很少監督的情況下可靠地執行少于1000行程序的翻譯 , 在稍加監督下可處理多達5000行的程序 。 手動轉換小型C代碼庫通常需要經驗豐富的Rust工程師數千小時工作 , 而AI工具可以大大降低這個成本和時間 , 使以前因成本過高而無法承擔的軟件工程任務變得可行 。

    推薦閱讀