Bảo vệ toàn vẹn hệ thống (SIP) là một chính sách bảo mật tổng thể với mục tiêu ngăn chặn các tệp và quy trình hệ thống khỏi bị sửa đổi bởi các bên thứ ba. Để đạt được điều này, nó có các khái niệm sau:
- Bảo vệ hệ thống tập tin
- Bảo vệ mở rộng hạt nhân
- Bảo vệ thời gian chạy
Bảo vệ hệ thống tập tin
SIP ngăn các bên khác ngoài Apple thêm, xóa hoặc sửa đổi các thư mục và tệp được lưu trữ trong các thư mục nhất định:
/bin
/sbin
/usr
/System
Apple đã chỉ ra rằng các thư mục sau đây có sẵn để các nhà phát triển truy cập:
/usr/local
/Applications
/Library
~/Library
Tất cả các thư mục /usr
ngoại trừ /usr/local
được bảo vệ bởi SIP.
Có thể thêm, xóa hoặc thay đổi các tệp và thư mục được bảo vệ SIP thông qua gói cài đặt được ký bởi cơ quan chứng nhận của chính Apple. Điều này cho phép Apple thực hiện các thay đổi đối với các bộ phận được bảo vệ SIP của HĐH mà không cần thay đổi các biện pháp bảo vệ SIP hiện có.
Cơ quan cấp chứng chỉ trong câu hỏi được Apple dành riêng cho việc sử dụng riêng của họ; Các gói trình cài đặt có chữ ký của nhà phát triển không thể thay đổi các tệp hoặc thư mục được bảo vệ SIP.
Để xác định thư mục nào được bảo vệ, Apple hiện đã xác định hai tệp cấu hình trên hệ thống tệp. Cái chính được tìm thấy ở vị trí bên dưới:
/System/Library/Sandbox/rootless.conf
nơi rootless.conf
liệt kê tất cả các ứng dụng và cấp cao nhất của các thư mục mà SIP đang bảo vệ.
Các ứng dụng
SIP đang bảo vệ các ứng dụng cốt lõi mà OS X cài đặt vào Ứng dụng và Tiện ích ứng dụng. Điều này có nghĩa là sẽ không còn có thể xóa các ứng dụng mà OS X cài đặt, ngay cả từ dòng lệnh khi sử dụng quyền root.
Thư mục
SIP cũng đang bảo vệ một số thư mục và liên kết tượng trưng bên ngoài /Applications
và cấp cao nhất của các thư mục đó cũng được liệt kê trong rootless.conf
.
Ngoài các biện pháp bảo vệ, Apple cũng đã xác định một số ngoại lệ đối với bảo vệ của SIP trong tệp rootless.conf và các ngoại lệ đó được đánh dấu bằng dấu hoa thị. Những miễn trừ từ bảo vệ của SIP có nghĩa là có thể thêm, xóa hoặc thay đổi các tệp và thư mục trong các vị trí đó.
Trong số các trường hợp ngoại lệ đó là:
/System/Library/User Template
- nơi OS X lưu trữ các thư mục mẫu mà nó sử dụng khi tạo thư mục gốc cho các tài khoản mới.
/usr/libexec/cups
- nơi OS X lưu trữ thông tin cấu hình máy in
Apple coi tập tin này là của họ và mọi thay đổi của bên thứ ba đối với nó sẽ bị Apple ghi đè.
Để xem tập tin nào đã được SIP bảo vệ, hãy sử dụng ls
lệnh có dấu gạch ngang O trong Terminal:
ls -O
Các tập tin được bảo vệ SIP sẽ được dán nhãn là hạn chế .
Một điều quan trọng cần biết là ngay cả khi một liên kết tượng trưng được bảo vệ bởi SIP, điều đó không nhất thiết có nghĩa là thư mục mà chúng liên kết đến đang được SIP bảo vệ. Ở cấp độ gốc của ổ đĩa khởi động OS X El Capitan, có một số liên kết tượng trưng được bảo vệ SIP trỏ đến các thư mục được lưu trữ bên trong thư mục cấp gốc có tên private
.
Tuy nhiên, khi nội dung của private
thư mục được kiểm tra, các thư mục mà các liên kết tượng trưng đó không được bảo vệ bởi SIP và cả chúng và nội dung của chúng có thể được di chuyển, chỉnh sửa hoặc thay đổi bởi các quy trình sử dụng quyền root.
Ngoài danh sách các trường hợp ngoại lệ SIP mà Apple đã đặt rootless.conf
, còn có một danh sách ngoại lệ SIP thứ hai. Danh sách này bao gồm một số thư mục và tên ứng dụng cho các sản phẩm của bên thứ ba. Tương tự như vậy rootless.conf
, danh sách loại trừ này là của Apple và mọi thay đổi của bên thứ ba đối với danh sách này sẽ bị Apple ghi đè.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Bảo vệ thời gian chạy
Sự bảo vệ của SIP không giới hạn trong việc bảo vệ hệ thống khỏi những thay đổi của hệ thống tập tin. Ngoài ra còn có các cuộc gọi hệ thống hiện bị hạn chế trong chức năng của họ.
- task_for_pid () / bộ xử lý_set_t Nhiệm vụ () không thành công với EPERM
- Các cổng đặc biệt Mach được đặt lại trên exec (2)
- biến môi trường dyld bị bỏ qua
- Đầu dò DTrace không có sẵn
Tuy nhiên, SIP không chặn sự kiểm tra của nhà phát triển ứng dụng của chính họ khi chúng đang được phát triển. Các công cụ của Xcode sẽ tiếp tục cho phép các ứng dụng được kiểm tra và gỡ lỗi trong quá trình phát triển.
Để biết thêm chi tiết về điều này, tôi khuyên bạn nên xem tài liệu dành cho nhà phát triển của Apple cho SIP .
Bảo vệ mở rộng hạt nhân
SIP chặn cài đặt các phần mở rộng kernel không dấu. Để cài đặt tiện ích mở rộng kernel trên OS X El Capitan có bật SIP, tiện ích mở rộng kernel phải:
- Được ký với ID nhà phát triển để ký chứng chỉ Kexts
- Cài đặt vào / Thư viện / Tiện ích mở rộng
Nếu cài đặt một phần mở rộng kernel không dấu, SIP sẽ cần phải bị vô hiệu hóa trước tiên.
Để biết thêm thông tin về việc quản lý SIP, vui lòng xem liên kết dưới đây:
Bảo vệ toàn vẹn hệ thống - Thêm một lớp khác vào mô hình bảo mật của Apple
sudo
và nhắc mật khẩu đã hoạt động như bình thường / trước đây / dự kiến. Vì vậy, có lẽ câu trả lời là "hầu hết thời gian bạn sẽ không nhận thấy; khi bạn làm, bạn sẽ nhận thấy khó khăn."