當前位置:
首頁 > 科技 > C++協程驚爆安全漏洞!新型攻擊手法CFOP可繞過主流防護機制

C++協程驚爆安全漏洞!新型攻擊手法CFOP可繞過主流防護機制

資安研究人員發現一種名為「協程框架導向程式設計」(Coroutine Frame-Oriented Programming,CFOP)的新型程式碼復用攻擊手法,能夠針對三大主流編譯器(Clang/LLVM、GCC和MSVC)的C++協程功能發動攻擊,連具備控制流完整性(CFI)防護的系統也難逃毒手。

這項由CISPA亥姆霍茲資訊安全中心研究團隊首度發現的攻擊技術,研究員Marcos Sanchez Bajo與Christian Rossow教授證實,攻擊者無需植入新程式碼,只需串接現有函式並破壞協程內部記憶體結構,就能實現任意程式碼執行。更驚人的是,現行15種CFI防護方案中,多數都無法有效阻擋此類攻擊。

C++協程自2020年納入標準後快速普及,目前在GitHub上已有超過130個熱門專案採用。Bajo解釋:「協程能暫停與恢復函式執行,對伺服器、資料庫和瀏覽器等需要非同步程式設計的場景特別實用。」比如用來產生費波那契數列時,協程能在產生每個數字後暫停,待需要時再恢復執行。

CFOP攻擊的關鍵在於:不同於傳統程式碼復用攻擊只串接程式碼片段,它需要呼叫完整的協程函式並以巧妙方式連線。Bajo指出:「CFI防護的最大問題在於其設計是靜態的,當程式語言引入新特性時,CFI無法隨之演進。」研究顯示,15種CFI方案中僅7種支援協程,其中又只有IBT和Control Flow Guard能提供部分防護。

隨著C++協程日益普及,CFOP的潛在影響範圍正持續擴大。Bajo警告:「我們發現協程在記憶體中的特定結構可能成為攻擊目標,這是一個架構性問題,單純修補程式碼難以解決。」研究團隊已於2024年11月向三大編譯器開發團隊提交改良方案,相關研究成果將在2025年8月7日的Black Hat USA資安大會上正式發表。

[end]