Kỷ nguyên mới của thoát sandbox trên macOS: bề mặt tấn công bị bỏ sót và phát hiện hơn 10 lỗ hổng mới
- Trên hệ thống macOS, phần lớn tiến trình chạy trong môi trường sandbox bị giới hạn. Ngay cả khi kẻ tấn công giành được thực thi mã từ xa (RCE), khả năng của chúng vẫn bị hạn chế. Bước tiếp theo là vượt qua sandbox để có quyền truy cập tệp rộng hơn.
- Trong quá trình rà soát các vấn đề hiện có để tìm lỗ hổng thoát sandbox, đã phát hiện ra một bề mặt tấn công bị bỏ sót quan trọng cùng các kỹ thuật tấn công mới. Từ đó phát hiện nhiều lỗ hổng thoát sandbox mới: CVE-2023-27944, CVE-2023-32414, CVE-2023-32404, CVE-2023-41077, CVE-2023-42961, CVE-2024-27864, CVE-2023-42977, v.v.
Về sandbox của macOS
App Sandbox
- Theo yêu cầu của Mac AppStore, phần lớn ứng dụng chạy kèm các hạn chế của App Sandbox. Ứng dụng trong sandbox phải có các quyền cụ thể, và khi vào sandbox sẽ bị container hóa, khiến thao tác với tệp bị hạn chế.
- Các tệp do ứng dụng sandbox tạo ra mặc định sẽ bị cô lập, và ứng dụng sandbox không thể gỡ thuộc tính này.
- Ứng dụng không có sandbox có thể truy cập không giới hạn vào toàn bộ dữ liệu người dùng và tài nguyên hệ thống. Ngược lại, ứng dụng có hạn chế sandbox chỉ có thể truy cập trong phạm vi giới hạn.
- Tiến trình con được fork sẽ kế thừa các hạn chế sandbox của tiến trình cha, nhưng các tiến trình được khởi chạy qua
LaunchService.framework thì không kế thừa các hạn chế đó.
Service Sandbox
- Phần lớn các dịch vụ daemon của Apple chạy trong ngữ cảnh Service Sandbox. Chúng bị giới hạn bởi các hồ sơ sandbox được định nghĩa tại các vị trí hệ thống.
- Service Sandbox thường không được container hóa, và các tệp mặc định không bị cô lập.
Bề mặt tấn công
Các phương pháp phổ biến trước đây
Tấn công qua LaunchService.framework
- Có cách tấn công các ứng dụng không sandbox thông qua framework LaunchService của hệ thống. Ví dụ, CVE-2021-30864 có thể thao túng biến môi trường $HOME của ứng dụng hệ thống không sandbox Terminal.app.
- Có thể thả và chạy ứng dụng không sandbox mới, nhưng các ứng dụng mới được thả xuống sẽ bị cô lập và bị ngăn thực thi.
Tấn công vào các Mach service có thể truy cập
- Có cách tấn công các Mach service có thể truy cập được liệt kê trong hồ sơ App Sandbox. Thông tin về toàn bộ Mach service của hệ thống được lưu trong tệp
/System/Library/xpc/launchd.plist.
Phương pháp mới bị bỏ sót
- Các dịch vụ XPC tồn tại trong miền PID là một nhóm dịch vụ bị bỏ sót. Chúng được ứng dụng khởi chạy theo yêu cầu và sẽ kết thúc khi ứng dụng yêu cầu thoát.
- Các dịch vụ XPC trong miền PID có thể được gọi từ ứng dụng sandbox mà không có kiểm tra quyền bổ sung hay kiểm tra sandbox.
Các lỗ hổng và khai thác mới
Beta-No-CVE-1
- Lỗ hổng này chỉ ảnh hưởng đến các bản beta của macOS Sonoma.
- Lỗ hổng nằm trong dịch vụ XPC
/System/Library/PrivateFrameworks/StorageKit.framework/XPCServices/storagekitfsrunner.xpc.
- Dịch vụ này có thể chạy mà không có hạn chế sandbox và có thể thực thi lệnh hệ thống tùy ý.
Beta-No-CVE-2
- Lỗ hổng này cũng chỉ ảnh hưởng đến phần mềm bản beta.
- Lỗ hổng nằm trong dịch vụ XPC
/System/Library/PrivateFrameworks/AudioAnalyticsInternal.framework/XPCServices/AudioAnalyticsHelperService.xpc.
- Có thể nén một đường dẫn tùy ý, và tệp zip được tạo ra sẽ không bị cô lập.
CVE-2023-27944
- Lỗ hổng nằm trong dịch vụ XPC
/System/Library/PrivateFrameworks/TrialServer.framework/XPCServices/TrialArchivingService.xpc.
- Dịch vụ này đi vào Service Sandbox, nhưng các tệp được thả xuống không bị cô lập.
CVE-2023-32414
- Lỗ hổng nằm trong dịch vụ XPC
/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/XPCServices/ArchiveService.xpc.
- Dịch vụ này đi vào Service Sandbox, nhưng các tệp được thả xuống không bị cô lập.
CVE-2023-32404
- Lỗ hổng nằm trong dịch vụ XPC
/System/Library/PrivateFrameworks/WorkflowKit.framework/XPCServices/ShortcutsFileAccessHelper.xpc.
- Dịch vụ này có thể chạy mà không có hạn chế sandbox và có quyền TCC đặc biệt cho Full Disk Access.
CVE-2023-41077
- Lỗ hổng nằm trong dịch vụ XPC
/System/Library/Frameworks/ImageCaptureCore.framework/XPCServices/mscamerad-xpc.xpc.
- Dịch vụ này có thể chạy mà không có hạn chế sandbox và có quyền TCC đặc biệt để truy cập trực tiếp vào Photos và removable volumes.
1 bình luận
Ý kiến trên Hacker News
Việc vá từng dịch vụ XPC riêng lẻ là điều kỳ lạ, và có vẻ đây là vấn đề trong chính thiết kế của sandbox. Nhiều người đặt câu hỏi vì sao có nhiều dịch vụ XPC lại có thể bị ứng dụng sandbox truy cập
sandbox-execxử lý việc nàyKhung bảo mật lại tạo ra các vấn đề mới, và không mang lại cảm giác bảo mật được tăng cường hơn
Nhiều khả năng các lỗi liên quan đến XPC sẽ tiếp tục được phát hiện, và nếu Apple không thiết kế lại cách tiếp cận gia cố dịch vụ thì có lẽ các CVE sẽ tiếp tục xuất hiện
Vừa yêu vừa ghét sandbox
macOS không được thiết kế cho các quyền hạn chi tiết, và không thể bổ sung điều đó lên trên công nghệ Mac OS và NeXTSTEP cũ
Trên iOS cũng tồn tại lỗ hổng, và có khoảng 2 tỷ thiết bị đang hoạt động
Các dịch vụ XPC trong miền PID là một cách khéo léo để vượt qua các hạn chế của sandbox, và bản vá của Apple trông như giải pháp tạm thời
Tò mò không biết việc thoát khỏi sandbox có nghĩa là quay về trạng thái không có sandbox, hay là chuyển sang trạng thái có đặc quyền cao hơn