警惕!易隱藏的“木馬源”程式碼漏洞正在像企業供應鏈發起攻擊

導讀

兩名來自劍橋大學的研究人員Nicholas Boucher與Ross Anderson,在本週揭露了一個藏匿在統一碼(Unicode)中的安全漏洞,此一編號為CVE-2021-42574的漏洞,將影響所有支援Unicode的程式語言,目前已確定受到波及的涵蓋了C、C++、C#、JavaScript、Java、Rust、Go與Python等,推測可能也有其它受害的語言。該漏洞將允許駭客於開原始碼中、注入人類程式碼審查員看不見的安全漏洞,因而被研究人員稱為木馬源(Trojan Source)攻擊。

詳情

木馬源漏洞和攻擊模式

Anderson和他的同事Nicholas Boucher(博士生)揭示了兩種攻擊模式,統稱為特洛伊源攻擊。

漏洞涉及到兩個CVE,這兩個CVE都是根據Unicode規範釋出的。研究人員稱之為對Unicode的“潛在破壞性”攻擊雙向演算法(BiDi),從14。0版開始跟蹤為CVE-2021-42574。BiDi處理文字的顯示順序,例如,使用拉丁字母從左到右,或者從右到左使用阿拉伯語或希伯來語字元。

另一個相關的攻擊依賴於使用視覺上相似的字元,稱為同形符,跟蹤為CVE-2021-42694號。

為了給漏洞修復騰出時間,安全研究人員特地拖了99天才正式披露相關漏洞資訊。與此同時,研究人員已經與19個組織進行了協調,其中許多組織現在正在釋出更新,以解決程式碼編譯器、直譯器、程式碼編輯器和儲存庫中的安全弱點。

更多的技術細節可以在他們的論文中找到。

警惕!易隱藏的“木馬源”程式碼漏洞正在像企業供應鏈發起攻擊

警惕!易隱藏的“木馬源”程式碼漏洞正在像企業供應鏈發起攻擊

解決措施

研究人員已證實,這種攻擊已波及 C、C++、C#、JavaScript、Java、Rust、Go、以及 Python 等程式語言,並且有望擴大覆蓋其它現代語言。

他們還提出了一些防禦措施,這些措施應該在編譯器、直譯器和支援Unicode的構建管道中實現;語言規範;以及程式碼(文字)編輯器和儲存庫前端。

他們向各種組織和公司披露了他們的發現(在禁令下),這些組織和公司可以建立這些防禦。

“我們認為,這個問題的長期解決方案將部署在編譯器中。我們注意到,幾乎所有的編譯器都已經防範了一種相關的攻擊,這種攻擊涉及使用零寬度字元建立對抗性函式名,而有三種編譯器會對另一種生成錯誤,這就利用了函式名中的同形符號,”他們分享道。

“我們在公開期間聯絡的編譯器維護者中,大約有一半正在開發補丁,或者已經承諾要這麼做。當其他人在拖後腿時,在這段時間內部署其他控制是明智的,因為這是快速和廉價的,也是非常必要的。三家維護程式碼庫的公司也部署了防禦措施。我們建議依賴關鍵軟體的政府和公司應該確定其供應商的立場,對他們施加壓力,要求他們實施充分的防禦,並確保任何漏洞都被他們工具鏈上的其他控制覆蓋。”

目前,已經實施修復並在其供應鏈中進行檢測的組織包括Rust團隊、GitHub、RedHat和Atlassian(多個產品受到影響)。

注:本文由E安全編譯報道。

TAG: 編譯器漏洞UnicodeCVE攻擊