Segmentation Fault Oriented Programming(SFOP)是一種新型 code‑reuse 攻擊,透過刻意觸發一連串 segmentation fault 來繞過 Intel 的 Control‑Flow Enforcement Technology(CET)。 攻擊者利用 Linux 的 SIGSEGV 訊號處理機制,每次程式崩潰後執行自訂 signal handler,逐步串接執行流程並操控程式行為。

Create a landscape editorial hero image for this Studio Global article: What is the newly disclosed Segmentation Fault Oriented Programming (SFOP) attack presented by CISPA researchers at the IEEE Symposium on Se. Article summary: SFOP, or Segmentation Fault Oriented Programming, is a newly disclosed serial code-reuse attack by CISPA researchers that abuses Linux SIGSEGV signal handling to bypass Intel CET on Linux by deliberately triggering segme. Topic tags: general, education, general web, documentation. Reference image context from search candidates: Reference image 1: visual subject "IEEE Symposium on Security and Privacy IEEE Symposium on Security and Privacy. Home IEEE Symposium on Security and Privacy: Academic Security Research That Matters. # IEEE Symposiu" source context "IEEE Symposium on Security and Privacy: Academic Security Research That Matters | netguardia.com" Referenc
現代 CPU 已經加入愈來愈多硬體安全防護,希望阻止記憶體破壞(memory corruption)導致的攻擊。Intel 的 Control‑Flow Enforcement Technology(CET) 就是其中一個重要機制,目的係令常見的 code‑reuse 攻擊(例如 ROP)變得更難成功。
不過最新研究指出,就算有硬體保護,如果作業系統的行為可以被濫用,仍然可能出現繞過方法。
由 CISPA Helmholtz Center for Information Security 研究人員提出的一種新技術——Segmentation Fault Oriented Programming(SFOP)——展示咗如何利用 Linux 的訊號處理機制,在 CET 啟用的情況下仍然控制程式流程。相關研究亦在 2026 年 IEEE Symposium on Security and Privacy 的討論中出現。
SFOP 屬於一種 serial code‑reuse attack(序列式程式碼重用攻擊)。核心概念係:故意令程式反覆產生 segmentation fault,再利用 signal handler 作為新的控制流程入口。
典型攻擊流程大致如下:
透過不斷重複這個循環,攻擊者可以逐步串接一連串操作。每一次 crash 都成為攻擊鏈的一部分,最終利用程式或共享函式庫中的現有程式碼完成惡意行為。
與傳統 Return‑Oriented Programming(ROP) 不同,SFOP 並不是依靠操控 return address,而是利用 連續 fault 事件與 signal handler 來推進控制流程。
Intel 推出的 Control‑Flow Enforcement Technology(CET) 是一種硬體層安全機制,目標係阻止 code‑reuse 攻擊。
CET 主要包含兩類保護:
理論上,這些機制可以阻止攻擊者將程式跳轉到不應該執行的位置。
但 CET 的設計主要針對 程式內部的不合法控制流程。
SFOP 則完全繞開這個假設。
SFOP 的關鍵洞察是:
訊號傳遞本身就是作業系統合法的控制流程轉移。
大致攻擊步驟如下:
在這個模型下,每一個 signal handler 都變成攻擊鏈的一個節點。
由於這些轉移是 OS 合法觸發的控制流程,因此可以避開 CET 對一般 indirect branch 或 return 的檢查。
結果就是:攻擊者可以逐步拼湊程式既有代碼,最終達到 arbitrary code execution(任意程式碼執行)。
在 Linux 中,程式可以為多種訊號註冊 handler,包括 SIGSEGV。這些 handler 原本用途是:
SFOP 將這個設計反過來利用:
於是,signal handler 本身就變成一個 可重用的控制流程 building block。
研究人員提出了幾種可能減低 SFOP 風險的方向。
其中一個方向是 修改 Linux kernel 的 signal handling 行為,限制攻擊者反覆利用 segmentation fault 和 signal handler 來建立攻擊鏈。
目前公開資料提到已有 kernel 層面的修補構想,但詳細實作仍未在公開報告中完整披露。
另一個研究提出的防護機制叫 PLaTypus。
研究人員發現,即使 CET 已啟用,攻擊者仍然可以透過 跨共享函式庫(shared library)跳轉 來拼湊攻擊鏈。
PLaTypus 的做法是:
SFOP 再次提醒安全研究界一件事:
單靠硬體安全機制並不足夠。
即使 CPU 已經加入像 CET 這樣的保護,只要作業系統層仍然提供可被濫用的合法控制流程,攻擊者仍然可能找到繞過方法。
對系統安全工程師來說,真正有效的防護需要同時考慮整個技術棧:
因為攻擊者往往只需要找到 其中一層的可利用入口。
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
Segmentation Fault Oriented Programming(SFOP)是一種新型 code‑reuse 攻擊,透過刻意觸發一連串 segmentation fault 來繞過 Intel 的 Control‑Flow Enforcement Technology(CET)。
Segmentation Fault Oriented Programming(SFOP)是一種新型 code‑reuse 攻擊,透過刻意觸發一連串 segmentation fault 來繞過 Intel 的 Control‑Flow Enforcement Technology(CET)。 攻擊者利用 Linux 的 SIGSEGV 訊號處理機制,每次程式崩潰後執行自訂 signal handler,逐步串接執行流程並操控程式行為。
研究人員提出多種防禦方向,包括 Linux kernel 強化以及 PLaTypus hardening layer,後者可大幅限制跨程式庫的控制流程跳轉。