HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN II
BÁO CÁO
BẢO MẬT THÔNG TIN
Tên đồ án: SECURITY ENHANCED LINUX
(SELinux)
Giáo viên hƣớng dn : Thy Lê Phúc
Nhóm thc hin : _Ngô Phi Công
_Trƣơng Công Khá
_Hoàng Phi Long
Lp : Đ06THA1
TP H Chí Minh-11/2009
1
I- TNG QUAN V SELINUX:
1.1 SELinux là gì?
SeLinux là các phiên bn Linux gia c thêm h thng bo mt ca H
điều hành. Nghĩa vẫn mt phiên bản linux bình thƣờng nhƣ Redhat hay
Fedora Core... nhƣng i đt thêm h thng Security Enhanced. SELinux y
dựng chế ràng buc (security enforcement) cht ch hơn, thông qua hệ thng
chính sách bo mật (security policy) đƣợc định nghĩa da trên các khái nim ca
các mô hình Access control nhƣ MAC, DAC, RBAC...
1.2 Lch s hình thành SELinux:
m 1973, hai ông David Bell Leonard LaPadula đã trình y ra một
khái nim v mt h thống đa mức security, da vào các khái nim này đến cui
thp niên 80, chính ph M mi phát trin ra Trusted Computer System
Evaluation Criteria (TCSEC). TCSEC định nghĩa ra 6 mức để phân cp security
cho h thng đó C1, C2, B1, B2, B3, A1. Trong đó các mức security C1
C2 tƣơng ng với cơ chế DAC, các mc t B1 tr lên tƣơng ng vi chế
MAC hay cao hơn. Trong thập niên 90, các chuyên gia ca Cc An ninh Quc
gia M (NSA) phi hp vi Secure Computing Corporation (công ty này hin gi
đang phát trin loi firewall s dụng chế MAC thƣờng đƣợc dùng cho các
t chc quân s quc phòng ca M xây dng nên một chế dymanic
security policies gọi Flask đƣợc phát trin lên t project Fluke. Sau đó NSA
phi hp với Network Associates và MITRE để đƣa cơ chế Flask vào trong
Linux, và chính thc công b SELinux vào tháng 12 năm 2000.
Đến thi đim hiện nay, SELinux đã đƣợc Redhat SuSe đƣa vào trong
các bn phân phi riêng ca mình, d nhƣ Redhat Enterprise Linux 4.0 vi
SELinux đƣợc thc hin theo cách riêng ca Redhat gi "targeted" cu hình
sn cho các dch v nhƣ Apache http, Bind Named DNS, Squid web caching
services… Khi sử dụng cơ chế SELinux cho các dch v Internet này thì h thng
s vô cùng an toàn, và vấn đề lo ngi v chiếm quyn kim soát toàn b h thng
thông qua các security bugs ca các public Internet services đã đƣợc loi tr.
1.3 Mt s cơ chế điu khin truy cp trong SELinux:
1.3.1 Phương thc kim soát vic truy cp tài nguyên theo kiu tùy quyn
- Dicretionary Access Control (DAC)
Điu khin truy cp tùy quyn - DAC là mt chính sách truy cp mà ch
nhân ca tập tin hay ngƣời ch ca một tài nguyên nào đấy t định đoạt. Ch
nhân ca quyết định ai ngƣời đƣợc phép truy cp tp tin những đặc
quyn (privilege) nào là nhng đặc quyn ngƣời đó đƣợc phép thi hành.
Ví d nhƣ root có toàn quyn truy cp h thng thâm nhp vào tt c mi
tài nguyên ca mi users, theo cách thc này nếu mt chƣơng trình hay process
2
nào đó chạy dƣới quyn root mà b khai thác li b đoạt quyn kim soát thì
xem nhƣ toàn bộ tài nguyên h thng b kim soát.
Hai quan nim quan trng trong truy cp tùy quyn là:
- Quyn s hu tp tin và d liu (File and data ownership): Bt c một đối
ng nào trong mt h thng cũng phải mt ch nhân là ngƣời s hu nó.
Chính ch truy cập các đối tƣợng do ch nhân tài nguyên quyết đnh - nhng
tài nguyên bao gm: các tập tin, các thƣ mục, d liu, các tài nguyên ca h
thng... Theo lý thuyết, đối tƣợng nào không có ch s hu thì đối tƣng đó b b
lơ, không đƣợc bo vệ. Thông thƣờng t ch nhân ca tài nguyên chính ngƣi
đã kiến tạo nên tài nguyên (nhƣ tp tin hoc thƣ mục).
- Các quyn và phép truy cp: Đây những quyn khng chế nhng thc
thi nguyên ch nhân ca tài nguyên ch định cho mi mt ngƣời hoc mi
một nhóm ngƣời dùng.
Điu khin truy cp tùy quyn th đƣc áp dng thông qua nhiu k thut
khác nhau:
+ Danh sách điu khin truy cp (Access control list - ACL) đnh danh các
quyền phép đƣợc ch định cho mt ch th hoc mt đối tƣợng. Danh sách
điều khin truy cp cho ta mt phƣơng pháp linh hoạt để áp dng quy chế điu
khin truy cp tùy quyn.
+ Kim tra truy cập trên sở vai trò (role-based access control) ch định
cách nhóm thành viên da trên vai trò ca t chc hoc chức năng của các vai trò.
Chiến lƣợc này giúp ti gim việc điều hành qun quyn và phép truy cp.
1.3.2 Phương thc kim soát vic truy cp tài nguyên theo kiu phân định
quyn do h thống áp đặt - Mandatory Access Control (MAC):
SELinux ng cƣờng thêm cho chế DAC với phƣơng ch kiểm soát vic
truy cp tài nguyên do h thng áp đặt (MAC). Theo cách này mi process hay
chƣơng trình đang chạy b ép vào mt khu vc gii hn (domain) và s không th
nào đi ra ngoài giới hn đó đƣợc. Nhƣ vậy khi mt process hay chƣơng trình b
khai thác li b đoạt đƣợc quyn kim soát thì ch b nh hƣởng trong gii
hn bit lập đó thôi chứ toàn b h thng s không b nh hƣởng.
Các đặc điểmbản ca MAC khi tăng cƣờng cho DAC nhƣ sau:
- MAC phân định quyn truy cp tài nguyên ngay c đến mức cơng trình
hay process, so vi DAC ch áp đặt quyn truy cp tài nguyên ch da vào quyn
hn chức năng ca users.
- Nếu MAC đã áp đặt vào mt tài nguyên nào nó t ngay c ch s hu
(owner) ca tài nguyên đó cũng không thể gt b nó đi đƣợc.
Nhƣ vy, nh chế này nếu một chƣơng trình hay process nào đó chy
dƣới quyn root mà b khai thác li và b đot quyn kiểm soát thì ngƣời tnng
ch kim soát đƣợc những MAC áp đt cho khu vc gii hn của chƣơng
3
trình hay process đó đang chạy không th đng chm sang các khu vc khác
đƣợc, gim thiu đƣợc tác hi lên toàn b h thng.
Hai khái nim quan trọng trong cơ chế MAC là:
+ Nhãn hiu nhy cm (sensitivity label): Trong h thống dùng điểu khin
truy cp bt buc, h thng ch định mt nhãn hiu cho mi ch th (subject)
mỗi đối tƣợng (object) trong h thng. Nhãn hiu nhy cm ca mt ch th xác
định mc tin cn cn thiết để truy cp.
+ Xut ngoi và nhp ni d liu (Data import and export): Điu khin vic
nhp ni thông tin t mt h thng khác xut ngoi thông tin sang các h
thng khác mt chức năng trọng yếu trong các h thng s dụng điu khin
truy cp bt buc. Nhim v ca vic xut nhp thông tin phải đảm bo c
nhãn hiu nhy cm đƣợc gi gìn một cách đúng đắn và nhim v này phi đƣợc
thc hin sao cho các thông tin nhy cm phi đƣợc bo v trong bt k tình
hung nào.
Có hai phƣơng pháp đƣợc dùng ph biến để áp dng nguyên tc điều khin
truy cp bt buc:
* Điu khin truy cp dùng chính sách (role-based access control): Vic
điều khin thuc loi này định nghĩa thêm những điều kin c th đối vi vic
truy cp một đối tƣợng mà chúng ta yêu cu. Tt c các h thống dùng điều khin
truy cp bt buộc đều thc hin mt hình thc đã đƣợc đơn giản hóa ca th loi
điều khin truy cp dùng chính sách, nhm quyết đnh cho phép hay t chi yêu
cu truy cp, bng cách đối chiếu nhãn hiu nhy cm ca ch th đối tƣợng.
* Điu khin truy cp dùng b trí mắt lƣới (lattice-based access control):
Đây là phƣơng pháp ngƣi ta s dng đối vi nhng quyết đnh phc tp trong
điều khin truy cp vi s liên quan bi s các đối tƣợng và ch th. Mô hình mt
i là mt cu trúc toán học, nó định nghĩa các giá trị cn dƣới ln nht (greatest
lower-bound) và cn trên nh nht (least upper-bound) cho nhng cp nguyên t,
chng hạn nhƣ cặp nguyên t bao gm mt ch th và một đối tƣợng.
1.3.3 Phương thc kim soát vic truy cp tài nguyên trên s vai trò -
Role-Based Access Control (RBAC)
Trong an ninh đối vi các h thng máy nh, điều khin truy cập trên sở
vai tlà mt trong s các phƣơng pháp điều khin và đảm bo quyn s dng
cho ngƣời dùng. RBAC khác vi hình thc MAC và DAC truyn thng. MAC và
DAC trƣớc đây là hai mô hình duy nhất đƣc ph biến trong điều khin truy cp.
Nếu mt h thng không dùng MAC thì ngƣời ta ch có th cho rng h thng đó
dùng DAC, hoặc ngƣợc li. Song cuc nghiên cu trong nhng năm 1990 đã
chng minh rng RBAC không phi là MAC hoc DAC.
4
Trong ni b mt t chức, các vai trò (roles) đƣợc kiến tạo để đảm nhn các
chức năng ng việc khác nhau. Mỗi vai trò đƣợc gn lin vi mt s quyn hn
cho phép nó thao tác mt s hoạt động c th ('permissions').
ngƣời dùng không đƣợc cp phép mt cách trc tiếp, song ch tiếp thu
đƣợc nhng quyn hn thông qua vai trò ca h, vic qun quyn hn ca
ngƣời dùng tr thành mt việc đơn gin, ngƣi ta ch cn ch định nhng vai
trò thích hợp cho ngƣời dùng mà thôi.
RBAC khác vi c danh ch điều khin truy cp (Access control list -
ACL) đƣợc dùng trong h thống điều khin truy cp tùy quyn (DAC), ch, nó
ch đnh các quyn hn ti tng hoạt động c th với ý nghĩa trong quan t
chc, thay ti các đối tƣợng d liu h tng. Chng hn, một danh sách điu
khin truy cp có th đƣợc dùng để cho phép hoc t chi quyn truy cp viết
mt tp tin h thng (system file), song không i cho ta biết phƣơng cách c
th để thay đổi tập tin đó. Vic ch định quyn hn cho phép thi hành mt thao
tác nhất định mt việc làm đầy ý nghĩa, các thao tác đã đƣợc phân đnh tinh
tế và minhân thao tác có một ý nghĩa riêng trong chƣơng trình ng dng.
1.4 Mô hình hot động ca SELinux:
Khi mt ch th (chng hạn nhƣ một ng dng, tiến trình), th truy cp vào
một đối tƣợng (chng hn nhƣ tp tin, thiết b), máy ch dùng để thi hành c
chính sách (policy enforcement server) trong kernel s kim tra access vector
cache (AVC), mt b nh cha nhng quyết đnh ca SELinux trƣớc đó. Nếu
mt quyết đnh không th tạo đƣợc sở trên d liu ca AVC, yêu cu s tiếp
tc gi đến security server. s tìm kiếm ng cnh bo mt (security context)
ca ch th đối tƣng trong ma trn. Quyn truy cập sau đó s đƣc chp nhn
hoc t chi. Vi AVC, nếu quyn truy cp b t chi t s đƣc thông o
trong file /var/log/messages. Ng cnh bo mt ca ch th và đối tƣợng đƣợc áp
dng t việc i đặt chính sách, nó cung cấp thông tin đƣa vào ma trận ca
security server. Nhƣ hình minh họa dƣới đây: