Hệ điều hành là một bộ phận cấu thành quan trọng của hệ thống máy tính giúp cho con người có thể khai thác và sử dụng hiệu quả hệ thống máy tính. Phần 1 trình bày các nội dung chính sau: Giới thiệu vấn đề cơ bản với an toàn hệ điều hành; Một số cơ chế đảm bảo an toàn phần cứng dựa trên cơ chế bảo vệ theo lớp; Cơ chế an toàn của kiến trúc x86 đối với các dịch vụ cơ bản của hệ điều hành như quản lý việc thực thi của các chương trình cũng như quản lý bộ nhớ. Mời các bạn cùng tham khảo để nắm nội dung chi tiết.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG ***** PHẠM HOÀNG DUY BÀI GIẢNG AN TOÀN HỆ ĐIỀU HÀNH HÀ NỘI 2017 Lời nói đầu Hệ điều hành phận cấu thành quan trọng hệ thống máy tính giúp cho người khai thác sử dụng hiệu hệ thống máy tính Sự phổ biến máy tính phát triển ứng dụng mạng khiến cho vấn đề an toàn trở nên cấp thiết Bài giảng môn học trước hết giới thiệu yêu cầu kiến trúc đáp ứng mục tiêu an toàn cho hệ điều hành Đồng thời, giảng trình bày số chế phần cứng máy tính cho phép hạn chế, che dấu, kiểm soát việc sử dụng tài nguyên máy tính xử lý, nhớ thiết bị vào/ra để hỗ trợ cho hệ điều hành triển khai dịch vụ quản lý tiến trình cách an tồn Ngồi ra, giảng giới thiệu mơ hình an tồn tắc phục vụ cho yêu cầu an toàn khác hệ thống tính tồn vẹn hay tính bí mật Phần cuối trình bày cách thức mơ tả yêu cầu kỹ thuật kiểm chứng nhằm kiểm tra đánh giá khả đáp ứng yêu cầu an toàn hệ thống Cấu trúc chi tiết giảng sau Chương I giới thiệu vấn đề với an toàn hệ điều hành tập trung chủ yếu vào việc mô tả xác định mục tiêu yêu cầu an toàn với hệ điều hành nói chung Việc xây dựng sách mơ tả xác xác định mục tiêu an tồn phù hợp đóng vai trị then chốt việc phát triển chế bảo vệ đảm bảo an toàn cho hệ điều hành việc đánh giá tính an toàn chế với hệ thống Nhân an tồn tảng tính tốn tin cậy phận quan trọng then chốt việc kiểm sốt đảm bảo an tồn cho chương trình người dùng thân hệ điều hành Chương II trình bày số chế đảm bảo an toàn phần cứng dựa chế bảo vệ theo lớp Trong lớp gắn với mức đặc quyền cho phép tiến trình người dùng phép truy nhập tới thao tác định Cơ chế đóng vai trị cốt lõi cho kiểm soát việc thực thi, sử dụng nhớ tiến trình truy nhập tới thiết bị vào/ra Chương III tập trung vào chế an toàn kiến trúc x86 dịch vụ hệ điều hành quản lý việc thực thi chương trình quản lý nhớ Các u cầu tính tồn vẹn bí mật hệ thống file nhận hỗ trợ đảm bảo tốt so với việc mã hóa thơng thường từ mơ-đun hạ tầng tin cậy TPM nhờ vào việc bảo vệ khóa xác thực đóng gói phần cứng Phần cuối chương giới thiệu cách thức triển khai chế bảo đảm an toàn hệ điều hành sử dụng kiến trúc x86 Windows Unix/Linux Các vấn đề an toàn với hệ điều hành thảo luận chi tiết phần Ngoài ra, phần giới thiệu số cách tiếp cận nhằm đảm bảo yêu cầu an toàn kiểm chứng mức độ cao yêu cầu bao gồm nhân an toàn SCOMP mơ-đun an tồn Linux Chương IV trình bày mơ hình an tồn tắc cho phép mơ tả kiểm chứng yêu cầu cần phải đạt với mơ hình đề xuất Ngồi mơ hình truyền thống dựa máy trạng thái, chương giới thiệu mơ hình cho phép đảm bảo u cầu tính tồn vẹn bí mật hệ thống máy tính Phần trình bày kết thu bỏ qua chi tiết chứng minh kết Chương V giới thiệu cách thức giúp cho việc đánh giá kiểm tra yêu cầu an tồn với hệ thống máy tính thơng qua việc xây dựng đặc tả yêu cầu hệ thống Ngoài ra, phần giới thiệu hai kỹ thuật kiểm chứng mã chương trình có đảm bảo u cầu đặt hay khơng Đó phương pháp phân tích tĩnh phân tích động Về bản, phần đầu chương cho phép đánh giá tính an tồn hệ thống xét mặt thiết kế Phần phân tích mã chương trình nhằm kiểm tra đánh giá việc triển khai hành vi chương trình Mục lục CHƯƠNG TỔNG QUAN AN TOÀN HỆ ĐIỀU HÀNH 1.1 Giới thiệu 1.2 Các vấn đề kiến trúc an toàn 15 1.3 Chính sách an tồn 17 1.4 Nền tảng tính tốn tin cậy 18 1.5 Nhân an toàn 23 1.6 Câu hỏi ôn tập 26 CHƯƠNG CÁC CƠ CHẾ AN TOÀN PHẦN CỨNG 27 2.1 Hỗ trợ tiến trình 27 2.2 Bảo vệ nhớ 29 2.3 Kiểm soát thao tác vào/ra 31 2.4 Ảo hóa 33 2.5 Kết luận 34 2.6 Câu hỏi ôn tập 35 CHƯƠNG AN TOÀN CÁC DỊCH VỤ CƠ BẢN CỦA HỆ ĐIỀU HÀNH 36 3.1 Quản lý tiến trình 36 3.2 Quản lý nhớ 38 3.3 Hệ thống file 42 3.4 Phân tích an tồn dịch vụ hệ điều hành Windows Unix/Linux 48 3.5 Kết luận 65 3.6 Câu hỏi ôn tập 66 CHƯƠNG CÁC MƠ HÌNH AN TỒN 67 4.1 Vai trò đặc trưng mơ hình an tồn 67 4.2 Mơ hình máy trạng thái 69 4.3 Mơ hình Harrison-Ruzzo-Ullman 72 4.4 Các mơ hình khác 74 4.5 Kết luận 79 4.6 Câu hỏi ôn tập 79 CHƯƠNG ĐÁNH GIÁ AN TOÀN 80 5.1 Các đặc trưng đặc tả an toàn 80 5.2 Các kỹ thuật kiểm chứng đặc tả an toàn 82 5.3 Các phương pháp phân rã liệu chương trình 88 5.4 Các kỹ thuật kiểm chứng mã chương trình 91 5.5 Kết luận 99 5.6 Câu hỏi ôn tập 99 Danh mục hình vẽ Hình 1-1 Hệ điều hành điều phối truy nhập tiến trình Hình 1-2 Ma trận truy nhập với hai tiến trình 12 Hình 1-3 Hệ thống bảo vệ bắt buộc 14 Hình 1-4 Mơ đun TPM phần cứng .20 Hình 1-5 Các phận chức TPM .22 Hình 1-6 Tương tác tiến trình giám sát tham chiếu 25 Hình 2-1 Các lớp bảo vệ tiêu biểu .28 Hình 2-2 Cấu trúc mơ tả phần nhớ cổng 29 Hình 2-3 Xung đột nhớ chương trình người dùng 30 Hình 2-4 Ánh xạ từ nhớ ảo tới nhớ vật lý 30 Hình 2-5 Mơ tả chế độ truy nhập nhớ User System 31 Hình 2-6 Ánh xạ thiết bị ảo tới thiết bị vật lý 32 Hình 3-1 Thẻ chọn đoạn liệu lệnh 37 Hình 3-2 Kiểm tra mức đặc quyền đoạn lệnh .38 Hình 3-3 Thẻ mơ tả đoạn 39 Hình 3-4 Thẻ chọn đoạn 39 Hình 3-5 Truy nhập nhớ qua GDT 40 Hình 3-6 Cấu trúc khơng gian nhớ tiến trình thơng tin quản lý nhớ 41 Hình 3-7 Kiểm tra đặc quyền truy nhập nhớ 41 Hình 3-8 Tính tốn sở tin cậy q trình khởi động .43 Hình 3-9 Khởi động bảo vệ Windows với BIOS truyền thống .45 Hình 3-10 Bảo vệ sử dụng khóa mã TPM 47 Hình 3-11 Quá trình giải mã ổ đĩa BitLocker 47 Hình 3-12 Danh sách kiểm soát truy nhập thẻ tiến trình 50 Hình 3-13 Cơ chế bảo vệ bít chế độ 54 Hình 3-14 Kiến trúc giao tiếp LSM 59 Hình 3-15 Kiến trúc SCOMP .62 Hình 3-16 Phần cứng SCOMP 63 Hình 4-1 Tương quan bước phát triển mơ hình an tồn 68 Hình 4-2 Xây dựng luồng thơng tin 75 Hình 4-3 Nguyên tắc an toàn Bell-La Padula 76 Hình 5-1 Giao tiếp hai hệ thống .81 Hình 5-2 Tương quan mơ hình đặc tả an toàn 82 Hình 5-3 Quan hệ đối tượng hệ thống file 86 Hình 5-4 Phản chứng cho thấy lỗi với thư mục tuần hoàn 88 Hình 5-5 Các mức độ chi tiết việc đặc tả mơ hình việc triển khai 89 Hình 5-6 Phân rã thuật toán theo lớp 90 Hình 5-7 Phân rã thuật tốn cho thao tác hệ thống file 91 Hình 5-8 Mơ hình phân tích tĩnh đoạn mã 92 Hình 5-9 Bộ luật sinh phân tích 93 Hình 5-10 Cây cú pháp câu lệnh 94 Hình 5-11 Cây cú pháp khái quát 94 Hình 5-12 Luồng điều khiển 95 Hình 5-13 Đồ thị gọi hàm ba phương thức larry, moe, curly 95 Hình 5-14 Các cơng cụ phân tích tĩnh .96 Các từ viết tắt ACL – Access Control List: Danh sách kiểm soát truy nhập BIOS – Basic Input Output System: Hệ thống vào CPU – Central Processing Unit: Đơn vị xử lý trung tâm DAC – Discretionary Access Control: Kiểm soát truy nhập tùy chọn DEP – Data Execution Prevention: Ngăn chặn thực thi liệu EAL - Evaluation Assurance Levels: Mức độ đánh giá an toàn FAT– File Allocation Table: Bảng cấp phát file GUI – Graphic User Interface: Giao diện người dùng đồ họa IDE – Integrated Development Environment: Môi trường phát triển tích hợp IDS – Intrusion Detection System: Hệ thống phát xâm nhập LSM – Linux Security Module: Mô-đun an ninh Linux MAC – Mandatory Access Control: Kiểm soát truy nhập bắt buộc MLS – Multi-Level Security: An toàn nhiều mức NX – No eXecution: Cấm thực thi OS – Operating System: Hệ điều hành PC – Personal Computer: máy tính cá nhân PCR – Platform Configuration Register: Thanh ghi cấu hình hệ thống POSIX – Portable Operating System Interface: Giao tiếp hệ điều hành khả chuyển RBAC – Role Based Access Control: Kiểm soát truy nhập theo vai trò SCOMP – Secure Communication Processor: Bộ xử lý truyền thơng an tồn SELinux – Secure-Enhanced Linux: Linux với an ninh tăng cường TPM – Trusted Platform Module: Mô-đun hạ tầng tin cậy UEFI – Unified Extensible Firmware Interface: Giao tiếp firmware mở rộng hợp UML – Unified Modeling Language: Ngơn ngữ lập mơ hình hợp CHƯƠNG TỔNG QUAN AN TOÀN HỆ ĐIỀU HÀNH Hệ điều hành phần mềm đặc biệt cho phép người dùng truy nhập tới tài nguyên phần cứng khác mà chúng cấu thành hệ thống máy tính cụ thể bao gồm xử lý, nhớ, thiết bị ngoại vi Bất kỳ phần mềm chạy hệ thống máy tính sử dụng tập lệnh cung cấp xử lý hệ thống phần mềm cần dùng tài nguyên khác truy nhập tới ổ cứng hay mạng Người dùng thơng qua chương trình để sử dụng phần cứng máy tính kết nối mạng, xử lý liệu hay giải trí Một cách khái quát, vấn đề an toàn hệ điều hành liên quan đến an toàn việc chia sẻ hay phân chia tài nguyên mà phần mềm sử dụng trình hoạt động chúng 1.1 Giới thiệu Hệ điều hành đại cần cho phép chạy nhiều chương trình hay người dùng, dạng tiến trình (process), đồng thời chia sẻ sử dụng tài nguyên hệ thống (như hình đây) Như vậy, hệ điều hành phải đảm bảo ba chức sau: Hình 1-1 Hệ điều hành điều phối truy nhập tiến trình Hệ điều hành phải cung cấp chế sử dụng tài nguyên hiệu Nói cách khác, hệ điều hành cần xác định rõ cách thức cách tiến trình sử dụng tài nguyên phần cứng ngăn chặn xung đột sử dụng tài nguyên Các chức tiêu biểu gồm có: quản lý CPU, quản lý nhớ, quản lý hệ thống file, giao thức mạng, ; Hệ điều hành phải cung cấp chế điều độ chương trình người dùng đảm bảo việc sử dụng tài ngun cơng bằng; Hệ điều hành phải kiểm sốt việc truy nhập tới tài nguyên cho chương trình người dùng khơng ảnh hưởng cách vơ tình hay xấu tới chương trình khác Đây vấn đề đảm bảo an tồn cho chương trình chạy hệ thống Việc đảm bảo chương trình hoạt động cách an toàn lệ thuộc vào việc triển khai đắn chế chia sẻ điều độ tài nguyên sau: Các chế truy nhập tài nguyên phải xác định ranh giới tài nguyên đảm bảo thao tác tới tài nguyên không xung đột với Cơ chế điều độ phải đảm bảo tính sẵn sàng tài nguyên cho chương trình để ngăn chặn việc từ chối dịch vụ Một cách lý tưởng chế đảm bảo chương trình hoạt động bình thường không gian nhớ không bị tổn thất cho dù việc xâm phạm nguyên tắc chia sẻ hay phối hợp xảy cách có chủ ý Vấn đề an toàn ngày quan tâm chương trình máy tính đại tương tác với theo nhiều cách việc chia sẻ liệu người dùng hành vi phổ biến với hệ thống máy tính nối mạng gắn kết chặt chẽ Thách thức với việc thiết kế an toàn cho hệ điều hành thiết kế chế an toàn để bảo vệ việc thực thi chương trình liệu chúng mơi trường phức tạp Các chế an tồn tắc (formal security mechanism) giúp chứng minh mặt toán học hệ thống đạt mục tiêu an toàn song khơng tính đến độ phức tạp hệ thống Trong nhiều tình huống, độ phức tạp khiến cho việc chứng minh lý thuyết không khả thi Trên thực tế, an toàn hệ điều hành tiếp cận theo hai hướng chủ yếu Một hệ thống hạn chế (constrained): đảm bảo mục tiêu an toàn thỏa mãn với mức độ cao Hai hệ thống dùng chung (general-purpose): đảm bảo mục tiêu an toàn cách giới hạn với mức độ thấp Các hệ thống hạn chế hỗ trợ ứng dụng chức song đảm bảo mục tiêu chủ yếu tính an tồn Việc hạn chế chức cho phép hệ thống kiểm chứng tính đắn mục tiêu an toàn đề Mặt khác, hệ thống dùng chung hướng tới cung cấp chức mềm dẻo, thân thiện người dùng, dễ triển khai có hiệu cao Các đặc điểm dẫn đến nhiều thách thức với việc đảm bảo an toàn cho hệ thống Hệ điều hành an toàn, cách lý tưởng, hệ điều hành cung cấp chế bảo vệ đảm bảo đạt mục tiêu an toàn hệ thống cho dù hệ thống phải đối mặt với mối đe dọa Các chế an toàn thiết kế ngữ cảnh việc chia sẻ điều độ tài nguyên Các mục tiêu an toàn hệ thống phải trì cách thức sử dụng hệ thống (như bị cơng người bẻ khóa) Thơng thường hệ điều hành đạt mức độ đảm bảo cao coi hệ điều hành an toàn hay gọi hệ thống tin cậy (trusted system) Thực tế, hệ thống đại phức tạp hồn tồn an tồn Những khó khăn việc ngăn ngừa lỗi lập trình thách thức để loại bỏ lỗi dẫn đến không hệ thống phức tạp hệ điều hành hồn tồn an toàn Dù vậy, việc xây dựng hệ điều hành an toàn cần thiết giúp cho người dùng xác định hay đánh giá mức độ an toàn hệ thống họ sử dụng hay theo đuổi Các yếu tố giúp xây dựng hệ điều hành an toàn bao gồm mục tiêu an toàn, mơ hình đe dọa tin cậy, chế bảo vệ a Mục tiêu an toàn Mục tiêu an tồn (security goal) xác định thao tác thực hệ thống ngăn chặn truy nhập trái phép Các mục tiêu cần định nghĩa mức độ khái quát cao Các mục tiêu an toàn xác định yêu cầu mà thiết kế hệ thống cần phải thỏa mãn việc triển khai đắn phải đáp ứng đầy đủ u cầu Mục tiêu an tồn mơ tả truy nhập tới tài nguyên hệ thống mà chúng cần thỏa mãn yếu tố sau: bí mật, toàn vẹn, sẵn dùng Truy nhập hệ thống mơ tả chủ thể (chương trình hay người dùng) thực thao tác (đọc hay ghi) lên đối tượng ( file hay socket) Như vậy, thuộc tính an tồn nêu hiểu sau: Tính bí mật giới hạn đối tượng truy nhập Tính tồn vẹn hạn chế đối tượng mà chủ thể ghi để đảm bảo thao tác đắn quan hệ với thao tác chủ thể khác Tính sẵn dùng hạn chế tài nguyên mà chủ thể sử dụng chủ thể làm cạn kiệt tài nguyên Mục tiêu an tồn xây dựng dựa chức thông qua nguyên tắc: Đặc quyền tối thiểu Các chương trình thực thao tác cần thiết cho hoạt động chúng Tuy nhiên, hạn chế chức khơng làm tăng tính an tồn hệ thống mà làm giảm khả việc cơng b Mơ hình tin cậy Mơ hình tin cậy (Trust model) hệ thống định nghĩa tập phần mềm liệu mà hệ thống dựa vào để đảm bảo thực đắn mục tiêu an toàn hệ thống Với hệ điều hành, khái niệm tương đồng với sở tính tốn tin cậy TCB (trusted computing base) Một cách lý tưởng, hệ thống tin cậy chứa số phần mềm tối thiểu để đảm bảo bắt buộc mục tiêu an toàn Phần mềm tin cậy bao gồm phần mềm xác định yêu cầu an toàn hệ thống phần mềm thực thi yêu cầu Hơn nữa, phần 10 Thêm vào đó, biện pháp bảo vệ nhân hạn chế Nhân Windows bị sửa đổi thơng qua mơ-đun nhân Q trình đóng dấu đoạn mã dùng để chứng thực mơ-đun nhân Như vậy, người đóng dấu khơng thiết phải người viết mã Người quản trị phải chịu trách nhiệm tính tin cậy người đóng dấu Thủ tục an tồn phụ thuộc vào định chủ quan người dùng thường dễ bị lỗi người dùng thường thiếu hiểu biết vấn đề Mặt khác, nhân Windows không xác định cách bảo vệ lời gọi hệ thống Nền tảng tính tốn tin cậy Windows không thực chặt chẽ Gần chương trình nằm tảng tin cậy tiến trình chạy chương trình sửa đổi chương trình tin cậy khác làm hiệu lực tảng tin cậy Cũng giống Unix, tiến trình tin cậy bị vơ hiệu hóa sửa đổi chế bảo vệ làm hiệu lực mục tiêu an toàn hệ thống sửa đổi thân nhân Windows qua giao tiếp cấp cho tiến trình nằm sở tính tốn tin cậy để truy nhập tới trạng thái nhân Không giống Unix, Windows cung cấp giao diện lập trình cho phép xâm nhập tiến trình khác hàm CreateRemoteThread, OpenProcess hay WriteProcessMemory Các hàm thư viện cho phép khởi tạo luồng tiến trình khác hay chèn mã vào tiến trình trước khởi tạo luồng Mặc dầu hàm cần có đặc quyền để sử dụng phục vụ mục đích phát lỗi tiến trình Song cần phải đảm bảo đặc quyền không bị lợi dụng để bảo đảm cho chế chống xâm nhập sở tính tốn tin cậy Các sở tính đắn Windows khơng tắc Windows có sở tính tốn tin cậy khơng bị giới hạn (kích cỡ) hệ thống nhân có khả mở rộng Điều khiến cho việc đánh giá tắc khó có kết Mơ hình khái qt chế bảo vệ Windows cho phép mô tả tổ hợp quyền lại khơng có mục tiêu (u cầu) an toàn cụ thể xác định hệ thống Vì vậy, khơng thể nói liệu hệ thống có an tồn hay khơng Do mơ hình Windows phức tạp Unix mở rộng tùy ý nên việc kiểm chứng tính an tồn chí cịn khó khăn e Các lỗ hổng Danh mục đăng ký (Windows registry) sở liệu phân cấp toàn cục dùng để lưu liệu cho toàn chương trình Khi chương trình nạp, cập nhật danh mục đăng ký theo yêu cầu cụ thể chương trình gồm thơng tin nhạy cảm đường dẫn, thư viện Trong mục đăng ký gắn với ngữ cảnh an ninh hạn chế truy nhập, song hạn chế không sử dụng cách hiệu Việc định rõ ràng tên thư viện cần thiết cho ứng dụng cách mà hãng phần mềm thường sử dụng cách rộng rãi Một cách tự nhiên, người dùng không muốn phần mềm mà họ mua lại chạy cách đắn khơng có thư viện cần thiết Cũng vậy, hãng sản xuất phần mềm 52 cách thức quản trị Windows người dùng nên giải pháp tình mở quyền để chắn chắn phần mềm chạy người dùng quản trị Như vậy, mục đăng ký sau sử dụng người cơng để vơ hiệu hóa Windows, khơng vấn đề phần mềm nhà cung cấp Người dùng quản trị Trong Windows người dùng thông thường chạy định danh quản trị hay với đặc quyền chấp thuận Điều người dùng cần quyền truy nhập rộng để sử dụng chức cần thiết cho phép hệ thống hoạt động Nếu người dùng tải phần mềm trị chơi, người dùng cần đặc quyền để cài đặt chắn cần đặc quyền chạy phần mềm trò chơi sử dụng nhiều tài nguyên (phần cứng) Cuối cùng, người dùng muốn kiểm chứng lý phần mềm trị chơi khơng chạy cho phép tất đặc quyền để xử lý vấn đề Unix thường dùng người dùng có nhiều kinh nghiệm hiểu rõ khác biệt cài đặt hoạt động thông thường máy tính Như vậy, việc vận dụng đặc quyền hợp lý người dùng Windows Cho phép ngầm định cách triển khai Windows cho phép quyền chương trình hoạt động cách đầy đủ Điều tạo sâu Code Red tiếng công vào phần máy chủ SQL hoạt động máy chủ Web IIS Microsoft Rất nhiều người chạy IIS mà khơng biết tính bật 3.4.2 Unix Linux Unix viết ngôn ngữ C giúp cho trở thành hệ điều hành có tính khả chuyển (chạy nhiều phần cứng khác nhau) khởi nguồn từ Bell Labs AT&T từ năm 70 kỷ 20 thu hút cộng đồng phát triển đơng đảo Bên cạnh đó, Unix có giao diện chương trình (API) thuận tiện cho người phát triển Unix hướng đến chương trình nhỏ gọi nhân (kernel) với giao diện chuẩn để đơn giản hóa việc phát triển ứng dụng Mục tiêu thiết kế Unix phát triển tảng chung chia sẻ dễ dàng người dùng với Như vậy, mục tiêu an toàn Unix bảo vệ liệu người dùng khởi lỗi vơ tình chương trình người dùng Tuy nhiên, việc bảo vệ khơng đảm bảo u cầu tính bí mật toàn vẹn Cơ chế an toàn Unix nhằm bảo vệ người dùng với hạ tầng tính tốn tin cậy hệ thống khỏi toàn người dùng Hệ thống Unix bao gồm nhân hệ điều hành tiến trình Lớp bảo vệ sử dụng để ngăn cách phần nhân với tiến trình khác Mỗi tiến trình có khơng gian địa riêng xác định địa nhớ phép truy nhập Các hệ thống Unix đại coi không gian địa trang nhớ Unix sử dụng khái niệm file cho tất đối tượng lưu trữ hệ thống lưu trữ thứ cấp (ổ đĩa), thiết bị vào/ra, mạng liên lạc tiến trình Mỗi tiến trình Unix liên kết với định danh vào người dùng sử dụng tiến trình việc truy nhập tới file bị hạn chế định danh tiến trình 53 Mục tiêu an toàn Unix bảo vệ người dùng với bảo vệ chương trình tin cậy hệ thống với người dùng Các chương trình tin cậy Unix chương trình chạy định danh root hay superuser Các tiến trình root hay nhân có tồn quyền truy nhập hệ thống Linux coi biến thể UNIX mà thu hút ý thời gian vừa qua từ cách thiết bị nhỏ điện thoại di động đến máy chủ hay siêu máy tính Linux giống với hệ thống Unix khác Thực tế, mục tiêu thiết kế quan trọng Linux tương thích với Unix Các tính an tồn chế bảo vệ Lunix sử dụng nguyên tắc Unix phần khơng phân tách riêng hai hệ thống a Hệ thống bảo vệ Hệ thống bảo vệ: sử dụng chế kiểm soát truy nhập tùy chọn Một cách khái quát, hệ thống bảo vệ mô tả trạng thái bảo vệ thao tác cho phép tiến trình sửa đổi trạng thái Tuy nhiên, hệ thống bảo vệ cho phép mô tả việc chuyển trạng thái tức cho phép tiến trình thay đổi miền bảo vệ (từ mức có đặc quyền sang mức khơng đặc quyền ngược lại) Các tính bảo vệ khơng đủ thỏa mãn yêu cầu chặt chẽ hệ điều hành an toàn Trạng thái bảo vệ cho biết thao tác mà chủ thể hệ thống thực lên đối tượng Các trạng thái bảo vệ Unix/Linux liên kết với định danh tiến trình (chủ thể) với truy nhập tới file (đối tượng) Mỗi tiến trình bao gồm định danh người dùng, nhóm, nhóm phụ Tất tài nguyên hệ thống biểu diễn file Các trạng thái bảo vệ mà chủ thể thực đọc, ghi thực thi lên file Các file gắn với định danh người dùng nhóm chủ sở hữu mà cho phép đặc quyền tiến trình truy nhập vào file Tiến trình với định danh chủ sở hữu sửa đổi khía cạnh trạng thái bảo vệ với file Tập hạn chế đối tượng thao tác sử dụng danh sách kiểm soát truy nhập ngắn gọi bít chế độ Các bít chế độ xác định quyền nhóm chủ thể: file chủ sở hữu UID, file nhóm GID với chủ sở hữu, nhóm cịn lại Việc kiểm sốt truy nhập thực thơng qua bit chế độ Nếu định danh người dùng trùng với UID bít chế độ UID xác định quyền truy nhập Cũng tương tự định danh nhóm tiến trình hay nhóm cịn lại phù hợp bít chế độ tương ứng giúp xác lập quyền truy nhập Hình 3-13 Cơ chế bảo vệ bít chế độ Hình minh họa cho việc sử dụng bít chế độ Dịng cột bít chế độ rwxr r—cho thấy alice có đầy đủ quyền đọc, ghi, thực thi lên đối 54 tượng foo Trong nhóm faculty nhóm khác có quyền đọc mà khơng ghi thực thi lên file Hệ thống bảo vệ theo kiểu hệ thống kiểm soát truy nhập tùy chọn Các bít chế độ người sở hữu, nhóm, nhóm cịn lại bị thay đổi tiến trình chạy sử dụng định danh người dùng Điều gây rủi ro chương trình người dùng sử dụng không đáng tin cậy chương trình tải từ Internet Các bít chế độ chứa đựng cách thức dịch chuyển miền bảo vệ gọi bit setuid Khi bít thiết lập file, tiến trình thực thi file chuyển cách tự động thành chủ sở hữu file nhóm sở hữu b Hệ thống xác thực Hệ thống xác thực kiểm soát việc truy nhập tiến trình tới file thực việc dịch chuyển miền bảo vệ cho phép người dùng thay đổi định danh Hệ thống nằm nhân song phụ thuộc vào tiến trình bên (hệ thống hay người dùng) để xác định yêu cầu xác thực trạng thái bảo vệ Q trình xác thực diễn có u cầu truy nhập file thao tác phép file thẩm tra Tiến trình u cầu cung cấp tên file thao tác cần thực thời điểm lời gọi hệ thống thực Nếu chấp thuận, hệ thống tạo thẻ mô tả file biểu diễn truy nhập phép tiến trình để thực thao tác tương lai lên file Các thẻ mơ tả file lưu phần nhân có mục trả cho tiến trình Tiến trình người dùng cung cấp mục cho nhân hệ thống cần truy nhập file Hệ thống xác thực kiểm soát thao tác file cách ngăn chặn thao tác mở file cho quyền đọc, ghi, thực thi Như vậy, việc sử dụng quyền lúc cho phép việc kiểm soát phù hợp khơng phải đối tượng biểu diễn dạng file việc truy nhập tới liệu meta hay liên lạc mạng Mặt khác, hệ thống xác thực dựa vào dịch vụ xác thực mức người dùng để xác định định danh tiến trình Khi người dùng đăng nhập vào hệ thống, tiến trình gán định danh phù hợp người dùng Tất tiến trình sau thừa kế định danh đăng nhập người dùng có thay đổi miền bảo vệ Những dịch vụ mức người dùng cần đặc quyền root để thay đổi định danh tiến trình thực thi số cơng việc chúng Trong đó, phần nhân tin cậy lại phải bao gồm tất tiến trình root Điều tạo lỗ hổng cho phần mềm an toàn quan trọng nhân Hệ thống cung cấp người dùng đặc biệt nobody mà không sở hữu file thuộc nhóm Như vậy, tiến trình bị hạn chế người dùng đặc biệt Tuy nhiên, chủ thể nobody có quyền khác bất cẩn việc sử dụng đặc quyền lệnh chroot làm rị rỉ hay phát sinh thêm quyền cho chủ thể nobody 55 c Đánh giá Giao tiếp giám sát tham chiếu bao gồm móc (hook) để kiểm tra truy nhập tới file số lời gọi hệ thống Vấn đề chỗ tập hạn chế thao tác (đọc, ghi, thực thi) không đủ khả biểu diễn để kiểm sốt truy nhập thơng tin Mặt khác, chế bảo vệ cho phép sửa đổi file mà không cần quyền ghi Cơ chế xác thực không đảm bảo ngăn chặn toàn tới tất tài nguyên hệ thống Với số đối tượng mạng, chế xác thực triển khai Do giao tiếp giám sát tham chiếu đặt nơi mà thao tác nhạy cảm với an ninh thực hiện, khó biết liệu tồn thao tác xác định toàn đường dẫn ngăn chặn Khơng có cách tiếp cận sử dụng để thẩm tra việc Cho dù chế bảo vệ giám sát truy nhập đặt vào phần nhân điều không đảm bảo chống lại việc xâm nhập Trước hết, chế bảo vệ tùy chọn nên chế bị xâm nhập tiến trình Các tiến trình khơng tin cậy người dùng sửa đổi quyền tới liệu họ cách tùy ý nên việc bắt tuân thủ mục tiêu an toàn với liệu người dùng Mặc dù sử dụng lớp bảo vệ, song nhân Unix thường sử dụng thủ tục để kiểm tra tham số lời gọi hệ thống, thủ tục bị đặt khơng chỗ Các tiến trình người dùng có nhiều kiểu giao tiếp để truy nhập sửa đổi nhân phía ngồi lời gọi hệ thống từ khả cài đặt mô-đun nhân đến hệ thống file đặc biệt /proc hay sysfs để truy nhập trực tiếp vào nhớ nhân Việc đảm bảo giao tiếp truy nhập đoạn mã tin cậy không khả thi Bên cạnh phần nhân, sở tính tốn tinh cậy Unix/Linux bao gồm tồn tiến trình chạy với định danh root kể tiến trình người dùng đăng nhập người dùng root Như tiến trình chạy chương trình nên việc khẳng định chống xâm nhập sở tính tốn tin cậy khơng thể Ngồi ra, phần tính tính tốn tin cậy q lớn đối mặt với nhiều mối đe dọa để chống lại việc xâm nhập Nếu có số tiến trình bị phá vỡ, hệ thống Unix/Linux rốt bị phá hủy khơng biện pháp bảo vệ với tiến trình root Các sở cho tính đầy đủ hệ thống Unix/Linux khơng tắc Kích cỡ thực sở tính tốn tin cậy không cho phép thực việc kiểm nghiệm tắc hiệu Hơn thế, kích cỡ khả mở rộng nhân làm cho việc kiểm chứng tính đắn khơng khả thi d Các lỗ hổng tiêu biểu Unix có vài tiến trình root làm nhiệm vụ trì cổng mạng mở cho tất bên xa ssh, ftp, sendmail gọi dịch vụ mạng (Network-facing deamons) Để trì tính tồn vẹn sở tính tốn tin cậy đạt tính đảm bảo cho giám sát tham chiếu, tiến trình cần tự bảo vệ khỏi đầu vào nghĩa tiến trình khơng khơng tin cậy Tuy nhiên, vài lỗ hổng báo cáo 56 đặc biệt vấn đề tràn đệm cho phép người cơng phá vỡ hệ thống tính tốn tin cậy Một vài dịch vụ thiết kế lại để loại bỏ lỗ hổng Postfix để thay sendmail, việc đánh giá đầy đủ bảo vệ cho dịch vụ chưa cung cấp Như vậy, việc bảo vệ tính tồn vẹn dịch vụ mạng khơng hồn chỉnh mang tính tình Rootkit Hệ thống Unix/Linux đại cho phép mở rộng nhân qua mơ-đun mà nạp cách linh hoạt vào nhân Tuy nhiên, mô-đun bị lỗi hay xấu cho phép người công thực thi mã bên nhân với đặc quyền đầy đủ hệ thống Một loạt gói phần mềm độc hại, gọi rootkit, tạo để tận dụng ưu mô-đun nhân hay giao tiếp khác tới tiến trình root Các rootkit cho phép thực thi hàm người công cách thức che dấu việc phát Cho dù có nhiều cố gắng phát mã độc nhân song rootkit khó phát Các biến mơi trường có sẵn cho tiến trình để chuyển tải trạng thái qua chương trình khác Như biến LIBPATH cho phép xác định trật tự tìm kiếm thư viện liên kết động Lỗ hổng phổ biến người cơng sửa đổi LIBPATH để nạp file tạo phận thư viện động Do biến thừa hưởng lại tiến trình sinh nên tiến trình khơng tin cậy gọi chương trình tin cậy Nếu tiến trình tin cậy dựa vào biến mơi trường mà khơng riêng cho LIBPATH bị rủi ro chạy phải đoạn mã độc Tài nguyên chia sẻ tiến trình tin cậy với chương trình khơng tin cậy tạo lỗ hổng để công Vấn đề thường thấy với thư mục tạm /tmp Vì tiến trình tạo file thư mục này, tiến trình khơng tin cậy tạo file cấp quyền truy nhập cho chương trình khác, đặc biệt tiến trình tin cậy, truy nhập tới file Sau đó, tự có quyền truy nhập tới file chương trình tin cậy Các tiến trình tin cậy cần phải thận trọng sử dụng tài nguyên chia sẻ tiến trình khơng tin cậy Thời điểm kiểm tra tới thời điểm sử dụng TOCTTOU (Time-of-Check-to-Time-ofUse) tình trạng tiến trình khơng tin cậy thay đổi trạng thái hệ thống thời điểm thao tác phép tới thời điểm mà thao tác thực Nếu việc thay đổi cho phép tiến trình khơng tin cậy truy nhập tới file mà khơng cho phép việc làm xuất lỗ hổng Ví dụ cổ điển tiến trình root dùng lời gọi hệ thống access để xác định liệu người dùng mà chạy tiến trình có truy nhập tới file cụ thể /tmp/X Tuy nhiên, sau lời gọi hệ thống access cho phép truy nhập file trước file mở, người dùng thay đổi việc gắn tên file đối tượng file cụ thể truy nhập (inode) Việc hoàn tất thay đổi file /tmp/X thành liên kết tới file đích /etc/shadows Kết quả, Unix thêm cờ để yêu cầu open ngăn chặn việc duyệt nội dung thư mục qua liên kết Tuy nhiên, hệ thống file cịn tồn nguy bị cơng kiểu việc ánh xạ tên file đối tượng file (lưu trữ) bị điều chỉnh tiến trình khơng an tồn 57 Do sử dụng có chế bảo vệ tùy chọn, kích cỡ sở tính tốn tin cậy lỗ hổng kể việc chuyển đổi Unix sang thành hệ điều hành an toàn thực thách thức lớn 3.4.3 Mơ-đun an tồn cho Linux a Giới thiệu Vào năm đầu 2000, mức độ nghiêm trọng sâu, mã độc công qua mạng mức báo động Cộng đồng phát triển Linux nhận thấy cần phải có chế đảm bảo an tồn chặt chẽ chắn cho Linux Cuối cùng, thiết kế an toàn cho phép lựa chọn nhiều mô-đun khác qua giao tiếp thống lựa chọn Đó khung mơ-đun an tồn cho Linux LSM (Linux Security Modules) Về khung LSM hệ thống giám sát tham chiếu cho nhân Linux bao gồm hai phần: giao tiếp giám sát tham chiếu tích hợp vào nhân Linux mơ-đun giám sát tham chiếu thực chức giám sát xác thực, kho sách phía sau giao tiếp LSM Mục tiêu thiết kế khung LSM sau: Giao tiếp với giám sát tham chiếu phải thực khái quát việc sử dụng mơ hình an tồn khác túy việc nạp nhân khác Giao tiếp cần phải đơn giản khái niệm, tối giản hiệu Cần hỗ trợ chuẩn POSIX.1e kiểm soát truy nhập dựa lực Hai yêu cầu bắt nguồn từ việc kết hợp tất truy vấn xác thực từ vấn đề an ninh Linux Từ trước cho toàn mơ-đun hỗ trợ hạn chế số lượng truy vấn xác thực nhiều để ngăn chặn truy vấn dư thừa mà chúng làm tăng độ phức tạp ảnh hưởng đến hiệu Thiết kế giao tiếp LSM xây dựng thủ công kiểm chứng nhờ công cụ phân tích mã nguồn tính hồn chỉnh qn Việc đánh giá hiệu mô-đun thực nhằm chắn hiệu chung hệ thống Khung LSM thức thêm vào nhân Linux từ phiên 2.6 biến đổi Linux Unix phần thành hệ thống thỏa mãn yêu cầu giám sát tham chiếu Dù cơng việc cịn nhiều khó khăn b Triển khai Việc triển khai khung LSM gồm ba phần: định nghĩa giao tiếp giám sát tham chiếu; việc bố trí giao tiếp này; việc triển khai cụ thể giám sát tham chiếu Về bản, giao tiếp LSM bảng hàm, mà gắn vào lời gọi cách ngầm định, thực phép kiểm tra truy nhập tùy chọn truyền thống DAC Người viết môđun chịu trách nhiệm triển khai hàm quan tâm Như mô-đun LSM tổ chức theo kiểu ngăn xếp mà lớp trước cung cấp giao tiếp để mơ-đun LSM phía sau 58 nạp Mô-đun chịu trách nhiệm soạn định truy nhập mà định dựa vào mơ-đun phía sau Hình 3-14 Kiến trúc giao tiếp LSM Định nghĩa giao tiếp LSM mô tả cách thức nhân Linux gọi giám sát tham chiếu LSM Đây tập trỏ tới hàm (function pointer) mà dùng để gọi hàm LSM nạp Các trỏ hàm gọi móc LSM (LSM hook) Về móc LSM tương ứng với truy vấn cấp phép, nhiên giao tiếp LSM chứa móc cho nhiệm vụ khác gán nhãn an ninh, dịch chuyển hay trì nhãn an ninh Có khoảng 150 móc LSM dùng cho cơng việc an ninh Bố trí giao tiếp tham chiếu LSM Thách thức chủ yếu thiết kế khung LSM vị trí đặt móc LSM Hầu hết móc LSM liên kết với lời gọi hệ thống cụ thể, với móc LSM đặt đầu vào lời gọi hệ thống Tuy nhiên, số móc LSM khơng thể đặt vị trí Ví dụ hình kiến trúc giao tiếp LSM, lời gọi hệ thống chuyển đường dẫn file thành thẻ mô tả file mà cho phép truy nhập tới file Xác định vị trí file cụ thể mô tả đường dẫn cần cho phép truy nhập tới thư mục theo đường dẫn, liên kết file, cuối cho phép truy nhập vào file với thao tác cụ thể Do thành phần trích từ đường dẫn tạo điểm khác trình mở file open, vị trí đặt móc LSM khơng đơn giản Trong có số phép kiểm tra tùy chọn giúp cho việc xác định vị trí đặt móc LSM cho thao tác open, trình đặt móc LSM nói chung mang tính tình Với chương trình chưa thực việc cấp phép truy nhập tùy chọn phải thực việc đặt móc LSM thủ cơng Móc LSM chèn vào đoạn mã theo kiểu 59 trực tiếp (inline) liên kết thời điểm biên dịch Việc giúp cho đoạn mã dễ theo dõi Triển khai giám sát tham chiếu Thực tế, LSM bao gồm AppArmor (Application Armor), hệ thống phát xâm nhập IDS (Intrusion detection system), SELinux (Security-Enhanced Linux) danh sách lực POSIX Mỗi mô-đun LSM cung cấp cách thức khác với việc kiểm soát truy nhập bắt buộc ngoại trừ danh sách lực POSIX chế kiểm sốt tùy chọn có Linux Việc chuyển POSIX thành mô-đun nhằm cho phép phát triển độc lập với nhân số mơ-đun LSM triển khai việc kiểm sốt lực theo cách khác AppAmor hệ thống kiểm soát truy nhập bắt buộc mà mơ hình đe dọa tập trung vào mơi trường Internet Nếu hệ thống cấu hình cách đắn Internet cách thức mà đầu vào có mục đích xấu chạm đến hệ thống Một mối đe dọa dịch vụ mạng, chúng có nguy nhận liệu đầu vào không đảm bảo liệu tràn đệm AppArmor sử dụng sách hạn chế cho dịch vụ mạng để ngăn chặn dịch vụ bị xâm hại làm vô hiệu hệ thống Hệ thống phát xâm nhập IDS hướng tới việc ngăn chặn xâm nhập dạng hệ thống kiểm soát truy nhập Hệ thống thực việc quản lý truy nhập dựa vào sách mơ tả file mà chương trình truy nhập SELinux triển khai việc kiểm soát truy nhập bắt buộc dựa kiến trúc kiểm soát truy nhập linh hoạt Flask bao gồm kho sách phần nhân cho việc giám sát truy nhập SELinux hỗ trợ mơ hình an tồn dựa theo vai trị RBAC (Role-Based Access Control) hay an tồn nhiều mức SELinux hạn chế chương trình người dùng theo nguyên tắc đặc quyền nhất, bảo vệ tính toàn vẹn, hay tính bí mật chương trình liệu, nhu cầu an ninh chương trình Tính khái quát đầy đủ SELinux góp phần thúc đẩy yêu cầu LSM Danh sách lực POSIX triển khai nhân Linux, song LSM tách biệt rạch ròi chức vào mô-đun an ninh Việc cho phép người dùng khơng cần chức loại bỏ khỏi nhân cho phép việc phát triển kiếm soát theo lực độc lập với phần nhân c Đánh giá Về tính ngăn chặn đầy đủ, giao tiếp với giám sát tham chiếu khung LSM thiết kế để cấp phép truy nhập tới đối tượng (tài nguyên) cụ thể dùng nhân thao tác nhạy cảm với an ninh để ngăn cản lỗ hổng Ngoài ra, khung LSM đứng ngăn chặn thao tác xác định cộng đồng phát triển LSM tới thao tác nhạy cảm Cơ chế trung gian (ngăn chặn) thực tế kết hợp toàn mẫu giám sát tham chiếu xây dựng Do giao tiếp LSM thiết kế theo kiểu khơng tắc, việc kiểm chứng với việc ngăn chặn đầy đủ cần thiết Các công cụ phân tích mã nguồn xây dựng để 60 kiểm chứng cấu trúc liệu nhân nhạy cảm với an ninh ngăn chặn theo cách quán Các lỗi phát sửa Tuy nhiên, công cụ xấp xỉ gần yêu cầu ngăn chặn đầy đủ chúng không sử dụng thường xun Tuy nhiên, khơng có lỗi phần bố trí giao tiếp giám sát truy nhập phát thêm kể từ triển khai Bộ giám sát truy nhập SELinux hoạt động lớp bảo vệ mức quản trị (supervisor) nên chúng bảo vệ nhân hệ thống Mặc dầu, mơ-đun LSM có giao tiếp chúng biên dịch vào nhân kích hoạt thời điểm khởi động Nhân Linux truy nhập qua lời gọi hệ thống hệ thống file đặc biệt, file thiết bị việc truy nhập tới có chế cần phải chắn chống xâm nhập Mặc dù Linux không cung cấp chế cổng (gate) cho phép lọc liệu đầu vào, song Linux thực việc phân tích mã nguồn với việc xử lý liệu đầu vào Hơn thế, hệ thống Linux cung cấp thao tác khác cho phép truy nhập tới nhớ nhân Mặt khác SELinux cấu hình để hạn chế truy nhập tới tiến trình tin cậy Nói chung việc kiểm chứng tính đắn cá biện pháp thực thi an ninh việc khó khăn Với mã nguồn lớn, viết ngơn ngữ khơng an tồn nhiều người, việc kiểm chứng hoàn thành thực tế Linux mức đánh giá theo tiêu chuẩn phổ quát EAL4 Mức đòi hỏi việc lập tài liệu thiết kế mức thấp nhân Dù việc kiểm chứng đoạn mã tuân thủ mơ hình thiết kế có lẽ việc khơng thực tế Các sách SELinux định nghĩa yêu cầu bắt buộc xác thao tác phép hệ thống Như vậy, hồn tồn xây dựng luồng thơng tin từ sách chí trạng thái dịch chuyển Cũng vậy, sách an ninh nhiều mức đảm bảo luồng thông tin thỏa mãn thuộc tính an tồn nâng cao Như vậy, cách tiếp cận SELinux cho phép hệ thống an toàn, song người phát triển hệ thống cần phải quản lý việc sử dụng đoạn mã tin cậy cách cẩn thận để chắn mục tiêu an toàn thực đạt 3.4.4 Nhân SCOMP SCOMP (Secure communications Processor) hệ thống dựa nhân an toàn thiết kế để triển hai yêu cầu an ninh theo nhiều mức Với yêu cầu hiệu vấn đề an tồn, người thiết kế SCOMP khơng xây dựng nhân an tồn mà cịn xây dựng chế phần cứng giao tiếp ứng dụng để lập trình với nhân Phần tính tốn tin cậy SCOMP bao gồm phận hoạt động lớp 0,1 Hệ điều hành tin cậy bao gồm nhân an toàn hoạt động lớp phần mềm tin cậy lớp Các chức gói giao tiếp nhân hoạt động lớp Các ứng dụng truy nhập tài nguyên bảo vệ tảng tính tốn tin cậy sử dụng thư viện giao tiếp hoạt động khơng gian địa người dùng 61 Hình 3-15 Kiến trúc SCOMP Nhân an toàn SCOMP ngăn chặn toàn truy nhập tới tài nguyên sử dụng sách an tồn nhiều lớp Khi ứng dụng cần sử dụng tài nguyên bảo vệ nhớ hay thiết bị vào/ra cần phải yêu cầu nhân an tồn cấp thẻ mơ tả phần cứng (hardware descriptor) phù hợp để sử dụng tài nguyên Khi nhân an toàn chấp thuận yêu cầu ứng dụng, nhân tạo thẻ mô tả phần cứng cho thao tác truy nhập lưu thẻ nhớ Tham chiếu tới thẻ mô tả phần cứng trả lại cho ứng dụng cho lần sử dụng sau Thẻ mô tả phần cứng bao gồm tham chiếu tới đối tượng quyền truy nhập cho tiến trình Cách ly, chống xâm nhập triển khai sử dụng chế bảo vệ theo lớp Cơ chế lớp truy nhập kiểm soát việc đoạn lớp chấp thuận để yêu cầu dịch vụ từ lớp khác Các lớp dịch chuyển lớp thực thi nhờ phần cứng Trong trình xây dựng hệ điều hành, việc kiểm chứng mơ hình an tồn SCOMP việc triển khai sách an tồn đặt hàng đầu phần mềm tin cậy hệ thống thẩm tra Dựa tính thực thi phần cứng, phần mềm tảng tính tốn tin cậy (chống xâm nhập) thẩm tra tắc nhân an tồn phần mềm tin cậy khác, SCOMP chứng tỏ việc xây dựng hệ thống an tồn thỏa mãn tiêu chí giám sát tham chiếu Quy trình trở thành tiêu chuẩn cho việc đánh giá cấp độ an toàn cao Bộ quốc phòng Mỹ a Phần cứng SCOMP sử dụng chế bảo vệ gồm lớp Nhân an tồn chạy lớp có đặc quyền cao lớp ứng dụng người dùng lớp có đặc quyền Bên cạnh đó, SCOMP sử dụng chế gọi hàm cách sử dụng địa tham số bên gọi cung cấp, việc cho phép ngăn cản đoạn mã truy nhập khơng gian nhớ 62 Hình 3-16 Phần cứng SCOMP Mơ-đun bảo vệ an tồn SPM (Secure protection module) chịu trách nhiệm ngăn chặn toàn truy nhập nhớ vào/ra Mỗi chương trình có địa sở gốc trỏ tới nhớ thẻ vào/ra Mỗi truy nhập nhớ phải qua SPM phải qua phép kiểm tra truy nhập Do phần nhân cung cấp thẻ việc kiểm tra thực phần cứng nên cho phép chạy câu lệnh vào/ra mức không cần đặc quyền Các kiến trúc phần cứng x86 áp dụng kiến trúc tương tự với phân lớp bảo vệ song không đảm bảo việc ngăn chặn truy nhập tới thiết bị vào/ra qua SPM nên không thực an tồn b Nền tảng tính tốn an tồn Nhân an toàn hoạt động lớp cung cấp chức hệ thống quản lý nhớ, điều độ tiến trình, quản lý ngắt, kiểm tốn giám sát tham chiếu Các chức nhân giữ tối thiểu chứa 10K dòng lệnh hầu hết viết ngôn ngữ Pascal Các đối tượng nhân gồm có tiến trình, đoạn nhớ thiết bị định danh thẻ 64bit Nhân trì thơng tin kiểm sốt truy nhập trạng thái cho đối tượng Mô hình kiếm sốt truy nhập sử dụng mơ hình Bell-La Padula mở rộng với phần phân loại, cách sách lớp bảo vệ sách tùy chọn Nhân an tồn định nghĩa 38 cổng để tiến trình nằm ngồi nhân gọi dịch vụ nhân Cổng tương tự lời gọi hệ thống cung cấp chức tạo đối tượng, ánh xạ đoạn nhớ gắn nhớ vật lý với nhớ ảo Phần mềm tin cậy chạy dịch vụ không cần mức cung cấp chức cần tin cậy để thực thi việc kiểm soát ứng dụng người dùng cách thích đáng Có hai loại phần mềm tin cậy Loại thứ tin cậy không vi phạm tính bí mật 63 tồn vẹn hệ thống phần mềm nạp tiến trình Loại thứ tin cậy để trì sách an toàn cách đắn dịch vụ sửa đổi liệu xác thực người dùng Phần có 23 tiến trình chứa 11k dịng lệnh viết C Các phần mềm tin cậy gọi thông qua kênh thông tin tin cậy từ người dùng Việc sử dụng kênh ngăn chặn phần mềm xấu giả mạo người dùng hợp lệ Hơn thế, người dùng biết việc tương tác trực tiếp với phần mềm an tồn kênh an tồn kích hoạt Chỉ nhân nhận tín hiệu ngắt, người dùng thể chắn đáp ứng bắt nguồn từ phần mềm tin cậy c Đánh giá SCOMP thực việc ngăn chặn mức phần cứng đảm bảo giám sát truy nhập kiểm soát tất các yêu cầu hệ thống tới tài nguyên hệ thống Các tài nguyên hệ thống đoạn nhớ, nhớ vào/ra tất các lệnh truy nhập vào đoạn, phần ngăn chặn dựa phần cứng bẫy toàn truy nhập nhạy cảm Hệ thống file SCOMP lớp kiểm soát việc truy nhập tới file, mức cao, nơi yêu cầu (chính sách truy nhập) soạn thảo Tuy nhiên, truy nhập ban đầu tới file liệu tùy thuộc vào truy nhập tới thiết bị vào/ra Hệ thống file phải tin cậy để ngăn cản truy nhập trái phép tới liệu người dùng chương trình khác Mặt khác, chế ngăn chặn SCOMP kiểm tra đánh giá dựa phần cứng SCOMP áp dụng lớp bảo vệ để bảo vệ nhân an ninh khỏi sửa đổi trái phép Nhân an ninh hoạt động lớp có 38 cổng cho phép truy nhập tới nhân từ lớp bảo vệ khác SCOMP sử dụng mơ hình kiểm sốt tồn vẹn phức tạp để biểu diễn truy nhập tới lớp (lớp có nhiều đặc quyền nhất) Do nhân cần phải cập nhật hệ thống file, có số đối tượng (tài ngun) tiến trình sửa đổi nhân bao gồm chế bảo vệ giám sát tham chiếu Ngoài ra, SCOMP sử dụng lớp bảo vệ mơ hình truy nhập (như trình bày chế phần cứng) để bảo vệ tính tồn vẹn phần cịn lại sở tính tốn tin cậy Cơ sở tính toán tin cậy hoạt động lớp 0,1, Các mã không tin cậy không hoạt động lớp Các tiến trình khơng tin cậy lớp gọi đoạn mã phần tính tốn tin cậy Khi giao tiếp cổng triển khai để bảo vệ sở tính tốn tin cậy khơng rõ Tuy vậy, tính đắn phần sở tính tốn tin cậy phần thiết kế triển khai kiểm chứng cơng cụ phân tích tắc Thêm vào mục tiêu an toàn tuân thủ cách bắt buộc sử dụng sách an ninh nhiều lớp kiểu bắt buộc Các hệ thống phát triển kiểm chứng tính đắn thiết kế sách hệ thống Như vậy, SCOMP đáp ứng cách thuyết phục cho câu hỏi tính an tồn tính đắn biện pháp đảm bảo an ninh an toàn cho hệ thống Mặc 64 dầu số nhỏ điểm nguy hiểm độ phức tạp giao tiếp với phần tính tốn tin cậy tính khơng đầy đủ việc kiểm chứng hệ thống, SCOMP nhân an toàn khác tiến gần đến hệ điều hành an tồn 3.5 Kết luận Kiến trúc máy tính x86 kiến trúc sử dụng phổ biến rộng rãi cho máy PC, máy trạm máy chủ thời Các chế an toàn với việc quản lý tiến trình nhớ triển khai chế bảo vệ theo lớp đặc quyền, chế quản lý nhớ thông qua việc hạn chế truy nhập tới thẻ quản lý thông tin cấp phát nhớ hay thiết bị vào/ra Intel AMD hai công ty lớn cung cấp xử lý x86 triển khai chế bảo vệ cho việc quản lý tiến trình nhớ Các chương trình khơng tin cậy chương trình hoạt động mức hệ thống cách ly việc truy nhập vào thơng tin bảo vệ kiểm sốt Mặt khác để bảo vệ tính tồn vẹn bí mật liệu lưu trữ thiết bị cách tin cậy bảo đảm, người ta sử dụng kỹ thuật mã hóa băm liệu sở chức đóng gói thiết bị phần cứng riêng biệt Đây động lực dẫn đến đời mơ-đun tính tốn tin cậy Khi liệu không bảo vệ chống lại việc cắp mà kiểm chứng tính an tồn (tồn vẹn) q trình thực thi Điều đặc biệt quan trọng chương trình tương tác với qua mơi trường mạng Chương trình xa chứng minh tính tin cậy thơng qua việc cung cấp chứng (chuỗi thực thi tin cậy) bên tương tác kiểm chứng chứng Windows Unix/Linux hai nhóm hệ điều hành tiêu biểu sử dụng triển khai chế bảo vệ cung cấp từ kiến trúc x86 Việc đảm bảo an tồn triển khai thơng qua chế xác thực người dùng kiểm soát truy nhập tới tài nguyên hệ thống Cơ chế kiểm soát đặc quyền tiền đề cho việc triển khai thành cơng an tồn việc kiểm tra xác thực người dùng Với cách tiếp cận khác nhau, hai hệ điều hành có cách chế an toàn với mức độ phức tạp khác điểm yếu cố hữu Hiện thời hai hệ điều hành hỗ trợ chế bảo vệ file dựa mơ-đun tính tốn tin cậy khởi động có bảo vệ hay bảo mật liệu Để cải thiện chế bảo vệ nhằm nâng cao độ tin cậy khả chống xâm nhập, Linux cung cấp khung mô-đun an ninh cho phép kiểm sốt việc truy nhập thơng qua sách bắt buộc Yếu tố quan trọng việc sử dụng sách khả kiểm chứng yêu cầu an toàn an ninh hệ thống có bị vi phạm hay khơng Tuy vậy, cách tiếp cận chắn (chứng minh được) tính tin cậy hệ thống dựa chế bảo vệ truyền thống x86 cách chương trình nhân Linux Cách tiếp cận triệt để sử dụng phần cứng phần mềm việc xây dựng nhân SCOMP Khi tính an tồn khả chống 65 xâm phạm đảm bảo nhờ mơ-đun kiểm sốt phần cứng phần mềm kiểm soát đánh giá tính an tồn nhờ cơng cụ phân tích mã nguồn 3.6 Câu hỏi ơn tập 1) Cách thức triển khai lớp bảo vệ với câu lệnh cần đặc quyền kiến trúc x86? 2) Cách thức bảo vệ truy nhập không gian nhớ bảo vệ kiến trúc x86? 3) Giải thích chế cấm thực thi liệu? 4) Quá trình khởi động bảo vệ (measured boot)? 5) Giải thích khởi động bảo vệ (measured boot) giúp người dùng chống lại mã độc nào? 6) Giải thích chế lưu trữ an toàn sử dụng TPM (Trusted Platform Module)? 7) Các đặc trưng chế an toàn hệ điều hành Windows Unix/Linux? 8) Các đặc trưng an toàn hệ thống SELinux? 9) Các đặc trưng an toàn nhân an toàn SCOMP? 66 ... nhân an toàn, mặt lý thuyết, hệ điều hành lớn phần nhỏ chịu trách nhiệm an toàn Bằng cách cấu trúc lại hệ thống cho toàn phần mềm 25 liên quan đến an toàn tách thành phần nhân tin cậy hệ điều. .. động liên quan tới an toàn giữ số phần cách ly Thực tế với hệ điều hành khó đặt điều Vấn đề an toàn liên quan tới nhiều chức khác hệ thống quản lý file hệ thống, quản lý nhớ Khi chế an tồn đơn... 1. 2 Các vấn đề kiến trúc an toàn 15 1. 3 Chính sách an tồn 17 1. 4 Nền tảng tính tốn tin cậy 18 1. 5 Nhân an toàn 23 1. 6 Câu hỏi ôn