Giới thiệu về bảo mật trong hệ điều hành | Bài tập lớn học phần Hệ điều hành | Trường Đại học Phenikaa

Hệ điều hành có vai trò to lớn trong việc định hình trải nghiệm sử dụng máy tính của người dùng. Nó giúp đơn giản hóa quá trình tương tác với phần cứng phức tạp, bằng cách cung cấp một bộ giao diện lập trình ứng dụng (API) cho các nhà phát triển phần mềm, giúp họ tạo ra các ứng dụng có thể chạy trên nền tảng đó mà không cần phải quan tâm đến chi tiết cụ thể của phần cứng. Bên cạnh việc quản lý tài nguyên phần cứng, hệ điều hành còn có trách nhiệm quản lý và cấp phát bộ nhớ, quản lý tập tin, quản lý quyền truy cập và bảo mật, cũng như giám sát việc thực thi của các chương trình. Qua đó, nó đảm bảo rằng mỗi ứng dụng và dịch vụ được cấp phát một lượng tài nguyên phù hợp, và các quy trình không xâm phạm lẫn nhau, giữ cho hệ thống ổn định và an toàn. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời bạn đón xem.

TRƯỜNG ĐẠI HỌC PHENIKAA KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
HỆ ĐIỀU HÀNH
GIỚI THIỆU VỀ BẢO MẬT TRONG HỆ ĐIỀU HÀNH
Giảng viên hướng dẫn: Trần Đăng Hoan
Nhóm 24 - Hệ iều hành-1-2-23(N07)
Sinh viên thực hiện: Bùi Việt Quang (21010614)
Nguyễn Văn Khải (21011609)
Ngành/ chuyên ngành: Công nghệ thông tin
Hà Nội, tháng 03 năm 2024
1
LỜI CẢM ƠN
Chúng em xin cảm ơn Thầy Trần Đăng Hoan ã tận tình giảng dạy và hướng dẫn,
giúp ỡ chúng em hoàn thành báo cáo bài tập lớn môn hệ iều hành về ề tài “ Giới
thiệu về bảo mật trong hệ iều hành”
2
MỤC LỤC
LỜI MỞ ĐẦU ........................................................................................................ 3
PHẦN I: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ....................................................... 4
HỆ ĐIỀU HÀNH LÀ GÌ .................................................................................... 4
1. THÀNH PHẦN CHÍNH CỦA HỆ ĐIỀU HÀNH - OPERATING
SYSTEM ....................................................................................................... 4
2. NHỮNG LOẠI HỆ ĐIỀU HÀNH (OS) .................................................... 5
3. CÁC CHỨC NĂNG CƠ BẢN CỦA HỆ ĐIỀU HÀNH ............................ 6
4. MỤC TIÊU NHIỆM VỤ CỦA HỆ ĐIỀU HÀNH (OS) ............................ 7
PHẦN II : GIỚI THIỆU VỀ BẢO MẬT HỆ ĐIỀU HÀNH (SECURITY -
INTRO) .................................................................................................................. 9
CHƯƠNG 1: GIỚI THIỆU CHUNG ................................................................. 9
1. Bảo mật trong hệ iều hành là gì ? .............................................................. 9
2. Tại sao bảo mật hệ iều hành lại quan trọng ? ............................................. 9
3. Góc ộ và thách thức của bảo mật hệ iều hành .......................................... 10
CHƯƠNG 2: CẦN LÀM GÌ ĐỂ BẢO MẬT HỆ ĐIỀU HÀNH BẢO VỆ
MÁY TÍNH TỐT NHẤT ................................................................................. 11
CHƯƠNG 3: MỤC TIÊU VÀ CHÍNH SÁCH BẢO MẬT ............................. 12
1. Mục tiêu bảo mật cơ bản .......................................................................... 12
2. Một số khía cạnh khác của bảo mật hệ iều hành ..................................... 13
3. Mục tiêu của bảo mật hệ iều hành ................................................................... 13
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG BẢO MẬT HỆ ĐIỀU HÀNH ........... 14
CHƯƠNG 5: KHÁI NIỆM CƠ BẢN VỀ BẢO MẬT HỆ ĐIỀU HÀNH ....... 16
1. Khái niệm ................................................................................................. 16
2. Xử lý quy trình và bảo mật ...................................................................... 17
3. Lời gọi hệ thống trong hệ iều hành .......................................................... 17
CHƯƠNG 6: TỔNG KẾT ............................................................................... 18
PHẦN III: KẾT LUẬN ........................................................................................ 19
3
LỜI MỞ ĐẦU
Trong thời đại thông tin số hiện nay, hệ điều hành không chỉ giữ vai trò là nền
tảng cơ bản cho mọi hoạt động của thiết bị điện tử, từ máy tính cá nhân, điện thoi
thông minh, đến các hệ thống máy chủ quy lớn, còn yếu tố quyết định
đến khả năng bảo mật thông tin trong kỷ nguyên kỹ thuật số. Hệ điều hành quản
lý và điều phối mọi hoạt động của phần cứng, cung cấp giao diện người dùng trực
quan, đồng thời làm cầu nối cho các ứng dụng phần mềm để thực thi các tác vụ.
Điều này đòi hỏi hệ điều hành phải được thiết kế với khả năng đảm bảo an toàn,
bảo mật thông tin và dữ liệu trước sự ngày càng phát triển của các mối đe dọa an
ninh mạng.
Trong bối cảnh phát triển nhanh chóng của công nghệ thông tin truyền
thông, cùng với đó sự gia tăng không ngừng của các mối đe dọa mạng, việc đảm
bảo an ninh cho hệ điều hành đã trở thành một trong những ưu tiên hàng đầu. Các
cuộc tấn công mạng ngày càng trở nên tinh vi phức tạp hơn, từ việc lợi dụng
các lỗ hổng bảo mật nhỏ nhất cho đến việc triển khai các chiến dịch tấn công mục
tiêu, đòi hỏi các hệ điều hành không chỉ cần cung cấp các tính năng tiên tiến
còn phải bảo vệ người dùng trước mọi nguy cơ tiềm ẩn.
Đề tài giới thiệu bảo mật trong hệ điều hành sẽ cung cấp một cái nhìn toàn
diện về cấu trúc và hoạt động của hệ điều hành, đồng thời đi sâu vào các khía cạnh
bảo mật quan trọng như quản lý quyền truy cập, cơ chế mã hóa dữ liệu, cách thức
phát hiện và ngăn chặn phần mềm độc hại, cũng như các chiến lược cập nhật
lỗi bảo mật.
4
PHẦN I: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
HỆ ĐIỀU HÀNH LÀ GÌ
Hệ điều hành (Operating System - OS) một phần mềm hệ thống cực kỳ quan
trọng, óng vai trò như là một trung gian không thể thiếu giữa người dùng máy tính
phần cứng của máy. thể nói, hệ iều hành trái tim của mọi hệ thống máy
tính, nó không chỉ quản lý và iều phối việc sử dụng các tài nguyên phần cứng như
bộ vi xử (CPU), bộ nhớ RAM, cứng, thiết bị nhập/xuất các thành phần phần
cứng khác, mà còn cung cấp một giao diện người dùng thân thiện, qua ó cho phép
người dùng và các ứng dụng phần mềm tương tác với máy tính một cách mượt mà
và hiệu quả.
Hệ iều hành có vai trò to lớn trong việc ịnh hình trải nghiệm sử dụng máy tính của
người dùng. giúp ơn giản hóa quá trình tương tác với phần cứng phức tạp, bằng
cách cung cấp một bộ giao diện lập trình ứng dụng (API) cho các nhà phát triển
phần mềm, giúp họ tạo ra các ứng dụng có thể chạy trên nền tảng ó mà không cần
phải quan tâm ến chi tiết cụ thể của phần cứng.
Bên cạnh việc quản lý tài nguyên phần cứng, hệ iều hành còn có trách nhiệm quản
cấp phát bộ nhớ, quản tập tin, quản quyền truy cập bảo mật, cũng
như giám sát việc thực thi của các chương trình. Qua ó, ảm bảo rằng mỗi ứng
dụng dịch vụ ược cấp phát một lượng tài nguyên phù hợp, các quy trình
không xâm phạm lẫn nhau, giữ cho hệ thống ổn ịnh và an toàn.
Một trong những ặc iểm quan trọng của hệ iều hành khả năng a nhiệm a người
dùng, cho phép nhiều chương trình nhiều người dùng cùng tương tác với máy
tính không ảnh hưởng ến hiệu suất hay bảo mật của nhau. Điều này ược thực
hiện thông qua việc phân chia thời gian CPU một cách thông minh và cấp phát bộ
nhớ ộc lập cho từng quy trình.
1. THÀNH PHẦN CHÍNH CỦA HỆ ĐIỀU HÀNH - OPERATING SYSTEM
Hệ iều hành (Operating System - OS) một phần mềm hệ thống phức tạp, bao
gồm nhiều tính năng thành phần khác nhau, óng vai trò quan trọng trong việc
quản phần cứng phần mềm của máy tính. Mặc sự khác biệt về chức
năng và thiết kế giữa các hệ iều hành, ba thành phần chính sau ây thường ược xem
là nền tảng cốt lõi của hầu hết các hệ iều hành hiện ại:
Kernel (Nhân Hệ Điều Hành): Nhân hệ iều hành, hay Kernel, là trái tim của bất kỳ
hệ iều hành nào, chịu trách nhiệm quản mức thấp nhất của các thiết bị phần
cứng. Nó làm việc ở tầng bản nhất, cung cấp các dịch vụ cơ bản như quảnbộ
5
nhớ, quản quy trình luồng, iều phối tác vụ, iều khiển truy cập ến phần
cứng. Kernel óng vai trò quyết ịnh trong việc ảm bảo hiệu suất, ổn ịnh và an ninh
của hệ thống bằng cách giới hạn truy cập trực tiếp vào phần cứng quản các
tài nguyên một cách hiệu quả, giúp các ứng dụng và dịch vụ hệ thống hoạt ộng
không gây xung ột lẫn nhau.
API (Giao Diện Lập Trình Ứng Dụng): API, viết tắt của Application Programming
Interface, là một tập hợp các quy ịnh và công cụ cho việc xây dựng phần mềm và
ứng dụng. Trong bối cảnh của hệ iều hành, API cầu nối giữa phần mềm ứng
dụng kernel của hệ iều hành, cho phép các nhà phát triển viết tương tác
với chức năng cốt lõi của hệ iều hành không cần phải giao tiếp trực tiếp với
phần cứng. Điều này làm cho việc phát triển ứng dụng trở nên dễ dàng mạnh
mẽ hơn, các API cung cấp một tập hợp các "khối xây dựng" sẵn có, giúp tiết
kiệm thời gian và công sức khi xây dựng các chức năng mới.
Giao Diện Người Dùng (User Interface - UI): Giao diện người dùng của hệ iều
hành là phần mà người dùng tương tác trực tiếp, bao gồm cả giao diện ồ họa (GUI
- Graphical User Interface) giao diện dòng lệnh (CLI - Command Line
Interface). GUI cung cấp một cách trực quan ể người dùng giao tiếp với máy tính
thông qua việc sử dụng các biểu tượng ồ họa, cửa sổ, và menu, trong khi CLI cho
phép người dùng thực thi các lệnh thông qua việc nhập văn bản. Cả hai loại giao
diện này ều những ưu nhược iểm riêng, tùy thuộc vào nhu cầu kỹ năng
của người dùng. Một giao diện người dùng tốt không chỉ cần dễ sử dụng trực
quan còn cần phản hồi nhanh chóng cung cấp thông tin hữu ích cho người
dùng, từ ó tối ưu hóa trải nghiệm người dùng.
2. NHỮNG LOẠI HỆ ĐIỀU HÀNH (OS)
Trong thế giới công nghệ a dạng phát triển không ngừng như hiện nay, hệ iều
hành ược phân loại dựa trên các tiêu chí như khả năng hỗ trợ nhiều người dùng,
khả năng a nhiệm, khả năng a luồng và khả năng xử lý trong thời gian thực. Dưới
ây là một cái nhìn sâu hơn về các loại hệ iều hành trên:
Multi-user (Nhiều người dùng): Hệ thống hệ iều hành multi-user ược thiết kế cho
phép nhiều người dùng truy cập sử dụng máy tính cùng một lúc, thường qua
mạng. Điều này òi hỏi khả năng quản lý tài khoản người dùng, quyền truy cập, và
cách ly dữ liệu giữa các người dùng ể ảm bảo an toàn và bảo mật. Các hệ iều hành
như UNIX và các phiên bản của nó (bao gồm Linux), cũng như Windows Server,
dụ của loại hệ iều hành này. Chúng ược thiết kế phục vụ hàng trăm hoặc
thậm chí hàng ngàn người dùng cùng một lúc, từ các vị trí ịa lý khác nhau.
6
Multitasking (Đa nhiệm): Hệ iều hành a nhiệm cho phép nhiều chương trình hoặc
ứng dụng chạy ồng thời trên một máy tính. Điều này ược thực hiện thông qua việc
chia sẻ tài nguyên máy tính (như CPU, bộ nhớ) giữa các chương trình ang chạy,
thường xuyên chuyển ổi giữa chúng cung cấp ấn tượng về việc chúng ang chạy
ồng thời. Các hệ iều hành hiện ại như Windows, macOS, Linux, và các phiên bản
của Unix ều hỗ trợ a nhiệm.
Multithreading (Đa luồng): Multithreading một dạng ặc biệt của multitasking,
cho phép các phần khác nhau (gọi là "luồng") của một chương trình duy nhất chạy
ồng thời. Điều này giúp tăng hiệu suất ứng dụng bằng cách tận dụng tối a khả năng
xử của CPU, ặc biệt trên các hệ thống a lõi. Đa luồng ược hỗ trợ rộng rãi trong
các hệ iều hành hiện ại và một công cụ quan trọng cho việc phát triển phần mềm
hiệu quả.
Real-time (Thời gian thực): Hệ iều hành thời gian thực (RTOS) ược thiết kế ể phản
hồi các yêu cầu ầu vào trong một khoảng thời gian cực kỳ ngắn, gần như tức thì.
Điều này rất quan trọng trong các ứng dụng sự chậm trễ không thể chấp nhận
ược, như hệ thống kiểm soát công nghiệp, hệ thống y tế, hệ thống iều khiển bay.
RTOS ảm bảo rằng các tác vụ quan trọng ược xử theo thời gian biểu dự kiến,
giúp hệ thống duy trì tính nhất quán và áng tin cậy.
3. CÁC CHỨC NĂNG CƠ BẢN CỦA HỆ ĐIỀU HÀNH
Các chức năng bản của hệ iều hành (Operating System - OS) rất a dạng và phức
tạp, phản ánh vai trò của như trung tâm iều phối tất cả các hoạt ộng trong
máy tính. Dưới ây một cái nhìn sâu hơn vào các chức năng chính hệ iều hành
thực hiện:
Quản lý tài nguyên: Hệ iều hành có trách nhiệm cao nhất trong việc quản lý các tài
nguyên phần cứng của máy tính. Điều này bao gồm việc phân phối theo dõi
việc sử dụng bộ vi xử lý (CPU), bộ nhớ (RAM), thiết bị lưu trữ (như ổ cứng và ổ
SSD), cũng như các thiết bị nhập/xuất như bàn phím, chuột, màn hình, và máy in.
Hệ iều hành phải ảm bảo rằng tất cả các ứng dụng dịch vụ ang chạy trên máy
tính thể truy cập vào các tài nguyên này mộtch hiệu quả, công bằng không
gây xung ột với nhau.
Quản lý tập tin: Hệ thống tập tin là một phần không thể thiếu của hệ iều hành, cho
phép lưu trữ, tìm kiếm, truy cập, quản dữ liệu trên các thiết bị lưu trữ. Các
hệ thống tập tin khác nhau (như NTFS, FAT32, ext4, v.v.) cung cấp chế tổ
chức dữ liệu trong các tập tin thư mục, giúp người dùng ứng dụng dễ dàng
truy cập và quản lý thông tin.
7
Quản quy trình luồng: Quy trình một chương trình ang chạy, luồng
một phần của quy trình thể thực thi ộc lập. Hệ iều hành quản việc tạo, lên
lịch và kết thúc quy trình và luồng ể ảm bảo rằng mỗi ứng dụng ược cung cấp thời
gian CPU cần thiết thực hiện tác vụ của mình. Điều này bao gồm cả việc phân
chia thời gian CPU giữa các quy trình và ưu tiên các tác vụ quan trọng.
Quản bộ nhớ: Bộ nhớ ộng (RAM) một nguồn tài nguyên hạn chế, hệ iều
hành phải quản lý việc phân bổ bộ nhớ này giữa các quy trình một cách hiệu quả.
Điều này bao gồm việc phân chia bộ nhớ cho các ứng dụng ang yêu cầu, cũng như
giải phóng bộ nhớ khi nó không còn ược sử dụng. Hệ iều hành cũng thực hiện các
kỹ thuật như paging và swapping ể tối ưu hóa việc sử dụng bộ nhớ.
Giao diện người dùng: Hệ iều nh cung cấp giao diện người dùng (UI) người
dùng tương tác với máy tính. Điều này thể dạng dòng lệnh (CLI) cho phép
nhập các lệnh văn bản, hoặc giao diện ồ họa người dùng (GUI) với các biểu tượng
họa cửa sổ. UI giúp người dùng thực hiện các tác vụ một cách trực quan
dễ dàng.
Quản bảo mật quyền truy cập: Bảo mật một trong những nhiệm vụ quan
trọng nhất của hệ iều hành, bao gồm việc bảo vệ thông tin dữ liệu trước các mối
e dọa truy cập trái phép. Hệ iều hành quản tài khoản người dùng, mật khẩu,
quyền truy cập vào tệp thư mục, thực hiện các chế hóa bảo vệ dữ
liệu. Điều này ảm bảo rằng chỉ những người dùng ược ủy quyền mới thể truy
cập vào thông tin nhạy cảm và các tài nguyên hệ thống.
4. MỤC TIÊU NHIỆM VỤ CỦA HỆ ĐIỀU HÀNH (OS)
Hệ iều hành óng vai trò quan trọng trong việc cung cấp một môi trường ể các ứng
dụng thể chạy trên máy tính, cũng như quản hiệu quả các tài nguyên phần
cứng phần mềm của hệ thống. Dưới ây mục tiêu nhiệm vụ chính của hệ
iều hành:
Thực hiện các thao tác bản: Hệ iều hành thực hiện các thao tác cơ bản như ọc,
viết, và quản lý dữ liệu trong kho dữ liệu cùng hệ thống tập tin, giúp cho việc truy
cập và lưu trữ dữ liệu ược dễ dàng và hiệu quả.
Quản lý phần cứng: OS hỗ trợ iều khiển và quản lý phần cứng, giúp phần cứng ạt
hiệu suất cao nhất. Điều này bao gồm việc quản lý CPU, bộ nhớ, thiết bị lưu trữ,
và thiết bị nhập/xuất.
8
Cung cấp hệ thống lệnh: Hệ iều hành cung cấp một bộ lệnh bản cho việc iều
hành máy, cho phép người dùng các ứng dụng thực hiện các tác vụ một cách
linh hoạt và mạnh mẽ.
Cung ứng giao diện người dùng: OS cung cấp giao diện người dùng, dạng
dòng lệnh (CLI) hay giao diện ồ họa (GUI), ể hỗ trợ người dùng và các ứng dụng
trong việc tương tác với máy tính một cách thuận tiện.
Tăng cường tiện ích sử dụng: Hệ iều hành làm cho hệ thống máy tính dễ sử dụng
hiệu quả hơn, giúp người dùng tiết kiệm thời gian nâng cao năng suất làm
việc.
Ẩn chi tiết phần cứng: OS giấu i các chi tiết phức tạp của phần cứng từ người dùng,
giúp họ tập trung vào công việc không cần lo lắng về cách thức hoạt ộng của
phần cứng.
Cải thiện trải nghiệm người dùng: Hệ iều hành cung cấp một giao diện dễ sử dụng,
giúp cải thiện trải nghiệm tổng thể trên hệ thống máy tính.
Làm trung gian giữa phần cứng người dùng: OS hoạt ộng như một trung gian,
giúp người dùng dễ dàng truy cập và sử dụng các tài nguyên máy tính mà không
cần hiểu biết sâu về công nghệ.
Quản lý tài nguyên: Hệ iều hành quản lý tài nguyên của hệ thống, ảm bảo sự phân
phối và sử dụng hiệu quả các nguồn lực như CPU, bộ nhớ, và thiết bị lưu trữ.
Giám sát sử dụng tài nguyên: OS theo dõi những người chương trình ang sử
dụng tài nguyên, giải quyết xung ột và ảm bảo sự công bằng trong việc phân bổ tài
nguyên.
Cung cấp và chia sẻ tài nguyên: Hệ iều hành cung cấp các tài nguyên cần thiết cho
người dùng ứng dụng, ồng thời hỗ trợ chia sẻ tài nguyên một cách công bằng
và hiệu quả giữa các quy trình.
Những mục tiêu nhiệm vụ này phản ánh sự a dạng phức tạp của các chức
năng hệ iều hành cần thực hiện ảm bảo hoạt ộng ổn ịnh hiệu quả của hệ
thống máy tính.
9
PHẦN II : GIỚI THIỆU VỀ BẢO MẬT HỆ ĐIỀU HÀNH
(SECURITY - INTRO)
CHƯƠNG 1: GIỚI THIỆU CHUNG
1. Bảo mật trong hệ iều hành là gì ?
Bảo mật của các hệ thống máy tính một chủ cực kỳ quan trọng, tầm quan
trọng của nó chỉ ngày càng tăng lên. Rất nhiều tiền bạc ã bị mất và cuộc sống của
nhiều người ã bị ảnh hưởng khi việc bảo mật máy tính thất bại. Các cuộc tấn công
vào hệ thống y tính ã trở nên phổ biến ến mức gần như không thể tránh khỏi
trong hầu hết mọi tình huống khi thực hiện việc tính toán. Nói chung, tất cả các
thành phần của một hệ thống máy tính có thể bị tấn công, và lỗi trong bất kỳ thành
phần nào trong số chúng cũng có thể tạo cơ hội cho kẻ tấn công thực hiện iều gì ó
chúng ta muốn ngăn chặn. Nhưng hệ iều hành ặc biệt quan trọng từ góc ộ bảo mật.
2. Tại sao bảo mật hệ iều hành lại quan trọng ?
Đầu tiên, hầu hết mọi thứ ều chạy trên hệ iều hành. Theo quy tắc, nếu phần mềm
ang chạy trên hệ iều hành, một phần mềm trung gian, hay thứ khác, thì không
thực sự an toàn, thứ nằm phía trên cũng sẽ không an toàn. Đó giống như xây
một ngôi nhà trên cát. Chúng ta có thể xây một cấu trúc vững chãi, nhưng một trận
lụt vẫn có thể cuốn trôi cơ sở phía dưới ngôi nhà , phá hủy hoàn toàn nó bất chấp
sự cẩn thận trong việc xây dựng. Tương tự, ứng dụng có thể không có lỗi bảo mật
nào của riêng nó, nhưng nếu ktấn công thể lợi dụng phần mềm phía dưới
ánh cắp thông tin của, làm sập chương trình, hoặc gây hại theo cách khác, nỗ lực
trong việc bảo vệ mã của mình có thể trở nên vô ích.
Điểm này ặc biệt quan trọng ối với hệ iều hành. Chúng ta thể không quan tâm
ến an ninh của một máy chủ web cụ thể hoặc hệ thống sở dữ liệu nếu không
chạy phần mềm ó, thể không quan tâm ến an ninh của một nền tảng trung
gian nào ó không sử dụng, nhưng mọi người ều sử dụng hệ iều hành,
tương ối ít lựa chọn ể chạy. Do ó, lỗi bảo mật trong một hệ iều hành, ặc biệt một
hệ iều hành ược sử dụng rộng rãi, có ảnh hưởng lớn ến nhiều người dùng và nhiều
phần mềm.
Lý do khác khiến an ninh hệ iều hành rất quan trọng là cuối cùng tất cả phần mềm
của chúng ta ều dựa vào sự hoạt ộng úng ắn của phần cứng bản: bộ xử lý, bộ
nhớ các thiết bị ngoại vi hệ iều hành quyền kiểm soát cuối cùng ối với
những tài nguyên phần cứng có trong máy tính.
10
Một thách thức khác trong việc bảo mật hệ iều hành phần lớn hệ iều hành ược
thiết kế hỗ trợ nhiều quy trình cùng một lúc. Có nhiều chế trong hệ iều hành
nhằm phân chia các quy trình khỏi nhau và bảo vệ các phần cứng chia sẻ khỏi việc
bị sử dụng theo cách làm ảnh hưởng ến các quy trình khác. Nếu mọi quy trình ều
có thể ược tin tưởng ể làm bất cứ iều gì nó muốn với bất kỳ tài nguyên phần cứng
nào bất kỳ mảnh dữ liệu nào trên máy mà không làm hại ến quy trình khác, việc
bảo mật hệ thống sẽ dễ dàng hơn nhiều. Tuy nhiên, chúng ta thường không tin
tưởng mọi thứ một cách tuyệt ối. Khi tải xuống chạy một oạn mã từ một trang
web mà chưa từng truy cập trước ây, chúng ta có thực sự muốn nó có thể xóa mọi
tệp từ ĩa , kết thúc tất cả các quy trình khác , bắt ầu sử dụng giao diện mạng
gửi email rác ến các máy khác không? Có lẽ không, nhưng nếu bạn là chủ sở hữu
của máy tính của mình, bạn quyền làm tất cả những iều ó, nếu ó iều bạn muốn
làm. Và trừ khi hệ iều hành cẩn thận, bất kỳ quy trình nào chạy, bao gồm cả quy
trình chạy oạn mã bạn ã tải xuống, có thể làm bất cứ iều gì bạn có thể làm.
3. Góc ộ và thách thức của bảo mật hệ iều hành
Xem xét vấn ề bảo mật hệ iều hành từ một góc ộ khác. Một vai trò của hệ iều hành
cung cấp các trừu tượng hữu ích cho các chương trình ứng dụng ể xây dựng trên
ó. Những ứng dụng này phải dựa vào các triển khai trừu tượng của OS ể hoạt ộng
như chúng ược ịnh nghĩa. Thường xuyên, một phần của ịnh nghĩa của các trừu
tượng như vậy hành vi bảo mật của chúng. dụ, chúng ta mong ợi rằng hệ
thống tệp của hệ iều hành sẽ thực thi các hạn chế truy cập mà nó ược cho là phải
thực thi. Các ứng dụng có thể xây dựng dựa trên kỳ vọng này ạt ược các mục tiêu
bảo mật họ yêu cầu, như dựa vào các ảm bảo truy cập tệp ể ảm bảo rằng một
tệp họ ã chỉ ịnh không thể viết không bị thay ổi. Nếu các ứng dụng không thể
dựa vào việc triển khai úng ắn của các ảm bảo bảo mật cho các trừu tượng OS, thì
họ không thể sử dụng các trừu tượng này ể ạt ược các mục tiêu bảo mật của riêng
họ. Ít nhất, iều ó có nghĩa là nhiều công việc hơn cho các nhà phát triển ứng dụng,
họ sẽ cần phải thực hiện các biện pháp bổ sung ạt ược các mục tiêu bảo mật
mong muốn của họ. Lấy vào tài khoản cuộc thảo luận trước ó của chúng ta, họ
thường sẽ không thể ạt ược các mục tiêu này nếu các trừu tượng họ phải dựa vào
(như bộ nhớ ảo hoặc một chính sách lập lịch ược ịnh nghĩa rõ ràng) không thể ược
tin cậy.
ràng, bảo mật hệ iều hành là quan trọng, nhưng khó ạt ược. Vậy chúng ta làm
gì ể bảo mật hệ iều hành của mình? Giải quyết câu hỏi này ã một thách thức cho
nhiều thế hệ nhà khoa học máy tính, và vẫn chưa có câu trả lời hoàn chỉnh. Nhưng
có một số nguyên tắc và công cụ quan trọng mà chúng ta có thể sử dụng ể bảo mật
hệ iều hành. Những công cụ này thường ược xây dựng vào bất kỳ hệ iều hành dùng
chung nào mà chúng ta có thể làm việc với, và chúng thay ổi những gì có thể ược
11
thực hiện với hệ thống ó và cách chúng ta thực hiện nó. Vì vậy, có thể không quan
tâm ến bảo mật, nhưng chúng ta vẫn cần hiểu những hệ iều hành làm tự bảo
vệ ể cũng hiểu cách làm cho hệ thống làm những gì chúng ta mong muốn.
CHƯƠNG 2: CẦN LÀM GÌ ĐỂ BẢO MẬT HỆ ĐIỀU HÀNH
BẢO VỆ MÁY TÍNH TỐT NHẤT
Chúng ta khó có thể ạt ược sự bảo vệ tốt trừ khi chúng ta một cái nhìn toàn diện
về những chúng ta ang cố gắng bảo vệ khi nói rằng hệ iều hành của chúng ta
nên ược bảo mật. May mắn thay, câu trả lời cho một hệ iều hành dễ dàng, ít nhất
ở mức ộ cao: tất cả mọi thứ.
Câu trả lời này thể không hoàn toàn tốt nhất, nhưng tốt nhất phải một
sự hiểu biết thực tế về những hệ quả rộng lớn của bảo mật hệ iều hành.
Một hệ iều hành thông thường có quyền kiểm soát hoàn toàn (hoặc hầu hết) tất cả
phần cứng trên máy thể làm bất cứ iều phần cứng cho phép. Điều ó
nghĩa là nó có thể kiểm soát bộ xử lý, ọc và viết tất cả các thanh ghi, kiểm tra bất
kỳ vị trí bộ nhớ chính nào thực hiện bất kỳ hoạt ộng nào một trong những
thiết bị ngoại vi của hỗ trợ. Kết quả là, một số việc hệ iều hành thể làm
bao gồm:
Kiểm tra hoặc thay ổi bộ nhớ của bất kỳ quy trình nào
Đọc, viết, xóa hoặc làm hỏng bất kỳ tệp nào trên bất kỳ phương tiện lưu trữ vĩnh
viễn nào có thể ghi ược, bao gồm ổ cứng và ổ flash
Thay ổi lịch trình hoặc thậm chí dừng thực thi của bất kỳ quy trình nào Gửi bất kỳ
thông iệp nào ến bất cứ âu, bao gồm các phiên bản ã ược thay ổi của những gì một
quy trình muốn gửi
Kích hoạt hoặc vô hiệu hóa bất kỳ thiết bị ngoại vi nào
Cấp quyền cho bất kỳ quy trình nào truy cập vào tài nguyên của bất kỳ quy trình
nào khác
Tùy ý tước bỏ bất kỳ tài nguyên nào mà một quy trình kiểm soát
Phản hồi bất kỳ lời gọi hệ thống nào bằng một lời nói dối có hại nhất
Về bản chất, các quy trình phụ thuộc vào hệ iều hành. Gần như không thể cho một
quy trình 'bảo vệ' bất kỳ phần nào của khỏi một hệ iều hành ộc hại. Chúng ta
thường giả ịnh rằng hệ iều hành của mình không thực sự ộc hại, nhưng một lỗi cho
phép một quy trình ộc hại khiến hệ iều hành hoạt ộng sai lệch gần như tồi tệ như
vậy, vì nó có thể tiềm ẩn cho phép quy trình ó giành lấy bất kỳ quyền lực nào của
chính hệ iều hành. Điểm này nên khiến chúng ta suy nghĩ rất nghiêm túc về tầm
12
quan trọng của việc thiết kế hệ iều hành an toàn và, phổ biến hơn, áp dụng các bản
bảo mật cho bất kỳ hệ iều hành nào bạn ang chạy. Lỗi bảo mật trong hệ iều hành
của bạn có thể hoàn toàn làm tổn hại ến mọi thứ về máy tính mà hệ thống ó chạy
trên, vậy việc ngăn chặn chúng bất kỳ lỗi nào ược phát hiện cùng
quan trọng.
CHƯƠNG 3: MỤC TIÊU CHÍNH SÁCH BẢO MẬT
1. Mục tiêu bảo mật cơ bản
Khi chúng ta nói muốn một hệ iều hành, hoặc bất kỳ hệ thống nào, ược bảo mật,
iều ó thật ra khá hồ. Điều chúng ta thực sự muốn nói những việc chúng
ta muốn xảy ra trong hệ thống những việc chúng ta không muốn xảy ra,
chúng ta muốn một tin cậy cao rằng chúng ta sẽ nhận ược những chúng ta
muốn. Như trong hầu hết các khía cạnh khác của cuộc sống, chúng ta thường phải
trả tiền cho những chúng ta nhận ược, vậy áng giá suy nghĩ về chính xác
những thuộc tính hiệu ứng bảo mật chúng ta thực sự cần sau ó chỉ trả tiền
cho những thứ ó, không phải cho những thứ khác chúng ta không cần. Điều
này nghĩa chúng ta muốn xác ịnh các mục tiêu chúng ta cho hành vi
liên quan ến bảo mật của hệ thống của mình chọn những phương pháp phòng
thủ có khả năng ạt ược những mục tiêu ó với một chi phí hợp lý.
Các nhà nghiên cứu về bảo mật ã suy nghĩ về vấn này một cách rộng rãi từ lâu.
một cấp khái niệm cao, họ ã ịnh nghĩa ba mục tiêu lớn liên quan ến bảo mật
thường gặp ở nhiều hệ thống, bao gồm cả hệ iều hành. Đó là:
Bảo mật thông tin: Nếu một thông tin nào ó ược cho nên ược giấu kín khỏi người
khác, không cho họ tìm hiểu ược thông tin ó. Ví dụ, bạn không muốn ai ó biết số
thẻ tín dụng của bạn - bạn muốn số ó ược giữ kín.
Tính toàn vẹn: Nếu một thông tin hay thành phần của một hệ thống ược cho là nên
ở một trạng thái cụ thể, không cho phép kẻ thù thay ổi nó. Ví dụ, nếu bạn ã ặt mua
trực tuyến một pizza pepperoni, bạn không muốn một kẻ ùa cợt ác ý thay ổi ơn
hàng của bạn thành 1000 pizza cơm. Một khía cạnh quan trọng của tính toàn
vẹn là tính xác thực. Thường xuyên quan trọng phải chắc chắn không chỉ thông tin
không bị thay ổi, còn phải ược tạo ra bởi một bên cụ thể chứ không phải bởi
kẻ thù.
Khả năng sẵn có: Nếu một thông tin hay dịch vụ nào ó ược cho là nên sẵn có cho
việc sử dụng của bạn hoặc người khác, hãy ảm bảo rằng kẻ tấn công không thể
ngăn cản việc sử dụng nó. dụ, nếu doanh nghiệp của bạn ang một ợt giảm
giá lớn, bạn không muốn ối thủ cạnh tranh của mình thể chặn các con ường
xung quanh cửa hàng của bạn, ngăn khách hàng tiếp cận với bạn.
13
2. Một số khía cạnh khác của bảo mật hệ iều hành
Một khía cạnh quan trọng bổ sung của ba mục tiêu này chúng ta muốn sự
chia sẻ ược kiểm soát trong hệ thống của mình. Chúng ta chia sẻ bí mật của mình
với một số người nhưng không phải với người khác. Chúng ta cho phép một số
người thay ổi sở dữ liệu của doanh nghiệp mình, nhưng không phải bất kỳ ai.
Một số hệ thống cần ược làm cho sẵn có cho một nhóm người dùng ưu tiên cụ thể
(như những người ã trả tiền ể chơi trò chơi trực tuyến của bạn) và không phải cho
những người khác (những người không trả tiền). Ai người yêu cầu rất quan trọng,
trong máy tính cũng như trong cuộc sống hàng ngày.
Một khía cạnh quan trọng khác của bảo mật ối với các hệ thống máy tínhchúng
ta thường muốn chắc chắn rằng khi ai ó nói với chúng ta iều gì ó, họ không thể sau
ó phủ nhận việc họ ã làm. Khía cạnh này thường ược gọi không thể từ chối.
Càng khó ắt hơn cho ai ó phủ nhận hành ộng của họ, thì càng dễ dàng
chúng ta giữ họ chịu trách nhiệm về những hành ộng ó, và do ó, mọi người càng ít
khả năng thực hiện các hành ộng ác ý. Sau cùng, họ thể sẽ bị bắt sẽ gặp
rắc rối khi phủ nhận việc họ ã làm.
3. Mục tiêu của bảo mật hệ iều hành
Đây những mục tiêu lớn, chung chung. Đối với một hệ thống thực tế, bạn cần
phải i sâu vào các mục tiêu cụ thể, chi tiết hơn. Trong một hệ iều hành thông thường,
dụ, chúng ta thể một mục tiêu bảo mật thông tin nêu rằng không gian bộ
nhớ của một quá trình không thể bị ọc một cách tùy ý bởi một quá trình khác.
Chúng ta có thể một mục tiêu tính toàn vẹn nêu rằng nếu một người dùng viết
một bản ghi vào một tệp cụ thể, một người dùng khác không ược phép viết tệp ó
không thể thay ổi bản ghi. Chúng ta thể có một mục tiêu về khả năng sẵn nêu
rằng một quá trình chạy trên hệ thống không thể chiếm hữu CPU và ngăn các quá
trình khác nhận ược phần CPU của họ. Nếu bạn suy ngẫm lại những bạn ã học
về trừu tượng hóa quá trình, quản bộ nhớ, lập lịch, hệ thống tệp, IPC, và các chủ
khác từ lớp học này, bạn nên thể nghĩ ra một số mục tiêu bảo mật thông tin,
tính toàn vẹn, và khả năng sẵn có khác mà chúng ta có thể muốn trong hệ iều hành
của mình.
Đối với bất kỳ hệ thống cụ thể nào, ngay cả các mục tiêu ở cấp ộ này cũng không
cụ thể. Mục tiêu tính toàn vẹn ược ám chỉ trên, nơi một tệp của người dùng
không nên bị ghi è bởi một người dùng khác không ược phép làm như vậy, cho
bạn một manh mối về cụ thể thêm chúng ta cần trong các mục tiêu bảo mật
của chúng ta cho một hệ thống cụ thể. thể có một số người dùng nào ó nên
thể ghi è lên tệp ó, như có thể xảy ra khi hai người ang cộng tác viết một báo cáo.
14
Nhưng iều ó không có nghĩa là một người dùng thứ ba không liên quan nên có thể
viết tệp ó, nếu anh ta không cộng tác về báo cáo ược lưu trữ ở ó. Chúng ta cần
khả năng chỉ ịnh chi tiết như vậy trong các mục tiêu bảo mật của mình. Hệ iều
hành ược viết ược sử dụng bởi nhiều người khác nhau với nhiều nhu cầu khác
nhau, bảo mật hệ iều hành nên phản ánh sự tổng quát ó. Những chúng ta
muốn trong các chế bảo mật cho hệ iều hành sự linh hoạt trong việc tả
các mục tiêu bảo mật chi tiết của chúng ta.
Cuối cùng, tất nhiên, phần mềm hệ iều hành phải cố gắng hết sức ể thực thi những
mục tiêu bảo mật linh hoạt ó, iều này nghĩa chúng ta sẽ cần phải hóa
những mục tiêu ó thành các hình thức phần mềm thể hiểu ược. Chúng ta
thường phải chuyển ổi sự hiểu biết mơ hồ của mình về các mục tiêu bảo mật của
mình thành các chính sách bảo mật cụ thể, ràng. dụ, trong trường hợp của
tệp ược tả trên, chúng ta thể muốn chỉ ịnh một chính sách như 'người dùng
AB có thể viết vào tệp X, nhưng không có người dùng nào khác có thể viết nó.'
Với mức ộ cụ thể ó, ược hỗ trợ bởi các cơ chế ược thiết kế và triển khai cẩn thận,
chúng ta có thể hy vọng ạt ược các mục tiêu bảo mật của mình.
Lưu ý một hậu quả quan trọng cho bảo mật hệ iều hành: trong nhiều trường hợp,
một hệ iều hành sẽ các chế cần thiết thực hiện một chính sách bảo mật
mong muốn với một mức ộ ảm bảo cao trong việc áp dụng úng ắn của nó, nhưng
chỉ khi có ai ó nói cho hệ iều hành chính xác chính sách ó là gì. Với một số ngoại
lệ quan trọng (như duy trì không gian ịa chỉ của một quá trình riêng tư trừ khi ược
chỉ ạo khác), hệ iều nh chỉ cung cấp các chế chung thể thực hiện nhiều
chính sách cụ thể. Tuy nhiên, không có thiết kế thông minh của các chính sách và
áp dụng cẩn thận các chế, những hệ iều hành nên hoặc thể làm thể
không phải là những gì hệ iều hành của bạn sẽ làm.
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG BẢO MẬT HỆ ĐIỀU
HÀNH
Ít người trong số các bạn sẽ tự xây dựng hệ iều hành của mình, hay thậm chí thực
hiện những thay ổi nghiêm túc ối với bất kỳ hệ iều hành hiện có nào, nhưng chúng
tôi kỳ vọng nhiều bạn sẽ xây dựng các hệ thống phần mềm lớn theo một cách nào
ó. Kinh nghiệm của nhiều nhà khoa học máy tính với thiết kế hệ thống ã chỉ ra
rằng một số nguyên tắc thiết kế hữu ích trong việc xây dựng các hệ thống
yêu cầu bảo mật. Những nguyên tắc này ược Jerome Saltzer và Michael Schroeder
ề xuất lần ầu tiên trong một bài báo có ảnh hưởng, mặc dù một số trong chúng ến
từ những quan sát trước ó của người khác. Mặc dù không có tác giả gốc hay những
người bình luận sau này tuyên bố rằng việc tuân theo chúng sẽ ảm bảo rằng hệ
15
thống của bạn an toàn, việc chú ý ến chúng ã ược chứng minh dẫn ến các hệ
thống an toàn hơn, trong khi bạn bỏ qua chúng thì tự mình chịu rủi ro.
Nếu thực sự ang xây dựng một hệ thống phần mềm lớn, thì việc tìm hiểu bài báo
này (hoặc các bình luận chi tiết hơn về nó) và nghiên cứu các khái niệm một cách
cẩn thận sẽ áng giá rất nhiều.
Kinh tế về cơ chế (Economy of mechanism) - Điều này cơ bản có nghĩa là giữ hệ
thống của bạn càng nhỏ và ơn giản càng tốt. Hệ thống ơn giản có ít lỗi hơn dễ
dàng hiểu ược hành vi của chúng hơn. Nếu bạn không hiểu hành vi của hệ thống,
bạn khó có thể biết liệu nó có ạt ược mục tiêu bảo mật của mình hay không.
Mặc ịnh an toàn (Fail-safe defaults)- Mặc ịnh an toàn, không phải không an toàn.
Nếu các chính sách có thể ược thiết lập ể xác ịnh hành vi của hệ thống, hãy mặc
ịnh cho những chính sách ó an toàn hơn, không phải ít an toàn hơn.
Kiểm soát toàn diện (Complete mediation) - Đây một thuật ngữ bảo mật nghĩa
bạn nên kiểm tra xem một hành ộng ược thực hiện có áp ứng các chính sách bảo
mật mỗi lần hành ộng ó ược thực hiện.
Thiết kế mở (Open design) - Giả ịnh kẻ thù của bạn biết mọi chi tiết của thiết kế
của bạn. Nếu hệ thống vẫn ạt ược mục tiêu bảo mật của mình, bạn ang ở trong tình
trạng tốt. Nguyên tắc này không nhất thiết nghĩa bạn thực sự nói với mọi
người tất cả các chi tiết, nhưng dựa vào giả ịnh rằng kẻ tấn công ã tìm hiểu mọi
thứ. Trên thực tế, anh ta thường ã biết.
Tách biệt quyền hạn (Separation of privilege) - Yêu cầu các bên hoặc thông tin xác
thực riêng biệt ể thực hiện các hành ộng quan trọng. dụ, xác thực hai yếu tố, nơi
bạn sử dụng cả mật khẩu sở hữu một phần cứng xác ịnh danh tính, an toàn
hơn là sử dụng bất kỳ phương pháp nào ó một mình.
Quyền hạn tối thiểu (Least privilege) - Cấp cho người dùng hoặc quy trình những
quyền hạn tối thiểu cần thiết thực hiện các hành ộng bạn muốn cho phép. Bạn
càng cấp nhiều quyền hạn cho một bên, nguy cơ họ lạm dụng những quyền hạn ó
càng lớn. Ngay cả khi bạn tin tưởng rằng bên ó không ác ý, nếu họ mắc lỗi, một
kẻ thù thể tận dụng lỗi của họ sử dụng quyền hạn thừa của họ theo cách
hại.
chế ít chung nhất (Least common mechanism)- Đối với các người dùng hoặc
quy trình khác nhau, sử dụng các cấu trúc dữ liệu hoặc chế riêng biệt xử
chúng. dụ, mỗi quy trình nhận ược bảng trang riêng của mình trong một hệ
16
thống bộ nhớ ảo, ảm bảo rằng một quy trình không thể truy cập vào các trang của
quy trình khác.
Tính chấp nhận (Acceptability) - Một tính chất quan trọng không ược nhiều lập
trình viên yêu thích. Nếu người dùng của bạn không sử dụng nó, hệ thống của bạn
giá trị. Quá nhiều hệ thống bảo mật hứa hẹn ã bị bỏ rơi chúng yêu cầu quá
nhiều từ người dùng của mình.
Những lời khuyên trên không phải những lời khuyên duy nhất hữu ích về thiết
kế các hệ thống an toàn. Còn rất nhiều tài liệu tốt về bước tiếp theo, chuyển ổi một
thiết kế tốt thành code ạt ược mục tiêu bảo mật bạn dự ịnh, cũng như các tài
liệu khác về cách ánh giá liệu hệ thống bạn ã xây dựng thực sự áp ứng những
mục tiêu ó hay không. Những vấn này nằm ngoài phạm vi của khóa học này,
nhưng lại vô cùng quan trọng khi bạn ến lúc cần xây dựng các hệ thống lớn, phức
tạp.
Để thảo luận về các phương pháp lập trình an toàn, bạn có thể bắt ầu với tác phẩm
của Seacord, nếu bạn làm việc với ngôn ngữ C. Nếu bạn làm việc với một ngôn
ngữ khác, bạn nên tìm kiếm một tài liệu tương tự cụ thể cho ngôn ngữ ó, vì nhiều
vấn ề lập trình an toàn liên quan ến chi tiết của ngôn ngữ. Để có một cách tiếp cận
toàn diện về cách ánh giá liệu hệ thống của bạn an toàn không, hãy bắt ầu với
công trình của Dowd và cộng sự.
CHƯƠNG 5: KHÁI NIỆM CƠ BẢN VỀ BẢO MẬT HỆ ĐIỀU
HÀNH
1. Khái niệm
Trong một hệ iều hành iển hình, chúng ta một số mục tiêu bảo mật, tập trung
vào các khía cạnh khác nhau của bảo mật thông tin, toàn vẹn, khdụng. Một số
mục tiêu này xu hướng ược tích hợp sẵn vào hình hệ iều hành, trong khi
những mục tiêu khác ược kiểm soát bởi chủ sở hữu hoặc người dùng của hệ thống.
Các mục tiêu tích hợp sẵn những mục tiêu cực kỳ phổ biến, hoặc phải ược ảm
bảo ể làm cho các mục tiêu cụ thể hơn có thể ạt ược. Hầu hết các mục tiêu tích hợp
sẵn liên quan ến việc kiểm soát quyền truy cập của quy trình ến các bộ phận của
phần cứng.
Điều này bởi phần cứng ược chia sẻ bởi tất cả các quy trình trên một hệ thống,
và trừ khi việc chia sẻ ược kiểm soát cẩn thận, một quy trình có thể can thiệp vào
mục tiêu bảo mật của quy trình khác. Các mục tiêu tích hợp sẵn khác liên quan ến
các dịch vụ hệ iều hành cung cấp, như hệ thống tệp, quản bộ nhớ, giao
tiếp giữa các quy trình. Nếu những dịch vụ này không ược kiểm soát cẩn thận, các
quy trình có thể lật ổ mục tiêu bảo mật của hệ thống.
17
2. Xử lý quy trình và bảo mật
ràng, rất nhiều bảo mật hệ thống sẽ liên quan ến việc xử quy trình. Nếu hệ
iều hành có thể duy trì sự phân chia rõ ràng của các quy trình mà chỉ có thể bị phá
vỡ với sự giúp ỡ của hệ iều hành, thì cả phần cứng chia sẻ lẫn dịch vụ hệ iều hành
không thể ược sử dụng ể lật ổ các mục tiêu bảo mật của chúng ta. Yêu cầu ó ngụ ý
rằng hệ iều hành cần phải cẩn thận khi cho phép sử dụng phần cứng các dịch
vụ của mình. Trong nhiều trường hợp, hệ iều hành có cơ hội tốt ể áp dụng sự cẩn
thận như vậy. Ví dụ, hệ iều hành kiểm soát bộ nhớ ảo, từ ó hoàn toàn kiểm soát ịa
chỉ bộ nhớ vật nào mỗi quy trình có thể truy cập. Sự hỗ trợ của phần cứng
ngăn chặn một quy trình từ việc thậm chí gọi một ịa chỉ bộ nhớ vật không ược
ánh xạ vào không gian bộ nhớ ảo của nó. (Những người làm việc về phần mềm
trong chúng ta nên nhớ cảm ơn những người làm việc về phần cứng tất cả những
thứ tuyệt vời họ ã cung cấp cho chúng ta ể làm việc.)
3. Lời gọi hệ thống trong hệ iều hành
Các lời gọi hệ thống cung cấp cho hệ iều hành một cơ hội khác ể cung cấp bảo vệ.
Trong hầu hết các hệ iều hành, các quy trình truy cập các dịch vụ hệ thống bằng
cách thực hiện một lời gọi hệ thống rõ ràng, như ã ược thảo luận trong các chương
trước. Như bạn ã học, các lời gọi hệ thống chuyển chế thực thi từ chế người
dùng của bộ xử lý sang chế ộ giám sát của nó, kích hoạt một phần mã hệ iều hành
phù hợp khi làm như vậy. Mã ó có thể xác ịnh quy trình nào ã thực hiện lời gọi hệ
thống và dịch vụ nào mà quy trình yêu cầu. Trước ây, chúng ta chỉ nói về cách iều
này có thể cho phép hệ iều hành gọi oạn mã hệ thống phù hợp ể thực hiện dịch vụ,
theo dõi ai trả lại quyền kiểm soát khi dịch vụ ã ược hoàn thành. Nhưng
cùng một cơ chế cung cấp cho hệ iều hành cơ hội ể kiểm tra liệu dịch vụ ược yêu
cầu nên ược cho phép theo chính sách bảo mật của hệ thống hay không.
quyền truy cập vào các thiết bị ngoại vi thông qua trình iều khiển thiết bị, thường
cũng ược truy cập qua lời gọi hệ thống, cùng một chế thể ảm bảo áp dụng
úng chính sách bảo mật cho quyền truy cập phần cứng.
Khi một quy trình thực hiện một lời gọi hệ thống, hệ iều hành sẽ sử dụng ịnh danh
quy trình trong khối kiểm soát quy trình hoặc cấu trúc tương tự xác ịnh danh tính
của quy trình. Hệ iều hành sau ó thể sử dụng các chế kiểm soát truy cập
quyết ịnh liệu quy trình ược xác ịnh có ược phép thực hiện hành ộng ược yêu cầu
hay không. Nếu có, hệ iều hành hoặc là tự thực hiện hành ộng ó thay mặt cho quy
trình hoặc sắp xếp cho quy trình thực hiện nó mà không cần can thiệp thêm của hệ
thống. Nếu quy trình không ược phép, hệ iều hành thể ơn giản tạo ra một
lỗi cho lời gọi hệ thống trả lại quyền kiểm soát cho quy trình, nếu thuật toán lập
lịch cho phép.
18
CHƯƠNG 6: TỔNG KẾT
Bảo mật của hệ iều hành một yếu tố quan trọng không chỉ cho chính hệ iều hành
còn cho cả các ứng dụng chạy trên nó. Các lỗ hổng bảo mật trong phần mềm
này thể dẫn ến những hậu quả nghiêm trọng, với khả năng gây ra thiệt hại không
giới hạn. Trong bối cảnh ó, việc ảm bảo bảo mật cho hệ thống là một nhiệm vụ ầy
thách thức nhưng không phải không thể. một số nguyên tắc thiết kế ã ược
xác ịnh qua thời gian, những nguyên tắc này ã chứng minh là có giá trị không chỉ
trong việc thiết kế hệ iều hành còn trong việc phát triển bất kỳ hệ thống phần
mềm lớn nào.
Một phần quan trọng của việc ạt ược bảo mật trong hệ iều hành là xác ịnh rõ ràng
các mục tiêu bảo mật cần ạt ược. Những mục tiêu này thường xoay quanh các khía
cạnh như bảo mật thông tin, toàn vẹn dữ liệu, khả dụng của hệ thống. Tùy thuộc
vào yêu cầu cụ thể của mỗi hệ thống, các mục tiêu bảo mật cụ thể có thể thay ổi,
iều này dẫn ến việc các hệ thống khác nhau sẽ cần áp dụng các chính sách bảo mật
khác nhau áp ứng nhu cầu của mình. Trong quá trình thiết kế hệ iều hành, một
phương pháp tiếp cận phổ biến là phân tách giữa các chính sách bảo mật cụ thể -
ược thiết lập áp ứng nhu cầu của từng hệ thống riêng lẻ -các chế chung -
ược sử dụng thực hiện các chính sách bảo mật trên tất cả các hệ thống. Phương
pháp tiếp cận này cho phép tạo ra một khuôn khổ linh hoạt, trong ó có thể dễ dàng
iều chỉnh các chính sách bảo mật phù hợp với các yêu cầu bảo mật ang thay ổi
mà không cần phải sửa ổi các cơ chế cơ bản của hệ thống.
19
PHẦN III: KẾT LUẬN
Chúng em xin chân thành biết ơn sâu sắc đến Thầy Trần Đăng Hoan
về sự tận tình, kiên nhẫn và sự hỗ trợ quý báu trong suốt quá trình thực hiện
báo cáo bài tập lớn về đề tài "Giới thiệu về bảo mật trong hệ điều hành".
Thầy không chỉ là người hướng dẫn mà còn là người bạn đồng hành đáng tin
cậy, luôn sẵn lòng chia sẻ kiến thức kinh nghiệm để giúp em ợt qua
những khó khăn, hoàn thiện báo cáo một cách tốt nhất.
Nhờ sự chỉ dẫn của Thầy, chúng em đã có cơ hội hiểu sâu hơn về tầm
quan trọng của bảo mật trong hệ điều hành, nhận thức được các nguy tiềm
ẩn cũng như biết cách áp dụng các biện pháp bảo mật hiệu quả. Qua đó, kiến
thức kỹ năng chúng em thu được t bài tập này sẽ nền tảng vững
chắc cho sự phát triển và thành công trong tương lai.
Chúng em cam kết sẽ tiếp tục nỗ lực học tập áp dụng những kiến
thức mà Thầy đã truyền đạt, để trở thành những chuyên gia uyên bác trong
lĩnh vực này. Một lần nữa, chúng em xin gửi lời biết ơn chân thành nhất đến
Thầy Trần Đăng Hoan hy vọng sẽ tiếp tục nhận được shỗ trợ định
hướng từ Thầy trong những hành trình học tập và nghiên cứu sắp tới.
| 1/20

