xAI 已將旗下終端機程式碼代理工具 Grok Build 開源,以 Apache 2.0 授權將約 844,530 行 Rust 程式碼釋出到 GitHub,此舉是為了在同一款工具被抓到悄悄把使用者的整個程式碼庫上傳到 xAI 伺服器之後重建信任。轉折之處在於,開源揭露的東西,多過它移除的東西。資安研究員表示,執行那些上傳的程式碼仍留在已釋出的軟體中,只是被一個伺服器端旗標關掉,而非真正被拿掉。
這個行為之所以曝光,是因為一名研究員追查 Grok Build 在一次正常工作階段中往外傳送了什麼。除了預期中約 192 KB 的模型流量之外,這款工具還另開了第二條通道,分成 73 個各約 75 MB 的資料區塊,上傳了約 5.10 GB 的資料,接近程式撰寫任務所需資料量的約 27,800 倍。它傳送的不只是它需要讀取的檔案,而是把整個 Git 儲存庫連同完整的提交歷史,一併送往由 xAI 營運的一個 Google Cloud Storage 儲存桶。在一次測試中,一個受追蹤的 .env 檔案未經遮蔽就被上傳,連誘餌用的 API 金鑰和資料庫密碼都一起送出,使用者也回報 SSH 金鑰、密碼資料庫、文件和照片全都隨著程式碼一起被掃走。
研究結果一傳開,xAI 便迅速行動。Elon Musk 表示所有已上傳的使用者資料都會被刪除,公司停用了上傳功能,並稱該功能自 7月12日起已預設關閉,接著公司釋出了完整的原始碼,把這次開源釋出定位為讓任何人都能稽核這款工具並完全在本機執行的途徑。表面上看,這是面對信任危機的教科書式回應,公開程式碼、關掉功能、刪除資料。
問題出在研究員讀過那段程式碼後點出的細節。上傳機制並未被移除,它仍存在於執行檔中,只被一個伺服器端的組態旗標擋著,這意味著 xAI 不必推送任何更新、也不必徵詢任何人的同意,就能把它重新開啟。開源讓這套機制變得可見,卻沒有讓它消失,而由供應商掌控的一個開關,跟根本不存在的程式碼相比,是截然不同的一種保證。
這起事件是關於新一類程式碼代理工具的一記警鐘,這類工具就住在你的終端機裡,對你的檔案系統、你的金鑰和你的機密擁有深層存取權。一款能讀取你整個專案的工具所帶來的便利,與一款能把你整個專案送往別處的工具所帶來的風險,兩者密不可分,而區隔這兩者的界線,可能只是一個你永遠看不到的組態值。開源有幫助,因為正是有數千雙眼睛盯著這 844,530 行程式碼,那個旗標才會在一開始被發現。但真正的重點是,如今把你的程式碼庫託付給一個代理工具,就意味著要信任那個能撥動它開關的人,而這一次,開關仍然還在。
