t_rex

New Member

Download miễn phí Đồ án Security enhanced linux (selinux)





Kiến trúc máy chủ chính sách có một số điểm mạnh, từ thêm vào cho đến
loại bỏ các trách nhiệm của kernel cho các nguồn tài nguyên userspace và phân
định mức truy cập tinh tế để quản lý chính sách. Chúng ta có thể mở rộng giao
tiếp của PMS cho phép truy cập mạng từ xa để quản lý chính sách phân tán. Các
PMS và USSS đƣợc thiết kế để cho phép đăng ký thời gian thực của các lớp đối
tƣợng, phá vỡ những phụ thuộc cho userspace object manager tồn tại trong hạt
nhân. Sự khác biệt giữa hai phƣơng pháp tiếp cận đƣợc che giấu bởi libselinux
cung cấp tƣơng thích với công việc hiện tại. Cuối cùng, Phần mềm S và USSS đƣợc thiết
kế nhƣ các dịch vụ riêng biệt để cho phép một hay cả hai sẽ đƣợc sử dụng mà
không có sự khác biệt. Ví dụ, trong một hệ thống nơi đƣợc phân định tinh tế
chính sách truy cập là không cần thiết, các USSS có thể đƣợc sử dụng một mình
để hỗ trợ các userspace object server khác



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

