Apparmor là gì?


93

Tôi nghe rất nhiều nói về apparmor, tôi muốn biết như sau:

  • Apparmor là gì?
  • Làm thế nào để apparmor làm việc?

Câu trả lời:


92

Nó là gì

Apparmor là một hệ thống Kiểm soát truy cập bắt buộc (hoặc MAC). Nó sử dụng các cải tiến hạt nhân LSM để hạn chế các chương trình đối với một số tài nguyên nhất định. AppArmor thực hiện điều này với các cấu hình được tải vào kernel khi hệ thống khởi động. Apparmor có hai loại chế độ hồ sơ, thực thi và khiếu nại. Hồ sơ trong chế độ thực thi thi hành các quy tắc của hồ sơ đó và báo cáo các nỗ lực vi phạm trong sysloghoặc auditd. Hồ sơ trong chế độ khiếu nại không thực thi bất kỳ quy tắc hồ sơ nào, chỉ ghi nhật ký các hành vi vi phạm.

Trong Ubuntu Apparmor được cài đặt theo mặc định. Nó giới hạn các ứng dụng cho các cấu hình để xác định các tệp và quyền mà chương trình cần truy cập. Một số ứng dụng sẽ đi kèm với các thuộc tính riêng của chúng và nhiều hơn nữa có thể được tìm thấy trong apparmor-profilesgói.

Bạn có thể cài đặt apparmor-profilesbằng cách chạy sudo apt-get install apparmor-profiles.

Tôi tìm thấy một ví dụ tốt về Apparmor trên các diễn đàn Ubuntu mà tôi viết lại cho bài đăng này.

Apparmor là một khung bảo mật ngăn chặn các ứng dụng biến thành ác quỷ. Ví dụ: Nếu tôi chạy Firefox và truy cập một trang web xấu cố cài đặt phần mềm độc hại sẽ xóa homethư mục của tôi , Apparmor có giới hạn đối với Firefox mặc dù ngăn không cho nó làm bất cứ điều gì tôi không muốn (như truy cập nhạc, tài liệu của tôi, v.v.). Cách này ngay cả khi ứng dụng của bạn bị xâm phạm, không có tác hại nào có thể được thực hiện.

Làm thế nào nó hoạt động

Các apparmor-utilsgói chứa các công cụ dòng lệnh để cấu hình AppArmor. Sử dụng nó, bạn có thể thay đổi chế độ thực thi của Apparmor, tìm trạng thái của một hồ sơ tạo hồ sơ mới, v.v.

Đây là những lệnh phổ biến nhất:

Lưu ý: Hồ sơ được lưu trữ trong/etc/apparmor.d/

  • Bạn có thể kiểm tra trạng thái của Apparmor với sudo apparmor_status. Bạn sẽ nhận được một danh sách tất cả các cấu hình * được tải, tất cả các cấu hình ở chế độ thực thi, tất cả các cấu hình ở chế độ khiếu nại, các quy trình được xác định trong thực thi / khiếu nại, v.v.
  • Để đặt một hồ sơ trong chế độ khiếu nại bạn sử dụng sudo aa-complain /path/to/bin, thư mục /path/to/binchương trình ở đâu bin. Ví dụ: đang chạy: sudo aa-complain /usr/bin/firefoxsẽ đặt Firefox ở chế độ khiếu nại.
  • Bạn sử dụng sudo aa-enforce /path/to/binđể thực thi một hồ sơ chương trình.
  • Bạn có thể tải tất cả các cấu hình vào các chế độ khiếu nại / thi hành với sudo aa-complain /etc/apparmor.d/*sudo aa-enforce.d/*tương ứng.

Để tải một hồ sơ vào kernel, bạn sẽ sử dụng apparmor_parser. Bạn có thể tải lại hồ sơ bằng cách sử dụng -rtham số.

  • Để tải một hồ sơ sử dụng : cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a, trong đó in hiệu quả nội dung profile.namevào trình phân tích cú pháp của Apparmor.
  • Để tải lại một hồ sơ, bạn sử dụng -rtham số, như vậy:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
  • Để tải lại tất cả các hồ sơ của Apparmor, hãy sử dụng: sudo service apparmor reload

Để vô hiệu hóa một hồ sơ, bạn liên kết nó với /etc/apparmor.d/disable/việc sử dụng lnnhư thế này: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/sau đó chạy : sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Lưu ý: Đừng nhầm lẫnapparmor_parser -rvớiapparmor_parser -R HỌ KHÔNG PHẢI LÀ CÙNG NHAU!

  • Để kích hoạt lại cấu hình, hãy xóa liên kết tượng trưng đến nó /etc/apparmor.d/disable/sau đó tải nó bằng -atham số.sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Bạn có thể tắt Apparmor với sudo service apparmor stopvà xóa mô-đun hạt nhân bằng cách sử dụngsudo update-rc.d -f apparmor defaults
  • Khởi động Apparmor với sudo service apparmor startvà tải các mô-đun hạt nhân vớisudo update-rc.d apparmor defaults

Hồ sơ

Hồ sơ được lưu trữ trong /etc/apparmor.d/và được đặt tên theo đường dẫn đầy đủ đến hồ sơ thực thi mà chúng cấu hình, thay thế '/' bằng '.'. Ví dụ /etc/apparmor.d/bin.pinglà hồ sơ cá nhân cho pingtrong /bin.

Có hai loại mục chính được sử dụng trong hồ sơ:

  1. Mục nhập đường dẫn xác định những tập tin ứng dụng có thể truy cập.

  2. Các mục khả năng xác định những đặc quyền mà một quá trình có thể sử dụng.

Hãy xem xét hồ sơ cho ping, nằm trong etc/apparmor.d/bin.ping, làm ví dụ.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global>Bao gồm tệp globaltrong thư mục tunables, điều này cho phép các câu lệnh liên quan đến nhiều ứng dụng được đặt trong một tệp chung.

/bin/ping flags=(complain)đặt đường dẫn đến chương trình được định hình và đặt chế độ để khiếu nại.

capability net_rawcho phép ứng dụng truy cập vào CAP_NET_RAW Posix.1ekhả năng.

/bin/ping mixr cho phép ứng dụng đọc và thực thi quyền truy cập vào tập tin.

/etc/modules.conf r,Cung rcấp cho các ứng dụng đọc đặc quyền cho/etc/modules.conf

Lưu ý: Sau khi tạo / chỉnh sửa hồ sơ, bạn cần tải lại hồ sơ để các thay đổi có hiệu lực.

Dưới đây là danh sách các quyền bạn có thể sử dụng:

  • r - đọc
  • w - viết
  • ux - Thực thi không giới hạn
  • Ux - Thực thi không giới hạn - chà môi trường
  • px - Hồ sơ thực hiện rời rạc
  • Px - Thực hiện hồ sơ rời rạc - chà môi trường
  • ix - Kế thừa thực hiện
  • m - cho phép PROT_EXECvới mmap(2)các cuộc gọi
  • l - liên kết

Nguồn


Vì vậy, nó giống như một chương trình hoạt động như một người dùng và không có quyền sửa đổi hầu hết các tệp trên hệ thống?
Izkata

Có và không. Bạn thiết lập một hồ sơ xác định những gì một ứng dụng nhất định có thể làm. Sau đó, bạn thêm các chương trình vào hồ sơ đó và giới hạn những gì các chương trình trong hồ sơ đó được phép làm. Vì vậy, nó giống như một người dùng vì họ chỉ có thể truy cập những gì quản trị viên (bạn) nói rằng họ có thể trong hồ sơ.
Seth

À, vậy hồ sơ giống như nhóm người dùng cho các chương trình;)
Izkata

Có rất nhiều như thế;)
Seth

Bạn có nghĩ rằng, apparmor có thể được sử dụng để chặn mọi kết nối internet và cho biết ai đang cố gắng truy cập nó? và dựa trên nhật ký đó, chúng tôi tạo quyền cho mỗi ứng dụng? ý tưởng là làm cho nó hoạt động như Zonalarm trên window $, và giống như "tường lửa trên mỗi ứng dụng" cũ trên linux như LeopardFlower và ProgramGuard (những thứ này dường như không thể biên dịch được nữa), và cũng có một cái mới gọi là Douane và nó sử dụng một mô-đun hạt nhân để làm cho mọi thứ hoạt động.
Sức mạnh Bảo Bình

6

AppArmor là một hệ thống Kiểm soát truy cập bắt buộc (MAC), là một cải tiến hạt nhân (LSM) để giới hạn các chương trình trong một bộ tài nguyên giới hạn. Mô hình bảo mật của AppArmor là liên kết các thuộc tính kiểm soát truy cập với các chương trình hơn là với người dùng. Sự giam cầm AppArmor được cung cấp thông qua các cấu hình được tải vào kernel, thường là khi khởi động. Hồ sơ AppArmor có thể ở một trong hai chế độ: thực thi và khiếu nại. Hồ sơ được tải trong chế độ thực thi sẽ dẫn đến việc thực thi chính sách được xác định trong hồ sơ cũng như báo cáo các nỗ lực vi phạm chính sách (thông qua syslog hoặc audd). Hồ sơ trong chế độ khiếu nại sẽ không thực thi chính sách mà thay vào đó báo cáo các nỗ lực vi phạm chính sách.

AppArmor khác với một số hệ thống MAC khác trên Linux ở chỗ nó dựa trên đường dẫn, cho phép trộn các cấu hình chế độ thực thi và khiếu nại, sử dụng các tệp để dễ dàng phát triển và có rào cản thấp hơn nhiều so với các hệ thống MAC phổ biến khác.

AppArmor là một công nghệ đã được thiết lập lần đầu tiên nhìn thấy trong Immunix và sau đó được tích hợp vào Ubuntu, Novell / SUSE và Mandriva. Chức năng Core AppArmor nằm trong nhân Linux chính từ 2.6.36 trở đi; công việc đang diễn ra bởi AppArmor, Ubuntu và các nhà phát triển khác để hợp nhất chức năng AppArmor bổ sung vào nhân chính.

Tôi có một vài Liên kết hữu ích khác cho bạn: Wiki.Ubfox.com Ubuntuforums.org

Hướng dẫn Apparmor cho Ubuntu 12.04 & Ubuntu 12.10

Hy vọng rằng sẽ giúp bạn.


3

Đây là một trích dẫn từ wiki Apparmor :

AppArmor là một hệ thống bảo mật ứng dụng Linux hiệu quả và dễ sử dụng. AppArmor chủ động bảo vệ hệ điều hành và các ứng dụng khỏi các mối đe dọa bên ngoài hoặc bên trong, thậm chí là các cuộc tấn công không có ngày, bằng cách thực thi hành vi tốt và ngăn chặn các lỗ hổng ứng dụng chưa biết bị khai thác. Các chính sách bảo mật của AppArmor xác định hoàn toàn tài nguyên hệ thống mà các ứng dụng riêng lẻ có thể truy cập và với các đặc quyền nào. Một số chính sách mặc định được bao gồm trong AppArmor và sử dụng kết hợp các công cụ phân tích tĩnh và dựa trên học tập tiên tiến, các chính sách AppArmor cho các ứng dụng thậm chí rất phức tạp có thể được triển khai thành công trong vài giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.