Preview text:

TRƯỜNG ĐẠI HỌC PHENIKAA KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN HỆ ĐIỀU HÀNH
GIỚI THIỆU VỀ BẢO MẬT TRONG HỆ ĐIỀU HÀNH
Giảng viên hướng dẫn: Trần Đăng Hoan
Nhóm 24 - Hệ iều hành-1-2-23(N07)
Sinh viên thực hiện: Bùi Việt Quang (21010614)
Nguyễn Văn Khải (21011609)
Ngành/ chuyên ngành: Công nghệ thông tin
Hà Nội, tháng 03 năm 2024 LỜI CẢM ƠN
Chúng em xin cảm ơn Thầy Trần Đăng Hoan ã tận tình giảng dạy và hướng dẫn,
giúp ỡ chúng em hoàn thành báo cáo bài tập lớn môn hệ iều hành về ề tài “ Giới
thiệu về bảo mật trong hệ iều hành” 1 MỤC LỤC
LỜI MỞ ĐẦU ........................................................................................................ 3
PHẦN I: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ....................................................... 4
HỆ ĐIỀU HÀNH LÀ GÌ .................................................................................... 4
1. THÀNH PHẦN CHÍNH CỦA HỆ ĐIỀU HÀNH - OPERATING
SYSTEM ....................................................................................................... 4
2. NHỮNG LOẠI HỆ ĐIỀU HÀNH (OS) .................................................... 5
3. CÁC CHỨC NĂNG CƠ BẢN CỦA HỆ ĐIỀU HÀNH ............................ 6
4. MỤC TIÊU NHIỆM VỤ CỦA HỆ ĐIỀU HÀNH (OS) ............................ 7
PHẦN II : GIỚI THIỆU VỀ BẢO MẬT HỆ ĐIỀU HÀNH (SECURITY -
INTRO) .................................................................................................................. 9
CHƯƠNG 1: GIỚI THIỆU CHUNG ................................................................. 9
1. Bảo mật trong hệ iều hành là gì ? .............................................................. 9
2. Tại sao bảo mật hệ iều hành lại quan trọng ? ............................................. 9
3. Góc ộ và thách thức của bảo mật hệ iều hành .......................................... 10
CHƯƠNG 2: CẦN LÀM GÌ ĐỂ BẢO MẬT HỆ ĐIỀU HÀNH BẢO VỆ
MÁY TÍNH TỐT NHẤT ................................................................................. 11
CHƯƠNG 3: MỤC TIÊU VÀ CHÍNH SÁCH BẢO MẬT ............................. 12
1. Mục tiêu bảo mật cơ bản .......................................................................... 12
2. Một số khía cạnh khác của bảo mật hệ iều hành ..................................... 13
3. Mục tiêu của bảo mật hệ iều hành ................................................................... 13
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG BẢO MẬT HỆ ĐIỀU HÀNH ........... 14
CHƯƠNG 5: KHÁI NIỆM CƠ BẢN VỀ BẢO MẬT HỆ ĐIỀU HÀNH ....... 16
1. Khái niệm ................................................................................................. 16
2. Xử lý quy trình và bảo mật ...................................................................... 17
3. Lời gọi hệ thống trong hệ iều hành .......................................................... 17
CHƯƠNG 6: TỔNG KẾT ............................................................................... 18
PHẦN III: KẾT LUẬN ........................................................................................ 19 2
LỜI MỞ ĐẦU
Trong thời đại thông tin số hiện nay, hệ điều hành không chỉ giữ vai trò là nền
tảng cơ bản cho mọi hoạt động của thiết bị điện tử, từ máy tính cá nhân, điện thoại
thông minh, đến các hệ thống máy chủ quy mô lớn, mà còn là yếu tố quyết định
đến khả năng bảo mật thông tin trong kỷ nguyên kỹ thuật số. Hệ điều hành quản
lý và điều phối mọi hoạt động của phần cứng, cung cấp giao diện người dùng trực
quan, đồng thời làm cầu nối cho các ứng dụng phần mềm để thực thi các tác vụ.
Điều này đòi hỏi hệ điều hành phải được thiết kế với khả năng đảm bảo an toàn,
bảo mật thông tin và dữ liệu trước sự ngày càng phát triển của các mối đe dọa an ninh mạng.
Trong bối cảnh phát triển nhanh chóng của công nghệ thông tin và truyền
thông, cùng với đó là sự gia tăng không ngừng của các mối đe dọa mạng, việc đảm
bảo an ninh cho hệ điều hành đã trở thành một trong những ưu tiên hàng đầu. Các
cuộc tấn công mạng ngày càng trở nên tinh vi và phức tạp hơn, từ việc lợi dụng
các lỗ hổng bảo mật nhỏ nhất cho đến việc triển khai các chiến dịch tấn công mục
tiêu, đòi hỏi các hệ điều hành không chỉ cần cung cấp các tính năng tiên tiến mà
còn phải bảo vệ người dùng trước mọi nguy cơ tiềm ẩn.
Đề tài giới thiệu bảo mật trong hệ điều hành sẽ cung cấp một cái nhìn toàn
diện về cấu trúc và hoạt động của hệ điều hành, đồng thời đi sâu vào các khía cạnh
bảo mật quan trọng như quản lý quyền truy cập, cơ chế mã hóa dữ liệu, cách thức
phát hiện và ngăn chặn phần mềm độc hại, cũng như các chiến lược cập nhật và vá lỗi bảo mật. 3
PHẦN I: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH
HỆ ĐIỀU HÀNH LÀ GÌ

