Bài giảng Hệ điều hành - Chương 7: Bảo vệ và an toàn hệ thống - Đặng Minh Quân
Mục tiêu của việc bảo vệ
Bảo vệ chống lỗi của tiến trình : khi có nhiều tiến trình cùng hoạt động, lỗi của một tiến trình j phải được ngăn chặn không cho lan truyền trên hệ thống làm ảnh hưởng đến các tiến trình khác.
Chống sự truy xuất bất hợp lệ : Bảo đảm các bộ phận tiến trình sử dụng tài nguyên theo một cách thức hợp lệ được qui định cho nó.
Miền bảo vệ
Một hệ thống máy tính được xem như một tập các đối tượng (objects). Một đối tượng có thể là một bộ phận phần cứng ( CPU, bộ nhớ, ổ đĩa.) hay một thực thể phần mềm ( tập tin, chương trình, semaphore.).
Hệ điều hành chỉ cho phép các tiến trình được truy xuất đến các tài nguyên mà nó có quyền sử dụng, hơn nữa tiến trình chỉ được truy xuất đến các tài nguyên cần thiết trong thời điểm hiện tại để nó hoàn thành tác vụ (nguyên lý need-to-know) nhằm hạn chế các lỗi truy xuất mà tiến trình có thể gây ra trong hệ thống.
Một hệ thống máy tính được xem như một tập các đối tượng (objects). Một đối tượng có thể là một bộ phận phần cứng ( CPU, bộ nhớ, ổ đĩa.) hay một thực thể phần mềm ( tập tin, chương trình, semaphore.).
Các khả năng thao tác trên một đối tượng được gọi là quyền truy xuất (access right).
Một miền bảo vệ là một tập các quyền truy xuất, mỗi quyền truy xuất được định nghĩa bởi một bộ hai thứ tự <đối tượng,="" {quyền="" thao="" tác}="">.đối>
Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành - Chương 7: Bảo vệ và an toàn hệ thống - Đặng Minh Quân
Hệ điều hành Chương 7 : Bảo vệ và an toàn hệ thống Tổng quan Mục tiêu của việc bảo vệ Miền bảo vệ Ma trận quyền truy xuất An toàn hệ thống Mục tiêu của việc bảo vệ Bảo vệ chống lỗi của tiến trình : khi có nhiều tiến trình cùng hoạt động, lỗi của một tiến trình j phải được ngăn chặn không cho lan truyền trên hệ thống làm ảnh hưởng đến các tiến trình khác. Chống sự truy xuất bất hợp lệ : Bảo đảm các bộ phận tiến trình sử dụng tài nguyên theo một cách thức hợp lệ được qui định cho nó. Miền bảo vệ Một hệ thống máy tính được xem như một tập các đối tượng (objects) . Một đối tượng có thể là một bộ phận phần cứng ( CPU, bộ nhớ, ổ đĩa...) hay một thực thể phần mềm ( tập tin, chương trình, semaphore...). Hệ điều hành chỉ cho phép các tiến trình được truy xuất đến các tài nguyên mà nó có quyền sử dụng, hơn nữa tiến trình chỉ được truy xuất đến các tài nguyên cần thiết trong thời điểm hiện tại để nó hoàn thành tác vụ (nguyên lý need-to-know ) nhằm hạn chế các lỗi truy xuất mà tiến trình có thể gây ra trong hệ thống. Miền bảo vệ Một hệ thống máy tính được xem như một tập các đối tượng (objects) . Một đối tượng có thể là một bộ phận phần cứng ( CPU, bộ nhớ, ổ đĩa...) hay một thực thể phần mềm ( tập tin, chương trình, semaphore...). Các khả năng thao tác trên một đối tượng được gọi là quyền truy xuất (access right). Một miền bảo vệ là một tập các quyền truy xuất, mỗi quyền truy xuất được định nghĩa bởi một bộ hai thứ tự . Miền bảo vệ Mỗi tiến trình trong hệ thống đều hoạt động trong một miền bảo vệ (protection domain) nào đó. Một miền bảo vệ sẽ xác định các tài nguyên ( đối tượng) mà những tiến trình hoạt động trong miền bảo vệ này có thể sử dụng, và các thao tác hợp lệ các tiến trình này có thể thực hiện trên những tài nguyên đó. Ví dụ : Miền bảo vệ Các miền bảo vệ khác nhau có thể giao nhau một số quyền truy xuất Mối liên kết giữa một tiến trình và một miền bảo vệ có thể tĩnh hay động Miền bảo vệ - Liên kết tĩnh T rong suốt thời gian sống của tiến trình , tiến trình chỉ hoạt động trong một miền bảo vệ N gay từ đầu miền bảo vệ đã phải đặc tả tất cả các quyền truy xuất qua các giai đoạn cho tiến trình ở mỗi giai đoạn tiến trình có thể thao tác trên những tập tài nguyên khác nhau bằng các thao tác khác nhau Đ iều này có thể khiến cho tiến trình có dư quyền trong một giai đoạn nào đó , và vi phạm nguyên lý need-to-know. C ần phải có khả năng cập nhật nội dung miền bảo vệ Miền bảo vệ - Liên kết động C ơ chế này cho phép tiến trình chuyển từ miền bảo vệ này sang miền bảo vệ khác trong suốt thời gian sống của nó . Để tiếp tục tuân theo nguyên lý need-to-know , thay vì sửa đổi nội dung của miền bảo vệ , có thể tạo ra các miền bảo vệ mới với nội dung thay đổi qua từng giai đoạn xử lý của tiến trình , và chuyển tiến trình sang hoạt động trong miền bảo vệ phù hợp theo từng thời điểm . Miền bảo vệ Một miền bảo vệ có thể được xây dựng cho : Một người sử dụng : trong trường hợp này , tập các đối tượng được phép truy xuất phụ thuộc vào định danh của người sử dụng , miền bảo vệ được chuyển khi thay đổi người sử dụng . Một tiến trình : trong trường hợp này , tập các đối tượng được phép truy xuất phụ thuộc vào định danh của tiến trình , miền bảo vệ được chuyển khi quyền điều khiển được chuyển sang tiến trình khác . Một thủ tục : trong trường hợp này , tập các đối tượng được phép truy xuất là các biến cục bộ được định nghĩa bên trong thủ tục , miền bảo vệ được chuyển khi thủ tục được gọi . Ma trận quyền truy xuất Các dòng của ma trận biễu diễn các miền bảo vệ Các cột tương ứng với các đối tượng trong hệ thống. Phần tử acess[i,j] của ma trận xác định các quyền truy xuất mà một tiến trình hoạt động trong miền bảo vệ Di có thể thao tác trên đối tượng Oj . Ma trận quyền truy xuất object domain F 1 F 2 F 3 Máy in D 1 đọc Đọc D 2 in D 3 đọc Xử lý D 4 đọc ghi đọc ghi Ma trận quyền truy xuất Có thể kiểm soát việc chuyển đổi giữa các miền bảo vệ nếu quan niệm miền bảo vệ cũng là một đối tượng trong hệ thống , và bổ sung các cột mô tả cho nó trong ma trận quyền truy xuất . Khi đó tiến trình được phép chuyển từ miền bảo vệ Di sang miền bảo vệ Dj nếu phần tử access (i,j) chứa đựng quyền « chuyển » ( switch). Ma trận quyền truy xuất object domain F 1 F 2 F 3 Máy in D 1 D 2 D 3 D 4 D 1 đọc đọc chuyển D 2 in chuyển chuyển D 3 đọc xử lý D 4 đọc ghi đọc ghi chuyển Ma trận quyền truy xuất Có thể kiểm soát việc sửa đổi nội dung ma trận ( thay đổi các quyền truy xuất trong một miền bảo vệ ) nếu quan niệm bản thân ma trận cũng là một đối tượng . Các thao tác sửa đổi nội dung ma trận được phép thực hiện bao gồm : sao chép quyền ( copy), chuyển quyền ( transfer), quyền sở hữu (owner), và quyền kiểm soát (control) Ma trận quyền truy xuất Copy : nếu một quyền truy xuất R trong access[i,j] được đánh dấu là R* thì có thể sao chép nó sang một phần tử access[k,j] khác ( mở rộng quyền truy xuất R trên cùng đối tượng Oj nhưng trong miền bảo vệ Dk ). Transfer : nếu một quyền truy xuất R trong access[i,j] được đánh dấu là R+ thì có thể chuyển nó sang một phần tử access[k,j] khác ( chuyển quyền truy xuất R+ trên đối tượng Oj sang miền bảo vệ Dk ). Ma trận quyền truy xuất object domain F 1 F 2 F 3 D 1 xử lý ghi + D 2 xử lý Đọc * xử lý D 3 xử lý object domain F 1 F 2 F 3 D 1 xử lý D 2 xử lý Đọc * xử lý D 3 xử lý đọc ghi + Ma trận quyền truy xuất Owner : nếu access[i,j] chứa quyền truy xuất owner thì tiến trình hoạt động trong miền bảo vệ Di có thể thêm hoặc xóa các quyền truy xuất trong bất kỳ phần tử nào trên cột j ( có quyền thêm hay bớt các quyền truy xuất trên đối tượng Oj trong những miền bảo vệ khác ). Ma trận quyền truy xuất object domain F 1 F 2 F 3 D 1 owner xử lý Ghi D 2 đọc * owner đọc * owner ghi * D 3 xử lý object domain F 1 F 2 F 3 D 1 owner xử lý D 2 owner đọc * ghi * đọc * owner ghi * D 3 ghi Ma trận quyền truy xuất Control : nếu access[i,j] chứa quyền truy xuất control thì tiến trình hoạt động trong miền bảo vệ Di có thể xóa bất kỳ quyền truy xuất nào trong các phần tử trên dòng j ( có quyền bỏ bớt các quyền truy xuất trong miền bảo vệ Dj ). Ma trận quyền truy xuất object domain F 1 F 2 F 3 Máy in D 1 D 2 D 3 D 4 D 1 đọc đọc chuyển D 2 in chuyển control chuyển D 3 đọc xử lý D 4 ghi ghi chuyển object domain F 1 F 2 F 3 Máy in D 1 D 2 D 3 D 4 D 1 đọc đọc chuyển D 2 in chuyển chuyển D 3 đọc xử lý D 4 đọc ghi đọc ghi chuyển Vấn đề an toàn Xâm phạm tính bí mật . Kiểu xâm phạm này bao gồm sự đọc không hợp pháp dữ liệu hay sự ăn trộm thông tin. Xâm phạm sự toàn vẹn . Sự xâm phạm này bao gồm sự cải biến không hợp pháp dữ liệu . Xâm phạm tính sẵn sàng . Sự xâm phạm này bao gồm sự phá hủy không hợp pháp dữ liệu . Ăn trộm dịch vụ . Sự xâm phạm này bao gồm sự sử dụng không hợp pháp những tài nguyên . Từ chối dịch vụ . Sự xâm phạm này bao gồm ngăn ngừa sử dụng hợp pháp của hệ thống . Chương trình đe dọa Con ngựa thành Tơ - roa Phần mềm gián điệp đôi khi đi theo một chương trình mà người sử dụng lựa chọn để cài đặt . Thường xuyên nhất , nó đi cùng với phần mềm miễn phí hay chương trình phần mềm dùng chung , nhưng đôi khi nó được đi cùng với phần mềm thương mại . Mục đích của phần mềm gián điệp là tải xuống những quảng cáo để trình bày trên hệ thống của người sử dụng , tạo ra khi đến thăm những chỗ nhất định , hay bắt thông tin từ hệ thống của người sử dụng và truyền đến một chỗ trung tâm . Chương trình đe dọa Cửa bẫy : người thiết kế của một chương trình hay hệ thống có thể đã để lại một lỗ hổng trong phần mềm mà chỉ ông ta có năng lực sử dụng . Chương trình đe dọa Bom lôgic : Xem xét một chương trình mà nó kích hoạt tính năng mất an ninh dưới những hoàn cảnh nhất định . Thật khó để phát hiện vì ở dưới những thao tác bình thường , ở đó không có lỗ hổng an ninh . Tuy nhiên , khi một tập hợp cài đặt sẵn những tham số xuất hiện , lỗ hổng an toàn được tạo ra . Kịch bản này được biết đến như một bom lôgic . Một lập trình viên , chẳng hạn , có thể đã viết viết mã để phát hiện liệu mình vẫn còn được sử dụng ; nếu sự kiểm tra kia thất bại , một tiến trình có thể được sinh ra cho phép sự truy nhập từ xa , hay một đoạn mã có thể được chạy nhằm gây ra thiệt hại cho hệ thống . Chương trình đe dọa Tấn công tràn ngăn xếp hay bộ đệm là cách chung nhất của người tấn công từ bên ngoài hệ thống , trên một mạng , nhằm đạt được sự truy nhập trái phép tới hệ thống đích . Một người có quyền sử dụng hệ thống có thể cũng sử dụng cách này để có được sự leo thang đặc quyền . Chương trình đe dọa Virut : Một dạng khác của chương trình đe dọa là một virut . Một virut là một đoạn mã nhúng trong một chương trình hợp pháp . Những virut có thể tự sao chép và được thiết kế để " lây lan " sang các trương trình khác . Chúng có thể tàn phá một hệ thống bởi việc sửa đổi hay phá hủy những tập tin và gây ra treo hệ thống và những sự trục trặc của các chương trình . Giống như với đa số những sự tấn công thâm nhập , những virut rất đặc trưng đối với những kiến trúc , những hệ điều hành và những ứng dụng . Mối đe dọa Hệ thống và Mạng Sâu : Một con Sâu là một tiến trình mà sử dụng cơ chế sản sinh để tàn phá hiệu năng cả hệ thống . Con Sâu sao chép chính nó , sử dụng hết những tài nguyên hệ thống và có thể khóa các tiến trình khác . Trên những mạng máy tính , sâu đặc biệt hùng mạnh , do chúng có thể tự sinh sôi trong các hệ thống và như vậy làm sập toàn bộ một mạng . Mối đe dọa Hệ thống và Mạng Sự quét cổng không phải là một sự tấn công nhưng là một phương tiện cho một kẻ bẻ khóa để phát hiện ra những điểm dễ bị tổn thương bởi sự tấn công của một hệ thống . Sự quét cổng thường được tự động hóa , bao gồm một công cụ thử tạo ra một kết nối TCP tới một cổng hay một dãy các cổng . Chẳng hạn , giả sử có một lỗ hổng đã biết (hay một lỗi ) ở chương trình gửi thư . Một kẻ bẻ khóa có thể dùng bộ quét cổng để thử kêt nối vào cổng 25 của một hệ thống cụ thể hay tới một loạt các hệ thống . Nếu kết nối thành công , kẻ bẻ khóa có thể thử giao tiếp với dịch vụ đang trả lời để xác định phải chăng dịch vụ đó là dịch vụ gửi thư , nếu đúng , thì đó là phiên bản có lỗi . Tấn công từ chối dịch vụ Tấn công từ chối dịch vụ nói chung thường dựa vào mạng . Chúng rơi vào trong hai phạm trù . Những sự tấn công trong phạm trù đầu tiên sử dụng rất nhiều phương tiện tài nguyên dẫn tới không có công việc có ích nào có thể được thực hiện . Chẳng hạn , một click vào Web-site có thể tải xuống một Java applet mà nó có thể sử dụng tất cả thời gian CPU hay mở ra vô tận các cửa sổ . Phạm trù thứ hai bao gồm phá vỡ mạng của một phương tiện . Đã có vài sự tấn công từ chối dịch vụ thành công theo cách thức này nhằm chống lại những trang Web lớn . Xây dựng hệ thống bảo vệ Vật lý . Chỗ hay những chỗ chứa đựng những hệ thống máy tính phải chắc chắn về mặt vật lý chống lại những kẻ đột nhập có vũ trang hay lén lút . Những buồng máy và những thiết bị đầu cuối hay những máy trạm truy nhập tới những máy chủ phải được đảm bảo an toàn . Xây dựng hệ thống bảo vệ Con người . Sự cho phép phải được làm cẩn thận để đảm bảo rằng chỉ những người sử dụng thích hợp được truy nhập tới hệ thống Xây dựng hệ thống bảo vệ Hệ điều hành . Chính hệ thống phải bảo vệ nó từ những sự xâm phạm an toàn ngẫu nhiên hay có chủ ý. Một tiến trình chạy trốn đã có thể cấu thành một sự tấn công từ chối dịch vụ ngẫu nhiên . Một truy vấn tới một dịch vụ có thể để lộ ra những mật khẩu . Một sự tràn ngăn xếp đã có thể khởi tạo một tiến trình không hợp pháp . Danh sách những sự xâm phạm có thể xảy ra gần như vô tận . Xây dựng hệ thống bảo vệ Mạng . Nhiều dữ liệu máy tính trong những hệ thống hiện đại truyền qua những đường dây thuê bao riêng tư , những đường dây chung như Internet, những kết nối không dây . Việc chặn đứng dữ liệu này có thể chỉ có hại như đột nhập vào trong một máy tính ; và việc gián đoạn truyền thông đã có thể cấu thành một sự tấn công từ chối dịch vụ từ xa , giảm bớt sự sử dụng của người dùng và độ tin cậy trong hệ thống . Mã hóa Mật mã dựa vào những bí mật gọi là những chìa khóa được phân tán có chọn lọc tới những máy tính trong một mạng và thường dùng để xử lý những thông điệp . Mật mã cho phép một người nhận thông điệp kiểm tra thông điệp được tạo ra bởi máy tính nào đó sở hữu một chìa khóa nhất định - chìa khóa là nguồn của thông điệp . Tương tự : Một người gửi có thể mã hóa thông điệp của mình để chỉ một máy tính với một chìa khóa nhất định có thể giải mã được thông điệp , vì vậy chìa khóa kia trở thành địa điểm đến . Chính sách an toàn Bước đầu tiên của việc cải thiện sự an toàn của bất kỳ khía cạnh nào của hệ thống tính toán là có một chính sách an toàn . Những chính sách thay đổi rộng nhưng nói chung bao gồm một sự phát biểu cái gì cần được giữ an toàn . Đánh giá lỗ hổng Hoạt động lõi của đa số những sự đánh giá lỗ hổng là một thử nghiệm xâm nhập trong đó thực thể được quét nhằm phát hiện các lỗ hổng đã được biết . Phát hiện xâm nhập Sự phát hiện xâm nhập như tên của nó gợi ý, những sự cố gắng để phát hiện ra những ý định xâm nhập hay xâm nhập thành công vào trong những hệ máy tính và khởI động các phản ứng đáp lại những xâm nhập . Thời gian mà sự phát hiện xuất hiện . Phạm vi của những khả năng đáp trả . Sự Bảo vệ khỏi Virut Việc bảo vệ khỏi những virut như vậy là một sự quan tâm quan trọng về an toàn. Những chương trình kháng virut thường được dùng để cung cấp sự bảo vệ này. Một số những chương trình này có hiệu quả chống lại chỉ những virut đã được biết đến. Kiểm toán, Kế toán, và lưu lại dữ liệu Sự kiểm toán, kế toán, và sư ghi lạI dữ liệu có thể làm giảm bớt hiệu năng cả hệ thống, nhưng chúng rất hữu ích trong vài lĩnh vực, bao gồm sự an toàn. Sư ghi lạI dữ liệu có thể chung chung hay cụ thể. Tất cả các sự thực hiện lờI gọi hệ thống có thể được ghi lại phục vụ sự phân tích hành vi chương trình. Cụ thể hơn, những sự kiện đáng nghi ngờ được ghi lại. Những sự thất bại về chứng thực và xác thực có thể nói với chúng ta khá nhiều về những sự nỗ lực xâm nhập. Tường lửa Một máy tính, trang thiết bị hay bộ định tuyến đặt giữa hệ thống được tin cậy và không đáng tin cậy. Một tường lửa mạng giới hạn các truy nhập mạng giữa hai hệ thống và kiểm tra và ghi lại tất cả các kết nối. Nó có thể cũng giới hạn những kết nối dựa vào địa chỉ nguồn hay nơi nhận, cổng nguồn hay cổng đến hay phương hướng của kết nối. Ví dụ, máy chủ Web sử dụng HTTP để giao tiếp với những trình duyệt. Một tường lửa bởi vậy có thể cho phép duy nhất HTTP đi qua từ tất cả các máy bên ngoài tường lửa đến người máy chủ Web bên trong tường lửa
File đính kèm:
- bai_giang_he_dieu_hanh_chuong_7_bao_ve_va_an_toan_he_thong_d.ppt