SFOP (Segmentation Fault Oriented Programming) là kỹ thuật tấn công code‑reuse mới sử dụng chuỗi lỗi segmentation fault và signal handler để vượt qua Intel CET trên Linux. Thay vì thao túng địa chỉ trả về như ROP, SFOP tiến hành từng bước bằng cách cố ý gây crash liên tiếp để hệ điều hành kích hoạt SIGSEGV và điều k...

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
Các bộ xử lý hiện đại ngày càng dựa vào cơ chế bảo vệ phần cứng để ngăn chặn các cuộc tấn công khai thác lỗi bộ nhớ. Một trong những cơ chế đó là Intel Control‑Flow Enforcement Technology (CET), được thiết kế để chặn nhiều dạng tấn công tái sử dụng mã (code‑reuse attacks).
Tuy nhiên, nghiên cứu mới cho thấy ngay cả các cơ chế bảo vệ phần cứng cũng có thể bị vượt qua khi kẻ tấn công khai thác các hành vi hợp lệ của hệ điều hành.
Một kỹ thuật vừa được công bố mang tên Segmentation Fault Oriented Programming (SFOP) cho thấy cách kẻ tấn công có thể né tránh CET trên Linux bằng cách lạm dụng cơ chế signal handling. Công trình này do các nhà nghiên cứu tại CISPA Helmholtz Center for Information Security thực hiện và được trình bày trong bối cảnh hội nghị IEEE Symposium on Security and Privacy 2026.
SFOP là một dạng tấn công code‑reuse theo chuỗi (serial code‑reuse attack). Thay vì chiếm quyền điều khiển luồng thực thi bằng một bước duy nhất, nó tiến hành từng bước thông qua các lần crash liên tiếp của chương trình.
Quy trình khai thác cơ bản gồm:
Bằng cách lặp lại chuỗi này nhiều lần, kẻ tấn công có thể tạo ra một chuỗi hành động có kiểm soát, sử dụng chính các đoạn mã hợp lệ đã tồn tại trong chương trình hoặc thư viện của nó.
Điểm khác biệt so với các kỹ thuật quen thuộc như Return‑Oriented Programming (ROP) là SFOP không phụ thuộc vào việc thao túng địa chỉ return, mà dựa vào các sự kiện crash hợp lệ do hệ điều hành xử lý.
Intel giới thiệu Control‑Flow Enforcement Technology (CET) nhằm chống lại các cuộc tấn công code‑reuse. Công nghệ này kết hợp nhiều cơ chế phần cứng nhằm kiểm soát luồng thực thi của chương trình.
Các thành phần chính gồm:
Mục tiêu là ngăn chặn việc nhảy tới các vị trí lệnh không mong muốn trong mã chương trình.
Tuy nhiên, CET chủ yếu bảo vệ các chuyển đổi control‑flow bất hợp lệ trong quá trình thực thi bình thường.
SFOP lại đi đường vòng: nó tận dụng các chuyển đổi control‑flow hợp lệ do hệ điều hành kích hoạt.
Ý tưởng cốt lõi của SFOP là: việc hệ điều hành gửi tín hiệu (signal delivery) vốn là một chuyển đổi luồng thực thi hợp lệ.
Chuỗi tấn công có thể diễn ra như sau:
Mỗi lần signal handler được gọi sẽ trở thành một mắt xích trong chuỗi điều khiển thực thi của kẻ tấn công.
Vì việc chuyển vào handler là hành vi hợp lệ do kernel quản lý, nên nó có thể vượt qua các kiểm tra control‑flow của CET vốn chỉ giám sát các nhánh gián tiếp và return bên trong chương trình.
Khi chuỗi đủ dài, kẻ tấn công có thể ghép các hành vi lại để đạt tới arbitrary code execution bằng cách tận dụng mã sẵn có trong chương trình.
Trong Linux, các chương trình có thể đăng ký signal handler để xử lý các tín hiệu như SIGSEGV. Thông thường điều này dùng để:
SFOP biến cơ chế này thành một primitive điều khiển luồng thực thi bằng cách:
Do đó, bản thân cơ chế xử lý tín hiệu của hệ điều hành trở thành công cụ để xây dựng chuỗi tấn công.
Một hướng phòng thủ là thay đổi hành vi xử lý signal của kernel nhằm hạn chế việc lợi dụng segmentation fault lặp lại như một primitive control‑flow.
Các báo cáo công khai đề cập tới việc phát triển kernel patches để giảm khả năng chuỗi hóa các SIGSEGV, dù chi tiết kỹ thuật của các bản vá vẫn chưa được công bố rộng rãi.
Một giải pháp khác được đề xuất là PLaTypus, một lớp tăng cường bảo mật nhằm củng cố CET trước các kỹ thuật code‑reuse hiện đại.
PLaTypus tập trung vào việc hạn chế các bước nhảy control‑flow giữa các thư viện khác nhau trong một chương trình.
Các nhà nghiên cứu nhận thấy rằng ngay cả khi CET được bật, kẻ tấn công vẫn có thể chuyển hướng thực thi giữa các thư viện chia sẻ.
PLaTypus giảm thiểu vấn đề này bằng cách:
Cách tiếp cận này giúp giảm đáng kể số lượng mục tiêu code‑reuse khả dụng, qua đó thu hẹp bề mặt tấn công.
SFOP cho thấy một bài học quan trọng trong kiến trúc bảo mật hiện đại: bảo vệ phần cứng thôi là chưa đủ nếu hành vi của hệ điều hành vẫn có thể trở thành điểm khai thác.
Ngay cả những cơ chế tiên tiến như Intel CET cũng có thể bị vượt qua khi kẻ tấn công tìm ra cách điều hướng luồng thực thi thông qua các cơ chế hợp lệ của hệ thống, chẳng hạn như xử lý signal.
Đối với các kỹ sư bảo mật và nhà phát triển hệ thống, thông điệp rất rõ ràng: các lớp phòng thủ cần được thiết kế trên toàn bộ stack — từ CPU, hệ điều hành cho tới phần mềm. Chỉ cần một lớp còn lộ ra primitive điều khiển luồng thực thi, kẻ tấn công vẫn có thể tận dụng nó.
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
SFOP (Segmentation Fault Oriented Programming) là kỹ thuật tấn công code‑reuse mới sử dụng chuỗi lỗi segmentation fault và signal handler để vượt qua Intel CET trên Linux.
SFOP (Segmentation Fault Oriented Programming) là kỹ thuật tấn công code‑reuse mới sử dụng chuỗi lỗi segmentation fault và signal handler để vượt qua Intel CET trên Linux. Thay vì thao túng địa chỉ trả về như ROP, SFOP tiến hành từng bước bằng cách cố ý gây crash liên tiếp để hệ điều hành kích hoạt SIGSEGV và điều khiển luồng thực thi.
Các biện pháp phòng vệ được đề xuất gồm tăng cường cơ chế signal của Linux kernel và lớp hardening PLaTypus nhằm hạn chế chuyển hướng control‑flow giữa các thư viện.