SE Linux
So sánh với AppArmor

SELinux đại diện cho một trong một số cách tiếp cận có thể đối với vấn đề hạn chế các hành động mà phần mềm đã cài đặt có thể thực hiện. Một lựa chọn phổ biến khác được gọi là AppArmor và có sẵn trên SUSE Linux Enterprise Server (SLES), openSUSE, và các nền tảng dựa trên Debian. AppArmor được phát triển như một thành phần của nền tảng Immunix Linux hiện không còn tồn tại. Vì AppArmor và SELinux khác nhau hoàn toàn, chúng tạo thành các lựa chọn thay thế khác nhau để kiểm soát phần mềm. Trong khi SELinux định nghĩa lại một số khái niệm nhất định để cung cấp quyền truy cập vào một tập hợp các lựa chọn chính sách rõ ràng hơn, AppArmor được thiết kế đơn giản bằng cách mở rộng cùng một ngữ nghĩa quản trị được sử dụng cho DAC đến mức kiểm soát truy cập bắt buộc.
Có một số khác biệt chính:
Một sự khác biệt quan trọng là AppArmor xác định các đối tượng hệ thống file theo tên đường dẫn thay vì inode. Điều này có nghĩa là một file không thể truy cập được có thể truy cập được dưới AppArmor khi liên kết cứng được tạo với nó, trong khi đó, Selinux sẽ từ chối truy cập thông qua liên kết cứng mới được tạo.
Kết quả là, AppArmor có thể nói không phải là một hệ thống thực thi kiểu, vì các file không được gán một kiểu; thay vào đó, chúng chỉ được tham chiếu trong một file cấu hình.
SELinux và AppArmor cũng khác nhau đáng kể về cách chúng được quản lý và cách chúng tích hợp vào hệ thống.
Do nỗ lực tái tạo các điều khiển DAC truyền thống với thực thi cấp MAC, nên bộ hoạt động của AppArmor cũng nhỏ hơn đáng kể so với các hoạt động có sẵn trong hầu hết các triển khai của Selinux. Ví dụ: tập hợp các hoạt động của AppArmor bao gồm: đọc, viết, nối, thực thi, khóa và liên kết. Hầu hết các triển khai SELinux sẽ hỗ trợ số lượng yêu cầu hoạt động lớn hơn. Ví dụ: SELinux thường sẽ hỗ trợ các quyền tương tự, nhưng cũng bao gồm các điều khiển cho mknod, liên kết với các ổ cắm mạng, sử dụng ngầm các khả năng POSIX, tải và dỡ bỏ các mô-đun hạt nhân, các phương tiện khác nhau để truy cập bộ nhớ chia sẻ, v.v.
Không có kiểm soát nào trong AppArmor cho các khả năng POSIX bị ràng buộc về mặt phân loại. Do việc triển khai các khả năng hiện tại không có khái niệm về một chủ đề cho hoạt động (chỉ có tác nhân và hoạt động), nên thường là công việc của lớp MAC để ngăn chặn các hoạt động đặc quyền trên các file bên ngoài phạm vi kiểm soát được thực thi của diễn viên (tức là "Sandbox"). AppArmor có thể ngăn chính sách của chính mình bị thay đổi và ngăn hệ thống tệp không được gắn kết / không bị chặn, nhưng không có gì ngăn người dùng bước ra ngoài phạm vi kiểm soát đã được phê duyệt của họ.
Ví dụ, có thể được coi là có lợi cho nhân viên của bộ phận trợ giúp để thay đổi quyền sở hữu hoặc quyền trên một số tệp nhất định ngay cả khi họ không sở hữu chúng (ví dụ: trên chia sẻ file của bộ phận). Rõ ràng là bạn không muốn cung cấp quyền người dùng root trên hộp để bạn cung cấp cho họ CAP_FOWNER hoặc CAP_DAC_OVERRIDE. Trong SELinux, bạn (hoặc nhà cung cấp nền tảng của bạn) có thể định cấu hình SELinux để từ chối tất cả các khả năng đối với người dùng không được kiểm soát, sau đó tạo các miền hạn chế để nhân viên có thể chuyển sang sau khi đăng nhập, một trong những có thể thực hiện các khả năng đó, nhưng chỉ trên các file của loại phù hợp.
Không có khái niệm về bảo mật đa cấp với AppArmor, do đó không có triển khai BLP hay Biba cứng.
AppArmor được thực hiện bằng cách sử dụng các file flat thông thường. SELinux theo mặc định trong hầu hết các triển khai) sử dụng kết hợp các file flat (được quản trị viên và nhà phát triển sử dụng để viết chính sách có thể đọc được của con người trước khi được biên dịch) và các thuộc tính mở rộng.
SELinux hỗ trợ khái niệm "máy chủ chính sách từ xa" (có thể định cấu hình qua /etc/selinux/semanage.conf) làm nguồn thay thế cho cấu hình chính sách. Quản lý trung tâm của AppArmor thường phức tạp đáng kể vì các quản trị viên phải quyết định giữa các công cụ triển khai cấu hình được chạy dưới quyền root (để cho phép cập nhật chính sách) hoặc được định cấu hình thủ công trên mỗi máy chủ.