Hệ điều hành (Operating System - OS) là một phần mềm hệ thống cực kỳ quan
trọng, óng vai trò như là một trung gian không thể thiếu giữa người dùng máy tính
và phần cứng của máy. Có thể nói, hệ iều hành là trái tim của mọi hệ thống máy
tính, nó không chỉ quản lý và iều phối việc sử dụng các tài nguyên phần cứng như
bộ vi xử lý (CPU), bộ nhớ RAM, ổ cứng, thiết bị nhập/xuất và các thành phần phần
cứng khác, mà còn cung cấp một giao diện người dùng thân thiện, qua ó cho phép
người dùng và các ứng dụng phần mềm tương tác với máy tính một cách mượt mà và hiệu quả.
Hệ iều hành có vai trò to lớn trong việc ịnh hình trải nghiệm sử dụng máy tính của
người dùng. Nó giúp ơn giản hóa quá trình tương tác với phần cứng phức tạp, bằng
cách cung cấp một bộ giao diện lập trình ứng dụng (API) cho các nhà phát triển
phần mềm, giúp họ tạo ra các ứng dụng có thể chạy trên nền tảng ó mà không cần
phải quan tâm ến chi tiết cụ thể của phần cứng.
Bên cạnh việc quản lý tài nguyên phần cứng, hệ iều hành còn có trách nhiệm quản
lý và cấp phát bộ nhớ, quản lý tập tin, quản lý quyền truy cập và bảo mật, cũng
như giám sát việc thực thi của các chương trình. Qua ó, nó ảm bảo rằng mỗi ứng
dụng và dịch vụ ược cấp phát một lượng tài nguyên phù hợp, và các quy trình
không xâm phạm lẫn nhau, giữ cho hệ thống ổn ịnh và an toàn.
Một trong những ặc iểm quan trọng của hệ iều hành là khả năng a nhiệm và a người
dùng, cho phép nhiều chương trình và nhiều người dùng cùng tương tác với máy
tính mà không ảnh hưởng ến hiệu suất hay bảo mật của nhau. Điều này ược thực
hiện thông qua việc phân chia thời gian CPU một cách thông minh và cấp phát bộ
nhớ ộc lập cho từng quy trình.
1. THÀNH PHẦN CHÍNH CỦA HỆ ĐIỀU HÀNH - OPERATING SYSTEM
Hệ iều hành (Operating System - OS) là một phần mềm hệ thống phức tạp, bao
gồm nhiều tính năng và thành phần khác nhau, óng vai trò quan trọng trong việc
quản lý phần cứng và phần mềm của máy tính. Mặc dù có sự khác biệt về chức
năng và thiết kế giữa các hệ iều hành, ba thành phần chính sau ây thường ược xem
là nền tảng cốt lõi của hầu hết các hệ iều hành hiện ại:
Kernel (Nhân Hệ Điều Hành): Nhân hệ iều hành, hay Kernel, là trái tim của bất kỳ
hệ iều hành nào, chịu trách nhiệm quản lý mức ộ thấp nhất của các thiết bị phần
cứng. Nó làm việc ở tầng cơ bản nhất, cung cấp các dịch vụ cơ bản như quản lý bộ 4
nhớ, quản lý quy trình và luồng, iều phối tác vụ, và iều khiển truy cập ến phần
cứng. Kernel óng vai trò quyết ịnh trong việc ảm bảo hiệu suất, ổn ịnh và an ninh
của hệ thống bằng cách giới hạn truy cập trực tiếp vào phần cứng và quản lý các
tài nguyên một cách hiệu quả, giúp các ứng dụng và dịch vụ hệ thống hoạt ộng mà
không gây xung ột lẫn nhau.
API (Giao Diện Lập Trình Ứng Dụng): API, viết tắt của Application Programming
Interface, là một tập hợp các quy ịnh và công cụ cho việc xây dựng phần mềm và
ứng dụng. Trong bối cảnh của hệ iều hành, API là cầu nối giữa phần mềm ứng
dụng và kernel của hệ iều hành, cho phép các nhà phát triển viết mã ể tương tác
với chức năng cốt lõi của hệ iều hành mà không cần phải giao tiếp trực tiếp với
phần cứng. Điều này làm cho việc phát triển ứng dụng trở nên dễ dàng và mạnh
mẽ hơn, vì các API cung cấp một tập hợp các "khối xây dựng" sẵn có, giúp tiết
kiệm thời gian và công sức khi xây dựng các chức năng mới.
Giao Diện Người Dùng (User Interface - UI): Giao diện người dùng của hệ iều
hành là phần mà người dùng tương tác trực tiếp, bao gồm cả giao diện ồ họa (GUI
- Graphical User Interface) và giao diện dòng lệnh (CLI - Command Line
Interface). GUI cung cấp một cách trực quan ể người dùng giao tiếp với máy tính
thông qua việc sử dụng các biểu tượng ồ họa, cửa sổ, và menu, trong khi CLI cho
phép người dùng thực thi các lệnh thông qua việc nhập văn bản. Cả hai loại giao
diện này ều có những ưu và nhược iểm riêng, tùy thuộc vào nhu cầu và kỹ năng
của người dùng. Một giao diện người dùng tốt không chỉ cần dễ sử dụng và trực
quan mà còn cần phản hồi nhanh chóng và cung cấp thông tin hữu ích cho người
dùng, từ ó tối ưu hóa trải nghiệm người dùng.
2. NHỮNG LOẠI HỆ ĐIỀU HÀNH (OS)
Trong thế giới công nghệ a dạng và phát triển không ngừng như hiện nay, hệ iều
hành ược phân loại dựa trên các tiêu chí như khả năng hỗ trợ nhiều người dùng,
khả năng a nhiệm, khả năng a luồng và khả năng xử lý trong thời gian thực. Dưới
ây là một cái nhìn sâu hơn về các loại hệ iều hành trên:
Multi-user (Nhiều người dùng): Hệ thống hệ iều hành multi-user ược thiết kế ể cho
phép nhiều người dùng truy cập và sử dụng máy tính cùng một lúc, thường qua
mạng. Điều này òi hỏi khả năng quản lý tài khoản người dùng, quyền truy cập, và
cách ly dữ liệu giữa các người dùng ể ảm bảo an toàn và bảo mật. Các hệ iều hành
như UNIX và các phiên bản của nó (bao gồm Linux), cũng như Windows Server,
là ví dụ của loại hệ iều hành này. Chúng ược thiết kế ể phục vụ hàng trăm hoặc
thậm chí hàng ngàn người dùng cùng một lúc, từ các vị trí ịa lý khác nhau. 5
Multitasking (Đa nhiệm): Hệ iều hành a nhiệm cho phép nhiều chương trình hoặc
ứng dụng chạy ồng thời trên một máy tính. Điều này ược thực hiện thông qua việc
chia sẻ tài nguyên máy tính (như CPU, bộ nhớ) giữa các chương trình ang chạy,
thường xuyên chuyển ổi giữa chúng ể cung cấp ấn tượng về việc chúng ang chạy
ồng thời. Các hệ iều hành hiện ại như Windows, macOS, Linux, và các phiên bản
của Unix ều hỗ trợ a nhiệm.
Multithreading (Đa luồng): Multithreading là một dạng ặc biệt của multitasking,
cho phép các phần khác nhau (gọi là "luồng") của một chương trình duy nhất chạy
ồng thời. Điều này giúp tăng hiệu suất ứng dụng bằng cách tận dụng tối a khả năng
xử lý của CPU, ặc biệt là trên các hệ thống a lõi. Đa luồng ược hỗ trợ rộng rãi trong
các hệ iều hành hiện ại và là một công cụ quan trọng cho việc phát triển phần mềm hiệu quả.
Real-time (Thời gian thực): Hệ iều hành thời gian thực (RTOS) ược thiết kế ể phản
hồi các yêu cầu ầu vào trong một khoảng thời gian cực kỳ ngắn, gần như tức thì.
Điều này rất quan trọng trong các ứng dụng mà sự chậm trễ không thể chấp nhận
ược, như hệ thống kiểm soát công nghiệp, hệ thống y tế, và hệ thống iều khiển bay.
RTOS ảm bảo rằng các tác vụ quan trọng ược xử lý theo thời gian biểu dự kiến,
giúp hệ thống duy trì tính nhất quán và áng tin cậy.
3. CÁC CHỨC NĂNG CƠ BẢN CỦA HỆ ĐIỀU HÀNH
Các chức năng cơ bản của hệ iều hành (Operating System - OS) rất a dạng và phức
tạp, phản ánh vai trò của nó như là trung tâm iều phối tất cả các hoạt ộng trong
máy tính. Dưới ây là một cái nhìn sâu hơn vào các chức năng chính mà hệ iều hành thực hiện:
Quản lý tài nguyên: Hệ iều hành có trách nhiệm cao nhất trong việc quản lý các tài
nguyên phần cứng của máy tính. Điều này bao gồm việc phân phối và theo dõi
việc sử dụng bộ vi xử lý (CPU), bộ nhớ (RAM), thiết bị lưu trữ (như ổ cứng và ổ
SSD), cũng như các thiết bị nhập/xuất như bàn phím, chuột, màn hình, và máy in.
Hệ iều hành phải ảm bảo rằng tất cả các ứng dụng và dịch vụ ang chạy trên máy
tính có thể truy cập vào các tài nguyên này một cách hiệu quả, công bằng và không gây xung ột với nhau.
Quản lý tập tin: Hệ thống tập tin là một phần không thể thiếu của hệ iều hành, cho
phép lưu trữ, tìm kiếm, truy cập, và quản lý dữ liệu trên các thiết bị lưu trữ. Các
hệ thống tập tin khác nhau (như NTFS, FAT32, ext4, v.v.) cung cấp cơ chế ể tổ
chức dữ liệu trong các tập tin và thư mục, giúp người dùng và ứng dụng dễ dàng
truy cập và quản lý thông tin. 6
Quản lý quy trình và luồng: Quy trình là một chương trình ang chạy, và luồng là
một phần của quy trình có thể thực thi ộc lập. Hệ iều hành quản lý việc tạo, lên
lịch và kết thúc quy trình và luồng ể ảm bảo rằng mỗi ứng dụng ược cung cấp thời
gian CPU cần thiết ể thực hiện tác vụ của mình. Điều này bao gồm cả việc phân
chia thời gian CPU giữa các quy trình và ưu tiên các tác vụ quan trọng.
Quản lý bộ nhớ: Bộ nhớ ộng (RAM) là một nguồn tài nguyên hạn chế, và hệ iều
hành phải quản lý việc phân bổ bộ nhớ này giữa các quy trình một cách hiệu quả.
Điều này bao gồm việc phân chia bộ nhớ cho các ứng dụng ang yêu cầu, cũng như
giải phóng bộ nhớ khi nó không còn ược sử dụng. Hệ iều hành cũng thực hiện các
kỹ thuật như paging và swapping ể tối ưu hóa việc sử dụng bộ nhớ.
Giao diện người dùng: Hệ iều hành cung cấp giao diện người dùng (UI) ể người
dùng tương tác với máy tính. Điều này có thể là dạng dòng lệnh (CLI) cho phép
nhập các lệnh văn bản, hoặc giao diện ồ họa người dùng (GUI) với các biểu tượng
ồ họa và cửa sổ. UI giúp người dùng thực hiện các tác vụ một cách trực quan và dễ dàng.
Quản lý bảo mật và quyền truy cập: Bảo mật là một trong những nhiệm vụ quan
trọng nhất của hệ iều hành, bao gồm việc bảo vệ thông tin và dữ liệu trước các mối
e dọa và truy cập trái phép. Hệ iều hành quản lý tài khoản người dùng, mật khẩu,
quyền truy cập vào tệp và thư mục, và thực hiện các cơ chế mã hóa ể bảo vệ dữ
liệu. Điều này ảm bảo rằng chỉ những người dùng ược ủy quyền mới có thể truy
cập vào thông tin nhạy cảm và các tài nguyên hệ thống.
4. MỤC TIÊU NHIỆM VỤ CỦA HỆ ĐIỀU HÀNH (OS)
Hệ iều hành óng vai trò quan trọng trong việc cung cấp một môi trường ể các ứng
dụng có thể chạy trên máy tính, cũng như quản lý hiệu quả các tài nguyên phần
cứng và phần mềm của hệ thống. Dưới ây là mục tiêu và nhiệm vụ chính của hệ iều hành:
Thực hiện các thao tác cơ bản: Hệ iều hành thực hiện các thao tác cơ bản như ọc,
viết, và quản lý dữ liệu trong kho dữ liệu cùng hệ thống tập tin, giúp cho việc truy
cập và lưu trữ dữ liệu ược dễ dàng và hiệu quả.
Quản lý phần cứng: OS hỗ trợ iều khiển và quản lý phần cứng, giúp phần cứng ạt
hiệu suất cao nhất. Điều này bao gồm việc quản lý CPU, bộ nhớ, thiết bị lưu trữ,
và thiết bị nhập/xuất. 7
Cung cấp hệ thống lệnh: Hệ iều hành cung cấp một bộ lệnh cơ bản cho việc iều
hành máy, cho phép người dùng và các ứng dụng thực hiện các tác vụ một cách linh hoạt và mạnh mẽ.
Cung ứng giao diện người dùng: OS cung cấp giao diện người dùng, dù là dạng
dòng lệnh (CLI) hay giao diện ồ họa (GUI), ể hỗ trợ người dùng và các ứng dụng
trong việc tương tác với máy tính một cách thuận tiện.
Tăng cường tiện ích sử dụng: Hệ iều hành làm cho hệ thống máy tính dễ sử dụng
và hiệu quả hơn, giúp người dùng tiết kiệm thời gian và nâng cao năng suất làm việc.
Ẩn chi tiết phần cứng: OS giấu i các chi tiết phức tạp của phần cứng từ người dùng,
giúp họ tập trung vào công việc mà không cần lo lắng về cách thức hoạt ộng của phần cứng.
Cải thiện trải nghiệm người dùng: Hệ iều hành cung cấp một giao diện dễ sử dụng,
giúp cải thiện trải nghiệm tổng thể trên hệ thống máy tính.
Làm trung gian giữa phần cứng và người dùng: OS hoạt ộng như một trung gian,
giúp người dùng dễ dàng truy cập và sử dụng các tài nguyên máy tính mà không
cần hiểu biết sâu về công nghệ.
Quản lý tài nguyên: Hệ iều hành quản lý tài nguyên của hệ thống, ảm bảo sự phân
phối và sử dụng hiệu quả các nguồn lực như CPU, bộ nhớ, và thiết bị lưu trữ.
Giám sát sử dụng tài nguyên: OS theo dõi những người và chương trình ang sử
dụng tài nguyên, giải quyết xung ột và ảm bảo sự công bằng trong việc phân bổ tài nguyên.
Cung cấp và chia sẻ tài nguyên: Hệ iều hành cung cấp các tài nguyên cần thiết cho
người dùng và ứng dụng, ồng thời hỗ trợ chia sẻ tài nguyên một cách công bằng
và hiệu quả giữa các quy trình.
Những mục tiêu và nhiệm vụ này phản ánh sự a dạng và phức tạp của các chức
năng mà hệ iều hành cần thực hiện ể ảm bảo hoạt ộng ổn ịnh và hiệu quả của hệ thống máy tính. 8
PHẦN II : GIỚI THIỆU VỀ BẢO MẬT HỆ ĐIỀU HÀNH
(SECURITY - INTRO)
CHƯƠNG 1: GIỚI THIỆU CHUNG
1. Bảo mật trong hệ iều hành là gì ?
Bảo mật của các hệ thống máy tính là một chủ ề cực kỳ quan trọng, và tầm quan
trọng của nó chỉ ngày càng tăng lên. Rất nhiều tiền bạc ã bị mất và cuộc sống của
nhiều người ã bị ảnh hưởng khi việc bảo mật máy tính thất bại. Các cuộc tấn công
vào hệ thống máy tính ã trở nên phổ biến ến mức gần như không thể tránh khỏi
trong hầu hết mọi tình huống khi thực hiện việc tính toán. Nói chung, tất cả các
thành phần của một hệ thống máy tính có thể bị tấn công, và lỗi trong bất kỳ thành
phần nào trong số chúng cũng có thể tạo cơ hội cho kẻ tấn công thực hiện iều gì ó
chúng ta muốn ngăn chặn. Nhưng hệ iều hành ặc biệt quan trọng từ góc ộ bảo mật.
2. Tại sao bảo mật hệ iều hành lại quan trọng ?
Đầu tiên, hầu hết mọi thứ ều chạy trên hệ iều hành. Theo quy tắc, nếu phần mềm
ang chạy trên hệ iều hành, một phần mềm trung gian, hay thứ gì khác, thì nó không
thực sự an toàn, thứ nằm phía trên nó cũng sẽ không an toàn. Đó giống như xây
một ngôi nhà trên cát. Chúng ta có thể xây một cấu trúc vững chãi, nhưng một trận
lụt vẫn có thể cuốn trôi cơ sở phía dưới ngôi nhà , phá hủy hoàn toàn nó bất chấp
sự cẩn thận trong việc xây dựng. Tương tự, ứng dụng có thể không có lỗi bảo mật
nào của riêng nó, nhưng nếu kẻ tấn công có thể lợi dụng phần mềm phía dưới ể
ánh cắp thông tin của, làm sập chương trình, hoặc gây hại theo cách khác, nỗ lực
trong việc bảo vệ mã của mình có thể trở nên vô ích.
Điểm này ặc biệt quan trọng ối với hệ iều hành. Chúng ta có thể không quan tâm
ến an ninh của một máy chủ web cụ thể hoặc hệ thống cơ sở dữ liệu nếu không
chạy phần mềm ó, và có thể không quan tâm ến an ninh của một nền tảng trung
gian nào ó mà không sử dụng, nhưng mọi người ều sử dụng hệ iều hành, và có
tương ối ít lựa chọn ể chạy. Do ó, lỗi bảo mật trong một hệ iều hành, ặc biệt là một
hệ iều hành ược sử dụng rộng rãi, có ảnh hưởng lớn ến nhiều người dùng và nhiều phần mềm.
Lý do khác khiến an ninh hệ iều hành rất quan trọng là cuối cùng tất cả phần mềm
của chúng ta ều dựa vào sự hoạt ộng úng ắn của phần cứng cơ bản: bộ xử lý, bộ
nhớ và các thiết bị ngoại vi và hệ iều hành có quyền kiểm soát cuối cùng ối với
những tài nguyên phần cứng có trong máy tính. 9
Một thách thức khác trong việc bảo mật hệ iều hành là phần lớn hệ iều hành ược
thiết kế ể hỗ trợ nhiều quy trình cùng một lúc. Có nhiều cơ chế trong hệ iều hành
nhằm phân chia các quy trình khỏi nhau và bảo vệ các phần cứng chia sẻ khỏi việc
bị sử dụng theo cách làm ảnh hưởng ến các quy trình khác. Nếu mọi quy trình ều
có thể ược tin tưởng ể làm bất cứ iều gì nó muốn với bất kỳ tài nguyên phần cứng
nào và bất kỳ mảnh dữ liệu nào trên máy mà không làm hại ến quy trình khác, việc
bảo mật hệ thống sẽ dễ dàng hơn nhiều. Tuy nhiên, chúng ta thường không tin
tưởng mọi thứ một cách tuyệt ối. Khi tải xuống và chạy một oạn mã từ một trang
web mà chưa từng truy cập trước ây, chúng ta có thực sự muốn nó có thể xóa mọi
tệp từ ĩa , kết thúc tất cả các quy trình khác , và bắt ầu sử dụng giao diện mạng ể
gửi email rác ến các máy khác không? Có lẽ không, nhưng nếu bạn là chủ sở hữu
của máy tính của mình, bạn có quyền làm tất cả những iều ó, nếu ó là iều bạn muốn
làm. Và trừ khi hệ iều hành cẩn thận, bất kỳ quy trình nào nó chạy, bao gồm cả quy
trình chạy oạn mã bạn ã tải xuống, có thể làm bất cứ iều gì bạn có thể làm.
3. Góc ộ và thách thức của bảo mật hệ iều hành
Xem xét vấn ề bảo mật hệ iều hành từ một góc ộ khác. Một vai trò của hệ iều hành
là cung cấp các trừu tượng hữu ích cho các chương trình ứng dụng ể xây dựng trên
ó. Những ứng dụng này phải dựa vào các triển khai trừu tượng của OS ể hoạt ộng
như chúng ược ịnh nghĩa. Thường xuyên, một phần của ịnh nghĩa của các trừu
tượng như vậy là hành vi bảo mật của chúng. Ví dụ, chúng ta mong ợi rằng hệ
thống tệp của hệ iều hành sẽ thực thi các hạn chế truy cập mà nó ược cho là phải
thực thi. Các ứng dụng có thể xây dựng dựa trên kỳ vọng này ể ạt ược các mục tiêu
bảo mật mà họ yêu cầu, như dựa vào các ảm bảo truy cập tệp ể ảm bảo rằng một
tệp họ ã chỉ ịnh là không thể viết không bị thay ổi. Nếu các ứng dụng không thể
dựa vào việc triển khai úng ắn của các ảm bảo bảo mật cho các trừu tượng OS, thì
họ không thể sử dụng các trừu tượng này ể ạt ược các mục tiêu bảo mật của riêng
họ. Ít nhất, iều ó có nghĩa là nhiều công việc hơn cho các nhà phát triển ứng dụng,
vì họ sẽ cần phải thực hiện các biện pháp bổ sung ể ạt ược các mục tiêu bảo mật
mong muốn của họ. Lấy vào tài khoản cuộc thảo luận trước ó của chúng ta, họ
thường sẽ không thể ạt ược các mục tiêu này nếu các trừu tượng họ phải dựa vào
(như bộ nhớ ảo hoặc một chính sách lập lịch ược ịnh nghĩa rõ ràng) không thể ược tin cậy.
Rõ ràng, bảo mật hệ iều hành là quan trọng, nhưng khó ạt ược. Vậy chúng ta làm
gì ể bảo mật hệ iều hành của mình? Giải quyết câu hỏi này ã là một thách thức cho
nhiều thế hệ nhà khoa học máy tính, và vẫn chưa có câu trả lời hoàn chỉnh. Nhưng
có một số nguyên tắc và công cụ quan trọng mà chúng ta có thể sử dụng ể bảo mật
hệ iều hành. Những công cụ này thường ược xây dựng vào bất kỳ hệ iều hành dùng
chung nào mà chúng ta có thể làm việc với, và chúng thay ổi những gì có thể ược 10
thực hiện với hệ thống ó và cách chúng ta thực hiện nó. Vì vậy, có thể không quan
tâm ến bảo mật, nhưng chúng ta vẫn cần hiểu những gì hệ iều hành làm ể tự bảo
vệ ể cũng hiểu cách làm cho hệ thống làm những gì chúng ta mong muốn.
CHƯƠNG 2: CẦN LÀM GÌ ĐỂ BẢO MẬT HỆ ĐIỀU HÀNH
BẢO VỆ MÁY TÍNH TỐT NHẤT
Chúng ta khó có thể ạt ược sự bảo vệ tốt trừ khi chúng ta có một cái nhìn toàn diện
về những gì chúng ta ang cố gắng bảo vệ khi nói rằng hệ iều hành của chúng ta
nên ược bảo mật. May mắn thay, câu trả lời cho một hệ iều hành là dễ dàng, ít nhất
ở mức ộ cao: tất cả mọi thứ.
Câu trả lời này có thể không hoàn toàn là tốt nhất, nhưng tốt nhất là phải có một
sự hiểu biết thực tế về những hệ quả rộng lớn của bảo mật hệ iều hành.
Một hệ iều hành thông thường có quyền kiểm soát hoàn toàn (hoặc hầu hết) tất cả
phần cứng trên máy và có thể làm bất cứ iều gì phần cứng cho phép. Điều ó có
nghĩa là nó có thể kiểm soát bộ xử lý, ọc và viết tất cả các thanh ghi, kiểm tra bất
kỳ vị trí bộ nhớ chính nào và thực hiện bất kỳ hoạt ộng nào mà một trong những
thiết bị ngoại vi của nó hỗ trợ. Kết quả là, một số việc mà hệ iều hành có thể làm bao gồm:
Kiểm tra hoặc thay ổi bộ nhớ của bất kỳ quy trình nào
Đọc, viết, xóa hoặc làm hỏng bất kỳ tệp nào trên bất kỳ phương tiện lưu trữ vĩnh
viễn nào có thể ghi ược, bao gồm ổ cứng và ổ flash
Thay ổi lịch trình hoặc thậm chí dừng thực thi của bất kỳ quy trình nào Gửi bất kỳ
thông iệp nào ến bất cứ âu, bao gồm các phiên bản ã ược thay ổi của những gì một quy trình muốn gửi
Kích hoạt hoặc vô hiệu hóa bất kỳ thiết bị ngoại vi nào
Cấp quyền cho bất kỳ quy trình nào truy cập vào tài nguyên của bất kỳ quy trình nào khác
Tùy ý tước bỏ bất kỳ tài nguyên nào mà một quy trình kiểm soát
Phản hồi bất kỳ lời gọi hệ thống nào bằng một lời nói dối có hại nhất
Về bản chất, các quy trình phụ thuộc vào hệ iều hành. Gần như không thể cho một
quy trình 'bảo vệ' bất kỳ phần nào của nó khỏi một hệ iều hành ộc hại. Chúng ta
thường giả ịnh rằng hệ iều hành của mình không thực sự ộc hại, nhưng một lỗi cho
phép một quy trình ộc hại khiến hệ iều hành hoạt ộng sai lệch gần như tồi tệ như
vậy, vì nó có thể tiềm ẩn cho phép quy trình ó giành lấy bất kỳ quyền lực nào của
chính hệ iều hành. Điểm này nên khiến chúng ta suy nghĩ rất nghiêm túc về tầm 11
quan trọng của việc thiết kế hệ iều hành an toàn và, phổ biến hơn, áp dụng các bản
vá bảo mật cho bất kỳ hệ iều hành nào bạn ang chạy. Lỗi bảo mật trong hệ iều hành
của bạn có thể hoàn toàn làm tổn hại ến mọi thứ về máy tính mà hệ thống ó chạy
trên, vì vậy việc ngăn chặn chúng và vá bất kỳ lỗi nào ược phát hiện là vô cùng quan trọng.
CHƯƠNG 3: MỤC TIÊU VÀ CHÍNH SÁCH BẢO MẬT
1. Mục tiêu bảo mật cơ bản
Khi chúng ta nói muốn một hệ iều hành, hoặc bất kỳ hệ thống nào, ược bảo mật,
iều ó thật ra khá mơ hồ. Điều chúng ta thực sự muốn nói là có những việc chúng
ta muốn xảy ra trong hệ thống và những việc chúng ta không muốn xảy ra, và
chúng ta muốn một ộ tin cậy cao rằng chúng ta sẽ nhận ược những gì chúng ta
muốn. Như trong hầu hết các khía cạnh khác của cuộc sống, chúng ta thường phải
trả tiền cho những gì chúng ta nhận ược, vì vậy áng giá ể suy nghĩ về chính xác
những thuộc tính và hiệu ứng bảo mật mà chúng ta thực sự cần và sau ó chỉ trả tiền
cho những thứ ó, không phải cho những thứ khác mà chúng ta không cần. Điều
này có nghĩa là chúng ta muốn xác ịnh các mục tiêu mà chúng ta có cho hành vi
liên quan ến bảo mật của hệ thống của mình và chọn những phương pháp phòng
thủ có khả năng ạt ược những mục tiêu ó với một chi phí hợp lý.
Các nhà nghiên cứu về bảo mật ã suy nghĩ về vấn ề này một cách rộng rãi từ lâu.
Ở một cấp ộ khái niệm cao, họ ã ịnh nghĩa ba mục tiêu lớn liên quan ến bảo mật
thường gặp ở nhiều hệ thống, bao gồm cả hệ iều hành. Đó là:
Bảo mật thông tin: Nếu một thông tin nào ó ược cho là nên ược giấu kín khỏi người
khác, không cho họ tìm hiểu ược thông tin ó. Ví dụ, bạn không muốn ai ó biết số
thẻ tín dụng của bạn - bạn muốn số ó ược giữ kín.
Tính toàn vẹn: Nếu một thông tin hay thành phần của một hệ thống ược cho là nên
ở một trạng thái cụ thể, không cho phép kẻ thù thay ổi nó. Ví dụ, nếu bạn ã ặt mua
trực tuyến một pizza pepperoni, bạn không muốn một kẻ ùa cợt ác ý thay ổi ơn
hàng của bạn thành 1000 pizza cá cơm. Một khía cạnh quan trọng của tính toàn
vẹn là tính xác thực. Thường xuyên quan trọng phải chắc chắn không chỉ thông tin
không bị thay ổi, mà còn phải ược tạo ra bởi một bên cụ thể chứ không phải bởi kẻ thù.
Khả năng sẵn có: Nếu một thông tin hay dịch vụ nào ó ược cho là nên sẵn có cho
việc sử dụng của bạn hoặc người khác, hãy ảm bảo rằng kẻ tấn công không thể
ngăn cản việc sử dụng nó. Ví dụ, nếu doanh nghiệp của bạn ang có một ợt giảm
giá lớn, bạn không muốn ối thủ cạnh tranh của mình có thể chặn các con ường
xung quanh cửa hàng của bạn, ngăn khách hàng tiếp cận với bạn. 12
2. Một số khía cạnh khác của bảo mật hệ iều hành
Một khía cạnh quan trọng bổ sung của ba mục tiêu này là chúng ta muốn có sự
chia sẻ ược kiểm soát trong hệ thống của mình. Chúng ta chia sẻ bí mật của mình
với một số người nhưng không phải với người khác. Chúng ta cho phép một số
người thay ổi cơ sở dữ liệu của doanh nghiệp mình, nhưng không phải bất kỳ ai.
Một số hệ thống cần ược làm cho sẵn có cho một nhóm người dùng ưu tiên cụ thể
(như những người ã trả tiền ể chơi trò chơi trực tuyến của bạn) và không phải cho
những người khác (những người không trả tiền). Ai là người yêu cầu rất quan trọng,
trong máy tính cũng như trong cuộc sống hàng ngày.
Một khía cạnh quan trọng khác của bảo mật ối với các hệ thống máy tính là chúng
ta thường muốn chắc chắn rằng khi ai ó nói với chúng ta iều gì ó, họ không thể sau
ó phủ nhận việc họ ã làm. Khía cạnh này thường ược gọi là không thể từ chối.
Càng khó và ắt ỏ hơn cho ai ó ể phủ nhận hành ộng của họ, thì càng dễ dàng ể
chúng ta giữ họ chịu trách nhiệm về những hành ộng ó, và do ó, mọi người càng ít
có khả năng thực hiện các hành ộng ác ý. Sau cùng, họ có thể sẽ bị bắt và sẽ gặp
rắc rối khi phủ nhận việc họ ã làm.
3. Mục tiêu của bảo mật hệ iều hành
Đây là những mục tiêu lớn, chung chung. Đối với một hệ thống thực tế, bạn cần
phải i sâu vào các mục tiêu cụ thể, chi tiết hơn. Trong một hệ iều hành thông thường,
ví dụ, chúng ta có thể có một mục tiêu bảo mật thông tin nêu rằng không gian bộ
nhớ của một quá trình không thể bị ọc một cách tùy ý bởi một quá trình khác.
Chúng ta có thể có một mục tiêu tính toàn vẹn nêu rằng nếu một người dùng viết
một bản ghi vào một tệp cụ thể, một người dùng khác không ược phép viết tệp ó
không thể thay ổi bản ghi. Chúng ta có thể có một mục tiêu về khả năng sẵn có nêu
rằng một quá trình chạy trên hệ thống không thể chiếm hữu CPU và ngăn các quá
trình khác nhận ược phần CPU của họ. Nếu bạn suy ngẫm lại những gì bạn ã học
về trừu tượng hóa quá trình, quản lý bộ nhớ, lập lịch, hệ thống tệp, IPC, và các chủ
ề khác từ lớp học này, bạn nên có thể nghĩ ra một số mục tiêu bảo mật thông tin,
tính toàn vẹn, và khả năng sẵn có khác mà chúng ta có thể muốn trong hệ iều hành của mình.
Đối với bất kỳ hệ thống cụ thể nào, ngay cả các mục tiêu ở cấp ộ này cũng không
ủ cụ thể. Mục tiêu tính toàn vẹn ược ám chỉ ở trên, nơi một tệp của người dùng
không nên bị ghi è bởi một người dùng khác không ược phép làm như vậy, cho
bạn một manh mối về ộ cụ thể thêm mà chúng ta cần trong các mục tiêu bảo mật
của chúng ta cho một hệ thống cụ thể. Có thể có một số người dùng nào ó nên có
thể ghi è lên tệp ó, như có thể xảy ra khi hai người ang cộng tác viết một báo cáo. 13
Nhưng iều ó không có nghĩa là một người dùng thứ ba không liên quan nên có thể
viết tệp ó, nếu anh ta không cộng tác về báo cáo ược lưu trữ ở ó. Chúng ta cần có
khả năng chỉ ịnh chi tiết như vậy trong các mục tiêu bảo mật của mình. Hệ iều
hành ược viết ể ược sử dụng bởi nhiều người khác nhau với nhiều nhu cầu khác
nhau, và bảo mật hệ iều hành nên phản ánh sự tổng quát ó. Những gì chúng ta
muốn trong các cơ chế bảo mật cho hệ iều hành là sự linh hoạt trong việc mô tả
các mục tiêu bảo mật chi tiết của chúng ta.
Cuối cùng, tất nhiên, phần mềm hệ iều hành phải cố gắng hết sức ể thực thi những
mục tiêu bảo mật linh hoạt ó, iều này có nghĩa là chúng ta sẽ cần phải mã hóa
những mục tiêu ó thành các hình thức mà phần mềm có thể hiểu ược. Chúng ta
thường phải chuyển ổi sự hiểu biết mơ hồ của mình về các mục tiêu bảo mật của
mình thành các chính sách bảo mật cụ thể, rõ ràng. Ví dụ, trong trường hợp của
tệp ược mô tả ở trên, chúng ta có thể muốn chỉ ịnh một chính sách như 'người dùng
A và B có thể viết vào tệp X, nhưng không có người dùng nào khác có thể viết nó.'
Với mức ộ cụ thể ó, ược hỗ trợ bởi các cơ chế ược thiết kế và triển khai cẩn thận,
chúng ta có thể hy vọng ạt ược các mục tiêu bảo mật của mình.
Lưu ý một hậu quả quan trọng cho bảo mật hệ iều hành: trong nhiều trường hợp,
một hệ iều hành sẽ có các cơ chế cần thiết ể thực hiện một chính sách bảo mật
mong muốn với một mức ộ ảm bảo cao trong việc áp dụng úng ắn của nó, nhưng
chỉ khi có ai ó nói cho hệ iều hành chính xác chính sách ó là gì. Với một số ngoại
lệ quan trọng (như duy trì không gian ịa chỉ của một quá trình riêng tư trừ khi ược
chỉ ạo khác), hệ iều hành chỉ cung cấp các cơ chế chung có thể thực hiện nhiều
chính sách cụ thể. Tuy nhiên, không có thiết kế thông minh của các chính sách và
áp dụng cẩn thận các cơ chế, những gì hệ iều hành nên hoặc có thể làm có thể
không phải là những gì hệ iều hành của bạn sẽ làm.
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG BẢO MẬT HỆ ĐIỀU HÀNH
Ít người trong số các bạn sẽ tự xây dựng hệ iều hành của mình, hay thậm chí thực
hiện những thay ổi nghiêm túc ối với bất kỳ hệ iều hành hiện có nào, nhưng chúng
tôi kỳ vọng nhiều bạn sẽ xây dựng các hệ thống phần mềm lớn theo một cách nào
ó. Kinh nghiệm của nhiều nhà khoa học máy tính với thiết kế hệ thống ã chỉ ra
rằng có một số nguyên tắc thiết kế hữu ích trong việc xây dựng các hệ thống có
yêu cầu bảo mật. Những nguyên tắc này ược Jerome Saltzer và Michael Schroeder
ề xuất lần ầu tiên trong một bài báo có ảnh hưởng, mặc dù một số trong chúng ến
từ những quan sát trước ó của người khác. Mặc dù không có tác giả gốc hay những
người bình luận sau này tuyên bố rằng việc tuân theo chúng sẽ ảm bảo rằng hệ 14
thống của bạn an toàn, việc chú ý ến chúng ã ược chứng minh là dẫn ến các hệ
thống an toàn hơn, trong khi bạn bỏ qua chúng thì tự mình chịu rủi ro.
Nếu thực sự ang xây dựng một hệ thống phần mềm lớn, thì việc tìm hiểu bài báo
này (hoặc các bình luận chi tiết hơn về nó) và nghiên cứu các khái niệm một cách
cẩn thận sẽ áng giá rất nhiều.
Kinh tế về cơ chế (Economy of mechanism) - Điều này cơ bản có nghĩa là giữ hệ
thống của bạn càng nhỏ và ơn giản càng tốt. Hệ thống ơn giản có ít lỗi hơn và dễ
dàng hiểu ược hành vi của chúng hơn. Nếu bạn không hiểu hành vi của hệ thống,
bạn khó có thể biết liệu nó có ạt ược mục tiêu bảo mật của mình hay không.
Mặc ịnh an toàn (Fail-safe defaults)- Mặc ịnh ể an toàn, không phải không an toàn.
Nếu các chính sách có thể ược thiết lập ể xác ịnh hành vi của hệ thống, hãy có mặc
ịnh cho những chính sách ó an toàn hơn, không phải ít an toàn hơn.
Kiểm soát toàn diện (Complete mediation) - Đây là một thuật ngữ bảo mật có nghĩa
là bạn nên kiểm tra xem một hành ộng ược thực hiện có áp ứng các chính sách bảo
mật mỗi lần hành ộng ó ược thực hiện.
Thiết kế mở (Open design) - Giả ịnh kẻ thù của bạn biết mọi chi tiết của thiết kế
của bạn. Nếu hệ thống vẫn ạt ược mục tiêu bảo mật của mình, bạn ang ở trong tình
trạng tốt. Nguyên tắc này không nhất thiết có nghĩa là bạn thực sự nói với mọi
người tất cả các chi tiết, nhưng dựa vào giả ịnh rằng kẻ tấn công ã tìm hiểu mọi
thứ. Trên thực tế, anh ta thường ã biết.
Tách biệt quyền hạn (Separation of privilege) - Yêu cầu các bên hoặc thông tin xác
thực riêng biệt ể thực hiện các hành ộng quan trọng. Ví dụ, xác thực hai yếu tố, nơi
bạn sử dụng cả mật khẩu và sở hữu một phần cứng ể xác ịnh danh tính, an toàn
hơn là sử dụng bất kỳ phương pháp nào ó một mình.
Quyền hạn tối thiểu (Least privilege) - Cấp cho người dùng hoặc quy trình những
quyền hạn tối thiểu cần thiết ể thực hiện các hành ộng bạn muốn cho phép. Bạn
càng cấp nhiều quyền hạn cho một bên, nguy cơ họ lạm dụng những quyền hạn ó
càng lớn. Ngay cả khi bạn tin tưởng rằng bên ó không có ác ý, nếu họ mắc lỗi, một
kẻ thù có thể tận dụng lỗi của họ ể sử dụng quyền hạn thừa của họ theo cách có hại.
Cơ chế ít chung nhất (Least common mechanism)- Đối với các người dùng hoặc
quy trình khác nhau, sử dụng các cấu trúc dữ liệu hoặc cơ chế riêng biệt ể xử lý
chúng. Ví dụ, mỗi quy trình nhận ược bảng trang riêng của mình trong một hệ 15
thống bộ nhớ ảo, ảm bảo rằng một quy trình không thể truy cập vào các trang của quy trình khác.
Tính chấp nhận (Acceptability) - Một tính chất quan trọng không ược nhiều lập
trình viên yêu thích. Nếu người dùng của bạn không sử dụng nó, hệ thống của bạn
vô giá trị. Quá nhiều hệ thống bảo mật hứa hẹn ã bị bỏ rơi vì chúng yêu cầu quá
nhiều từ người dùng của mình.
Những lời khuyên trên không phải là những lời khuyên duy nhất hữu ích về thiết
kế các hệ thống an toàn. Còn rất nhiều tài liệu tốt về bước tiếp theo, chuyển ổi một
thiết kế tốt thành mã code ạt ược mục tiêu bảo mật bạn dự ịnh, cũng như các tài
liệu khác về cách ánh giá liệu hệ thống bạn ã xây dựng có thực sự áp ứng những
mục tiêu ó hay không. Những vấn ề này nằm ngoài phạm vi của khóa học này,
nhưng lại vô cùng quan trọng khi bạn ến lúc cần xây dựng các hệ thống lớn, phức tạp.
Để thảo luận về các phương pháp lập trình an toàn, bạn có thể bắt ầu với tác phẩm
của Seacord, nếu bạn làm việc với ngôn ngữ C. Nếu bạn làm việc với một ngôn
ngữ khác, bạn nên tìm kiếm một tài liệu tương tự cụ thể cho ngôn ngữ ó, vì nhiều
vấn ề lập trình an toàn liên quan ến chi tiết của ngôn ngữ. Để có một cách tiếp cận
toàn diện về cách ánh giá liệu hệ thống của bạn có an toàn không, hãy bắt ầu với
công trình của Dowd và cộng sự.
CHƯƠNG 5: KHÁI NIỆM CƠ BẢN VỀ BẢO MẬT HỆ ĐIỀU HÀNH 1. Khái niệm
Trong một hệ iều hành iển hình, chúng ta có một số mục tiêu bảo mật, tập trung
vào các khía cạnh khác nhau của bảo mật thông tin, toàn vẹn, và khả dụng. Một số
mục tiêu này có xu hướng ược tích hợp sẵn vào mô hình hệ iều hành, trong khi
những mục tiêu khác ược kiểm soát bởi chủ sở hữu hoặc người dùng của hệ thống.
Các mục tiêu tích hợp sẵn là những mục tiêu cực kỳ phổ biến, hoặc phải ược ảm
bảo ể làm cho các mục tiêu cụ thể hơn có thể ạt ược. Hầu hết các mục tiêu tích hợp
sẵn liên quan ến việc kiểm soát quyền truy cập của quy trình ến các bộ phận của phần cứng.
Điều này là bởi vì phần cứng ược chia sẻ bởi tất cả các quy trình trên một hệ thống,
và trừ khi việc chia sẻ ược kiểm soát cẩn thận, một quy trình có thể can thiệp vào
mục tiêu bảo mật của quy trình khác. Các mục tiêu tích hợp sẵn khác liên quan ến
các dịch vụ mà hệ iều hành cung cấp, như hệ thống tệp, quản lý bộ nhớ, và giao
tiếp giữa các quy trình. Nếu những dịch vụ này không ược kiểm soát cẩn thận, các
quy trình có thể lật ổ mục tiêu bảo mật của hệ thống. 16
2. Xử lý quy trình và bảo mật
Rõ ràng, rất nhiều bảo mật hệ thống sẽ liên quan ến việc xử lý quy trình. Nếu hệ
iều hành có thể duy trì sự phân chia rõ ràng của các quy trình mà chỉ có thể bị phá
vỡ với sự giúp ỡ của hệ iều hành, thì cả phần cứng chia sẻ lẫn dịch vụ hệ iều hành
không thể ược sử dụng ể lật ổ các mục tiêu bảo mật của chúng ta. Yêu cầu ó ngụ ý
rằng hệ iều hành cần phải cẩn thận khi cho phép sử dụng phần cứng và các dịch
vụ của mình. Trong nhiều trường hợp, hệ iều hành có cơ hội tốt ể áp dụng sự cẩn
thận như vậy. Ví dụ, hệ iều hành kiểm soát bộ nhớ ảo, từ ó hoàn toàn kiểm soát ịa
chỉ bộ nhớ vật lý nào mà mỗi quy trình có thể truy cập. Sự hỗ trợ của phần cứng
ngăn chặn một quy trình từ việc thậm chí gọi một ịa chỉ bộ nhớ vật lý không ược
ánh xạ vào không gian bộ nhớ ảo của nó. (Những người làm việc về phần mềm
trong chúng ta nên nhớ cảm ơn những người làm việc về phần cứng vì tất cả những
thứ tuyệt vời họ ã cung cấp cho chúng ta ể làm việc.)
3. Lời gọi hệ thống trong hệ iều hành
Các lời gọi hệ thống cung cấp cho hệ iều hành một cơ hội khác ể cung cấp bảo vệ.
Trong hầu hết các hệ iều hành, các quy trình truy cập các dịch vụ hệ thống bằng
cách thực hiện một lời gọi hệ thống rõ ràng, như ã ược thảo luận trong các chương
trước. Như bạn ã học, các lời gọi hệ thống chuyển chế ộ thực thi từ chế ộ người
dùng của bộ xử lý sang chế ộ giám sát của nó, kích hoạt một phần mã hệ iều hành
phù hợp khi làm như vậy. Mã ó có thể xác ịnh quy trình nào ã thực hiện lời gọi hệ
thống và dịch vụ nào mà quy trình yêu cầu. Trước ây, chúng ta chỉ nói về cách iều
này có thể cho phép hệ iều hành gọi oạn mã hệ thống phù hợp ể thực hiện dịch vụ,
và ể theo dõi ai ể trả lại quyền kiểm soát khi dịch vụ ã ược hoàn thành. Nhưng
cùng một cơ chế cung cấp cho hệ iều hành cơ hội ể kiểm tra liệu dịch vụ ược yêu
cầu có nên ược cho phép theo chính sách bảo mật của hệ thống hay không. Vì
quyền truy cập vào các thiết bị ngoại vi thông qua trình iều khiển thiết bị, thường
cũng ược truy cập qua lời gọi hệ thống, cùng một cơ chế có thể ảm bảo áp dụng
úng chính sách bảo mật cho quyền truy cập phần cứng.
Khi một quy trình thực hiện một lời gọi hệ thống, hệ iều hành sẽ sử dụng ịnh danh
quy trình trong khối kiểm soát quy trình hoặc cấu trúc tương tự ể xác ịnh danh tính
của quy trình. Hệ iều hành sau ó có thể sử dụng các cơ chế kiểm soát truy cập ể
quyết ịnh liệu quy trình ược xác ịnh có ược phép thực hiện hành ộng ược yêu cầu
hay không. Nếu có, hệ iều hành hoặc là tự thực hiện hành ộng ó thay mặt cho quy
trình hoặc sắp xếp cho quy trình thực hiện nó mà không cần can thiệp thêm của hệ
thống. Nếu quy trình không ược phép, hệ iều hành có thể ơn giản tạo ra một mã
lỗi cho lời gọi hệ thống và trả lại quyền kiểm soát cho quy trình, nếu thuật toán lập lịch cho phép. 17
CHƯƠNG 6: TỔNG KẾT
Bảo mật của hệ iều hành là một yếu tố quan trọng không chỉ cho chính hệ iều hành
mà còn cho cả các ứng dụng chạy trên nó. Các lỗ hổng bảo mật trong phần mềm
này có thể dẫn ến những hậu quả nghiêm trọng, với khả năng gây ra thiệt hại không
giới hạn. Trong bối cảnh ó, việc ảm bảo bảo mật cho hệ thống là một nhiệm vụ ầy
thách thức nhưng không phải là không thể. Có một số nguyên tắc thiết kế ã ược
xác ịnh qua thời gian, những nguyên tắc này ã chứng minh là có giá trị không chỉ
trong việc thiết kế hệ iều hành mà còn trong việc phát triển bất kỳ hệ thống phần mềm lớn nào.
Một phần quan trọng của việc ạt ược bảo mật trong hệ iều hành là xác ịnh rõ ràng
các mục tiêu bảo mật cần ạt ược. Những mục tiêu này thường xoay quanh các khía
cạnh như bảo mật thông tin, toàn vẹn dữ liệu, và khả dụng của hệ thống. Tùy thuộc
vào yêu cầu cụ thể của mỗi hệ thống, các mục tiêu bảo mật cụ thể có thể thay ổi,
iều này dẫn ến việc các hệ thống khác nhau sẽ cần áp dụng các chính sách bảo mật
khác nhau ể áp ứng nhu cầu của mình. Trong quá trình thiết kế hệ iều hành, một
phương pháp tiếp cận phổ biến là phân tách giữa các chính sách bảo mật cụ thể -
ược thiết lập ể áp ứng nhu cầu của từng hệ thống riêng lẻ - và các cơ chế chung -
ược sử dụng ể thực hiện các chính sách bảo mật trên tất cả các hệ thống. Phương
pháp tiếp cận này cho phép tạo ra một khuôn khổ linh hoạt, trong ó có thể dễ dàng
iều chỉnh các chính sách bảo mật ể phù hợp với các yêu cầu bảo mật ang thay ổi
mà không cần phải sửa ổi các cơ chế cơ bản của hệ thống. 18
PHẦN III: KẾT LUẬN
Chúng em xin chân thành biết ơn sâu sắc đến Thầy Trần Đăng Hoan
về sự tận tình, kiên nhẫn và sự hỗ trợ quý báu trong suốt quá trình thực hiện
báo cáo bài tập lớn về đề tài "Giới thiệu về bảo mật trong hệ điều hành".
Thầy không chỉ là người hướng dẫn mà còn là người bạn đồng hành đáng tin
cậy, luôn sẵn lòng chia sẻ kiến thức và kinh nghiệm để giúp em vượt qua
những khó khăn, hoàn thiện báo cáo một cách tốt nhất.
Nhờ sự chỉ dẫn của Thầy, chúng em đã có cơ hội hiểu sâu hơn về tầm
quan trọng của bảo mật trong hệ điều hành, nhận thức được các nguy cơ tiềm
ẩn cũng như biết cách áp dụng các biện pháp bảo mật hiệu quả. Qua đó, kiến
thức và kỹ năng mà chúng em thu được từ bài tập này sẽ là nền tảng vững
chắc cho sự phát triển và thành công trong tương lai.
Chúng em cam kết sẽ tiếp tục nỗ lực học tập và áp dụng những kiến
thức mà Thầy đã truyền đạt, để trở thành những chuyên gia uyên bác trong
lĩnh vực này. Một lần nữa, chúng em xin gửi lời biết ơn chân thành nhất đến
Thầy Trần Đăng Hoan và hy vọng sẽ tiếp tục nhận được sự hỗ trợ và định
hướng từ Thầy trong những hành trình học tập và nghiên cứu sắp tới. 19