Kỹ thuật tấn công mới SmashEX trên bộ xử lý Intel SGX Enclaves

Một lỗ hổng mới vừa được các nhà nghiên cứu phát hiện ảnh hưởng đến bộ xử lý Intel, cho phép tin tặc truy cập vào những thông tin nhạy cảm, thậm chí thực thi mã tùy ý trên các hệ thống bị ảnh hưởng.

20211108-ta5.jpg

Rò rỉ private key RSA từ Intel SGX SSL

Theo đó, lỗ hổng bảo mật này có định danh CVE-2021-0186 (điểm CVSS 8,2), được phát hiện bởi một nhóm chuyên gia bảo mật đến từ Viện Công nghệ Liên bang Thụy Sỹ (ETH Zurich), Đại học Quốc gia Singapore và Đại học Công nghệ Quốc phòng Trung Quốc vào đầu tháng 5/2021. Các nhà nghiên cứu đã phân tích lỗ hổng này để tạo nên một kỹ thuật tấn công mới có tên gọi là “SmashEx”, có thể tiết lộ và phá vỡ tính toàn vẹn của dữ liệu cá nhân.

Được giới thiệu cùng với bộ xử lý Skylake của Intel, Software Guard eXtensions (SGX) cho phép các nhà phát triển chạy các mô-đun ứng dụng được chọn trong một vùng bộ nhớ an toàn biệt lập, được gọi là vùng bao bọc (enclave) hoặc Trusted Execution Environment (TEE), nhằm bảo vệ khỏi các tiến trình đang chạy với các mức đặc quyền cao hơn, ví dụ như hệ điều hành, kernel, BIOS. SGX đảm bảo rằng dữ liệu sẽ được bảo mật ngay cả khi hệ điều hành của máy tính bị tấn công.

Các nhà nghiên cứu cho biết: “Khi hoạt động bình thường, thiết kế của SGX cho phép hệ điều hành làm gián đoạn việc thực thi enclave thông qua các ngoại lệ phần cứng (hardware exceptions) có thể cấu hình tại bất kỳ thời điểm nào. Tính năng này cho phép các enclave runtime (ví dụ như Intel SGX SDK và Microsoft Open Enclave) hỗ trợ xử lý thông tin và các ngoại lệ trong enclave, tuy nhiên điều này cũng có thể gây ra lỗi re-entrancy”.

Cần lưu ý rằng, một enclave cũng có thể có các “cuộc gọi bên ngoài” (Outside Calls) hay OCALLS, cho phép các chức năng của enclave gọi ra các ứng dụng không đáng tin cậy trước khi quay trở lại vùng enclave. Nhưng khi enclave đang xử lý các ngoại lệ trong enclave (ví dụ: ngắt bộ đếm thời gian hoặc division-by-zero), điều này sẽ tạo ra lỗ hổng bảo mật cho phép các tin tặc lợi dụng để chiếm đoạt luồng điều khiển thực thi bằng cách đưa vào một ngoại lệ không đồng bộ ngay sau khi enclave được nhập.

Nếu khai thác thành công, tin tặc có thể làm hỏng bộ nhớ bên trong, từ đó làm rò rỉ các dữ liệu nhạy cảm, như private key RSA hay thực thi mã độc.

Vì kỹ thuật tấn công SmashEx ảnh hưởng đến các runtime hỗ trợ xử lý ngoại lệ trong enclave, các nhà nghiên cứu lưu ý rằng: “Các luồng trả về OCALL và luồng xử lý ngoại lệ như vậy nên được lập trình cẩn thận để đảm bảo rằng chúng xen kẽ nhau một cách an toàn và khi luồng trả về OCALL bị gián đoạn, enclave phải ở trạng thái an toàn để luồng xử lý ngoại lệ được hoạt động chính xác. Khi luồng xử lý ngoại lệ hoàn thành, trạng thái enclave cũng phải sẵn sàng để enclave đó tiếp tục”.

Intel về sau cũng đã phát hành các bản cập nhật phần mềm để giảm thiểu lỗ hổng này với SGX SDK phiên bản 2.13 và 2.14 tương ứng cho Windows và Linux. Về phần mình, Microsoft đã giải quyết vấn đề (CVE-2021-33767) trong bản cập nhật Path Tuesday tháng 7/2021 với Open Enclave phiên bản 0.17.1 của SDK. Phát hiện của các nhà nghiên cứu dự kiến sẽ được công bố vào tháng tới tại hội nghị ACM về bảo mật máy tính và thông tin liên lạc.

Trong vài năm qua, nhiều cuộc tấn công tương tự đối với SGX enclave đã được các tin tặc thực hiện để đánh cắp dữ liệu, có thể kể đến như: PlunderVolt, SgxSpectre, Foreshadow, BranchScope,… Ngoài ra, thông qua một nghiên cứu năm 2019 về 8 bộ phát triển phần mềm enclave phổ biến, các nhà nghiên cứu đã phát hiện ra 35 lỗ hổng khác nhau trên tất cả các SDK được thử nghiệm, bao gồm cả SGX.

Tuy nhiên, theo các nhà nghiên cứu thì cuộc tấn công SmashEx nguy hiểm hơn nhiều so với những cuộc tấn công ở trên, vì nó không chỉ làm rò rỉ dữ liệu từ bên trong các sản phẩm SGX enclave mà còn có thể làm hỏng bộ nhớ bên trong nó.