新的“特洛伊木馬源”技術讓駭客可以隱藏原始程式碼中的漏洞

Myasiacloud 2021-11-17 15:28:44 發表於 民生話題 [顯示全部樓層] 回覆獎勵 閱讀模式 0 5236


駭客可以利用一類新的漏洞,以語義上允許的方式注入具有視覺欺騙性的惡意軟體,但會改變原始程式碼定義的邏輯,從而有效地為更多的第一方和供應鏈風險打開大門。

劍橋大學研究人員在一篇新發表的論文中說:“這種被稱為“特洛伊木馬源攻擊”的技術“利用了Unicode等文本編碼標準的微妙之處來生成原始程式碼,其權杖的邏輯編碼順序與其顯示順序不同,從而導致無法直接感知的漏洞由人類代碼審查員。”

這些漏洞會影響所有流行程式設計語言的編譯器,例如 C、C++、C#、JavaScript、Java、Rust、Go 和 Python。

該問題的核心是 Unicode 的雙向(或Bidi)演算法,該演算法支援從左到右(例如,英語)和從右到左(例如,阿拉伯語或希伯來語)語言,並且還具有所謂的雙向性覆蓋以允許在從右到左的句子中寫入從左到右的單詞,反之亦然,從而可以將不同閱讀方向的文本嵌入大文字區塊中。

雖然期望編譯器的輸出正確實現提供給它的原始程式碼,但通過將 Unicode Bidi 覆蓋字元插入注釋和字串而產生的差異可能會產生一種產生語法有效的原始程式碼的場景,其中字元的顯示順序呈現不同的邏輯從實際邏輯來看。

換句話說,攻擊通過針對原始程式碼檔的編碼來製造有針對性的漏洞,而不是故意引入邏輯錯誤,以便在視覺上重新排序原始程式碼中的權杖,雖然以完全可接受的方式呈現,但會欺騙編譯器進行處理以不同的方式編寫代碼並徹底改變程式流程——例如,使注釋看起來好像它是代碼。

“實際上,我們將程式 A 轉換為程式 B,”研究人員推測道。“如果邏輯上的變化足夠微妙以至於在後續測試中未被發現,那麼攻擊者可能會在不被發現的情況下引入有針對性的漏洞。”

研究人員警告說,當注入開源軟體的隱形軟體漏洞進入下游時,這種對抗性編碼會對供應鏈產生嚴重影響,可能會影響軟體的所有使用者。更糟糕的是,如果攻擊者使用同形文字重新定義上游包中預先存在的函數並從受害者程式中調用它們,則木馬源攻擊可能會變得更加嚴重。

通過用來自其他 Unicode 系列集的相似字元替換拉丁字母(例如,將“H”更改為西瑞爾字母“Н”),威脅行為者可以創建一個看似與原始函數相似但實際上包含惡意程式碼的同形文字函數,然後被添加到開源專案中而不會受到太多審查。該論文指出,當針對通過導入的依賴項或庫提供的通用功能時,這種類型的攻擊可能是災難性的。

研究人員指出:“Trojan Source 漏洞幾乎影響所有電腦語言,這一事實使其成為系統範圍內和生態上有效的跨平臺和跨供應商回應比較的難得機會。” “由於使用這些技術可以輕鬆發起強大的供應鏈攻擊,因此參與軟體供應鏈的組織實施防禦至關重要。”

暫無任何回文,期待你打破沉寂

你需要登入後才可以回覆 登入 | 註冊會員

本版積分規則