kiến tạo để đảm nhận các
chức năng công việc khác nhau. Mỗi vai trò đƣợc gắn liền với một số quyền hạn
cho phép nó thao tác một số hoạt động cụ thể ('permissions').
Vì ngƣời dùng không đƣợc cấp phép một cách trực tiếp, song chỉ tiếp thu
đƣợc những quyền hạn thông qua vai trò của họ, việc quản lý quyền hạn của
ngƣời dùng trở thành một việc đơn giản, và ngƣời ta chỉ cần chỉ định những vai
trò thích hợp cho ngƣời dùng mà thôi.
RBAC khác với các danh sách điều khiển truy cập (Access control list -
ACL) đƣợc dùng trong hệ thống điều khiển truy cập tùy quyền (DAC), ở chỗ, nó
chỉ định các quyền hạn tới từng hoạt động cụ thể với ý nghĩa trong cơ quan tổ
chức, thay vì tới các đối tƣợng dữ liệu hạ tầng. Chẳng hạn, một danh sách điều
khiển truy cập có thể đƣợc dùng để cho phép hay từ chối quyền truy cập viết
một tập tin hệ thống (system file), song nó không nói cho ta biết phƣơng cách cụ
thể để thay đổi tập tin đó. Việc chỉ định quyền hạn cho phép thi hành một thao
tác nhất định là một việc làm đầy ý nghĩa, vì các thao tác đã đƣợc phân định tinh
tế và mỗi cá nhân thao tác có một ý nghĩa riêng trong chƣơng trình ứng dụng.
1.4 Mô hình hoạt động của SELinux:
Khi một chủ thể (chẳng hạn nhƣ một ứng dụng, tiến trình), thử truy cập vào
một đối tƣợng (chẳng hạn nhƣ tập tin, thiết bị), máy chủ dùng để thi hành các
chính sách (policy enforcement server) trong kernel sẽ kiểm tra access vector
cache (AVC), là một bộ nhớ chứa những quyết định của SELinux trƣớc đó. Nếu
một quyết định không thể tạo đƣợc cơ sở trên dữ liệu của AVC, yêu cầu sẽ tiếp
tục gửi đến security server. Nó sẽ tìm kiếm ngữ cảnh bảo mật (security context)
của chủ thể và đối tƣợng trong ma trận. Quyền truy cập sau đó sẽ đƣợc chấp nhận
hay từ chối. Với AVC, nếu quyền truy cập bị từ chối thì nó sẽ đƣợc thông báo
trong file /var/log/messages. Ngữ cảnh bảo mật của chủ thể và đối tƣợng đƣợc áp
dụng từ việc cài đặt chính sách, nó cung cấp thông tin đƣa vào ma trận của
security server. Nhƣ hình minh họa dƣới đây:
5
1.5 Lợi ích của việc sử dụng SeLinux:
- Tất cả các tiến trình và file đƣợc gắn nhãn với một kiểu. Mỗi kiểu định
nghĩa một tên miền cho các tiến trình, và một kiểu cho các file. Các tiến trình
đƣợc tách riêng bằng cách chạy trên các tên miền của của mỗi tiến trình. Và các
rule của Selinux policy định nghĩa cách các tiến trình tƣơng tác với file, cũng nhƣ
cách thức các tiến trình tƣơng tác với nhau. Truy cập chỉ đƣợc cho phép nếu tồn
tại một Selinux policy rule mà đặc biệt cho phép nó truy cập.
- SELinux có thể đƣợc sử dụng để thực thi dữ liệu bảo mật và tính toàn vẹn,
cũng nhƣ bảo vệ các quá trình từ đầu vào không đáng tin cậy.
- Selinux nhƣ một thủ tục hành chính, đƣợc thi hành trên toàn bộ hệ thống
và không đƣợc thiết lập theo ý ngƣời dùng.
- Giảm bớt thiệt hại bởi các cuộc tấn công đặc quyền gây ra.
VD: Khi những tiến trình chạy trong những tên miền, chúng đƣợc tách riêng
ra. Và các rule của SeLinux policy quy định cách thức những tiến trình truy cập
đến file và những tiến trình khác. Nếu một tiến trình bị tấn công, những kẻ tấn
công chỉ có thể truy cập đến những chức năng bình thƣờng của tiến trình đó, và
tới những file đã đƣợc cấu hình cho phép truy cập tới.
6
II- KIẾN TRÚC BẢO MẬT SELINUX:
2.1 Các ngữ cảnh bảo mật được áp dụng trong SeLinux.
Việc kiểm soát truy cập tài nguyên trên các hệ điều hành đƣợc dựa vào một
vài loại thuộc tính quản lý truy cập kết hợp với các đối tƣợng (file, socket,
network host) và chủ thể (application, process). Tất các các đối tƣợng và chủ thể
này đều có một ngữ cảnh bảo mật riêng kết hợp cùng. Một ngữ cảnh bảo mật
(security context ) có ba thành phần chính: ngƣời dùng (user), vài trò (role) và
một mã loại (type Identifier) và có định dạng format nhƣ sau:
Các mã kiểu chuỗi nhận dạng giữa các thành phần đƣợc định nghĩa trong các
phần chính sách (policy) của SELinux (và sẽ đƣợc thảo luận kĩ hơn ở phần sau).
Bây giờ ta chỉ cần hiểu đơn giản rằng một security context đúng phải có một user,
role và mã lọai phù hợp với các yêu cầu về chính sách bảo mật của Selinux.
Thông thƣờng để hiện thị các ngữ cảnh bảo mật của các đối tƣợng và chủ thể
trong Selinux, ta thƣờng thêm đuôi –Z vào phần các câu lệnh nhƣ:
Ls –Z : hiển thị security context của các đối tƣợng file hệ thống
Ps –Z : hiển thị security context của các tiến trình trong hệ thống
Id –Z : hiển thị cho user, role và type của user hiện thời.
2.2 So sánh giữa Linux chuẩn và SeLinux.
Để hiểu rõ hơn về SeLinux, ta sẽ làm một phép so sánh nhỏ của security
context với Linux chuẩn. Trong Linux chuẩn, các thuộc tính quản lý truy cập của
1 chủ thể chính là user và group ID kết hợp với tất cả tiến trình thông qua cấu
trúc tiến trình trong hệ thống. Các thuộc tính này đƣợc bảo vệ bởi hệ thống và chỉ
đƣợc thay đổi thông qua các công cụ quản trị nhƣ tiến trình login và chƣơng trình
setuid. Đối với các đối tƣợng nhƣ file, inode (index node là một khái niệm để lƣu
thông tin cơ bản nhƣ file type, permission, Owner,… của đối tƣợng) chứa một tập
các bit về chế độ truy cập, ID của group và file user. Ngƣời ta dùng tập kết hợp
của 3 bit read/write/excute để quản lý quyền truy cập.
system_u:eek:bject_r:passwd_exec_t:s0:c0.c2 - s2: c0.c1
user:role:type:sensitivity[:category,…][-sensitivity[:category,…]]
7
Trong SeLinux, các thuộc tính quản lý truy cập luôn luôn gồm 3 phần (user,
role, type). Tất cả các đối tƣợng và chủ thể trong hệ điều hành đều có một ngữ
cảnh truy cập kết hợp giữa 3 thành phần này. Trong khi bản Linux chuẩn dùng ID
của tiến trình dành cho từng user, group; chế độ truy cập của file và các ID cho
file để cấp quyền truy cập tài nguyên hay ko, bản SeLinux dùng các ngữ cảnh bảo
mật của một tiến trình và các đối tƣợng để cấp quyền truy cập.
Bảng so sánh quyền quản lý truy cập giữa Linux chuẩn và các thuộc tính
đƣợc thêm vào trong SeLinux:
Bản Linux chuẩn SeLinux thêm vào
Các thuộc tính bảo mật của
tiến trình
Các user và group ID Ngữ cảnh bảo mật
Các thuộc tính bảo mật cho đối
tƣợng
Chế độ truy cập và các
ID của user và group
trên file
Ngữ cảnh bảo mật
Các điểm căn bản cho quản lý
truy cập
Việc xử lý các ID của
user/group và chế độ
truy cập dựa vào ID của
user/group trên file đó.
Quyền đƣợc xem
xét giữa kiểu tiến
trình và kiểu file
Trong SeLinux, mọi việc truy cập đều phải đƣợc cấp quyền một cách rõ ràng,
không có cái niệm cho ―truy cập theo mặc định‖ không quan tâm tới user, group
ID nào. Tức là trong SELinux không có khái niệm superuser nhƣ root trong
Linux chuẩn. Việc truy cập đƣợc xác định nhờ thông tin của loại chủ thể (subject)
và loại đối tƣợng đƣợc truy cập (object) bằng cách dùng quy tắc allow (cho phép).
Một quy tắc allow gồm bốn thành phần:
- Các loại nguồn truy cập (source types): Thông thƣờng là các loại tiến trình
truy cập đến tài nguyên.
- Loại đích đến (ta...
 

Các chủ đề có liên quan khác

Top