30Các ch ơng trình ứng dụng

Một phần của tài liệu CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL (Trang 30 - 37)

D C1 C2 B1 B2 B3 A1 Chính sách an toàn

30Các ch ơng trình ứng dụng

Hệ điều hành Nhân hệ điều hành

Hình 2.17 Các chức năng an toàn không có nhân an toàn

Hớng tiếp cận dựa vào nhân

Hớng tiếp cận này cố gắng làm giảm kích cỡ và độ phức tạp của các cơ chế an toàn, bằng cách nhóm các chức năng an toàn vào trong nhân an toàn. Khi đó, nhân an toàn sẽ cung cấp một tập tất cả các chức năng an toàn của hệ điều hành cho hệ thống.

Để thiết kế một hệ điều hành an toàn, thì vấn đề an toàn cần đợc quan tâm ngay từ giai đoạn thiết kế: trớc tiên, ta cần phát triển nhân an toàn, sau đó định nghĩa OS căn cứ vào nhân. Qua nhân an toàn, chúng ta có thể hiểu rõ khái niệm "bộ giám sát tham chiếu" (reference monitor), bởi vì nó kiểm soát tất cả các thao tác truy nhập và thực hiện tất cả các chức năng liên quan đến an toàn.

Nhân an toàn phải thoả mãn các tính chất sau đây:

Tính đầy đủ (completeness): có khả năng dàn xếp tất cả các truy nhập vào thông tin hệ thống.

Tính cách ly (isolation): nhân an toàn phải bảo đảm khả năng chống can thiệp.

Khả năng có thể kiểm tra (verifiability): mã lệnh của nhân có thể đợc kiểm tra để chứng tỏ rằng nó đã thực hiện đầy đủ các yêu cầu và chính sách an toàn (có trong mô hình an toàn).

Để xây dựng nhân an toàn, ta cần các chính sách an toàn đã đợc hình thức hóa. Các chính sách này chỉ ra những gì cần có trong nhân và những gì hỗ trợ bên ngoài nhân (phần hệ điều hành bên ngoài nhân đợc gọi là 'giám sát viên' (supervisor)). Các chức năng không liên quan đến an toàn hoặc cung cấp dịch vụ ngời dùng là phần của 'giám sát viên' (trừ khi một trong số chúng đợc chèn vào nhân an toàn để tăng tính hiệu quả).

Một OS dựa vào nhân an toàn có cấu trúc tầng và các tầng của nó tơng ứng với các miền thực hiện (execution domains) sau: nhân an toàn, giám sát viên và các ứng dụng (hình sau minh hoạ cấu trúc của một OS dựa vào nhân).

Ng ời dùng Ng ời dùng Ng ời dùng

Nhân an toàn ứng dụng Giám sát viên Giao diện OS Giao diện nhân

Hình 2.18 Cấu trúc của một OS dựa vào nhân

(Một khái niệm về nhân: Nhân là lõi của một kiến trúc phân tầng, nó quản lý hầu hết các hoạt động cơ bản của OS và bộ xử lý của máy tính. Nhân có nhiệm vụ điều phối các khối lệnh thực thi khác nhau, điều phối các luồng đợc gọi đến, và đối với bộ xử lý nhân làm cho nó hoạt động hết công suất có thể, đồng thời nó có khả năng phối hợp nhiều bộ xử lý để tối u hóa khả năng thực hiện. Nhân cũng đồng bộ hóa các hoạt động giữa các thành phần con trong các tầng, nh bộ quản lý nhập/xuất và bộ quản lý tiến trình, điều khiển các chức năng phụ thuộc phần cứng. Nhân làm việc gần với tầng trừu tợng phần cứng.

Ta chú ý:

Hệ điều hành quản lý cỏc tiến trỡnh trong hệ thống thụng qua khối quản lý tiến trỡnh (process control block -PCB). PCB là một vựng nhớ lưu trữ cỏc thụng tin mụ tả cho tiến trỡnh, với cỏc thành phần chủ yếu bao gồm :

Định danh của tiến trỡnh (1) : giỳp phõn biệt cỏc tiến trỡnh

Trạng thỏi tiến trỡnh (2): xỏc định hoạt động hiện hành của tiến trỡnh.

Ngữ cảnh của tiến trỡnh (3): mụ tả cỏc tài nguyên mà tiến trình đang sử dụng, hoặc để phục vụ cho hoạt động hiện tại, hoặc để làm cơ sở phục hồi hoạt động cho tiến trỡnh, bao gồm cỏc thụng tin về:

Trạng thỏi CPU: bao gồm nội dung cỏc thanh ghi, quan trọng nhất là con

trỏ lệnh IP lưu trữ địa chỉ cõu lệnh kế tiếp tiến trỡnh sẽ xử lý. Cỏc thụng tin này cần được lưu trữ khi xảy ra một ngắt, nhằm cú thể cho phộp phục hồi hoạt động của tiến trỡnh đỳng như trước khi bị ngắt.

Bộ xử lý: dựng cho mỏy cú cấu hỡnh nhiều CPU, xỏc định số hiệu CPU mà

tiến trỡnh đang sử dụng.

Bộ nhớ chớnh: danh sỏch cỏc khối nhớ được cấp cho tiến trỡnh.

Tài nguyờn sử dụng: danh sỏch cỏc tài mguyờn hệ thống mà tiến trỡnh đang

sử dụng.

Tài nguyờn tạo lập: danh sỏch cỏc tài nguyờn được tiến trỡnh tạo lập.

Thụng tin giao tiếp (4): phản ỏnh cỏc thụng tin về quan hệ của tiến trỡnh với cỏc tiến trỡnh khỏc trong hệ thống :

Tiến trỡnh cha: tiến trỡnh tạo lập tiến trỡnh này .

Tiến trỡnh con: cỏc tiến trỡnh do tiến trỡnh này tạo lập . (adsbygoogle = window.adsbygoogle || []).push({});

Độ ưu tiờn : giỳp bộ điều phối cú thụng tin để lựa chọn tiến trỡnh được cấp

CPU.

Thụng tin thống kờ (5): đõy là những thụng tin thống kờ về hoạt động của tiến trỡnh, như thời gian đó sử dụng CPU, thời gian chờ. Cỏc thụng tin này cú thể cú ớch cho cụng việc đỏnh giỏ tỡnh hỡnh hệ thống và dự đoỏn cỏc tỡnh huống tương lai.

Hỡnh 2.19 Khối mụ tả tiến trỡnh

Nhân hỗ trợ và giám sát các chức năng sau đây:

Đa xử lý (multiprocessing): Nhân hỗ trợ các tiến trình khác nhau hoạt động một cách đồng thời, bằng cách lu giữ các ngữ cảnh (các thanh ghi, bộ phận miêu tả tiến trình, các bảng) của các tiến trình hiện thời, nhờ vào một bộ chuyển ngữ cảnh (context switch).

Chuyển đổi miền thực hiện (execution domain switching): Ta có thể nhận ra 3 miền thực hiện lồng nhau trong một hệ thống dựa vào nhân an toàn, thực ra đó là 3 trạng thái thực hiện khác nhau của bộ xử lý là: nhân, giám sát viên, ngời dùng. Mỗi miền thực hiện có một tập hợp các quyền gắn với nó. Quyền của miền bên trong nhiều hơn miền bên ngoài. Trong một hệ thống dựa vào nhân an toàn, chỉ miền nhân mới có quyền thực hiện các dịch vụ đặc quyền liên quan đến an toàn. Tiến trình của ngời dùng có thể yêu cầu các dịch vụ này, bằng cách gọi các tiến trình đặc quyền của miền nhân. Điều này có nghĩa là nhân an toàn đợc bảo vệ, bởi vì khi tiến trình ngời dùng yêu cầu 34

các dịch vụ an toàn – tức gọi đến một lệnh hệ thống, tiến trình đặc quyền trong miền nhân sẽ thực hiện lệnh này và sau khi kết thúc sẽ trả quyền điều khiển cho tiến trình ngời dùng hoạt động trong chế độ không đặc quyền.

Bảo vệ bộ nhớ (memory protection): Nhân an toàn kiểm soát các truy nhập vào bộ nhớ từ các tiến trình khác nhau trong các miền khác nhau.

Các thao tác vào/ra (I/O operations): Nhân an toàn dàn xếp truy nhập vào các thiết bị vào/ra.

Việc thiết kế nhân cần sử dụng các kỹ thuật đặc tả hình thức (formal specification techniques). Mức đặc tả hình thức cao nhất (lấy trực tiếp từ mô hình an toàn) là đặc tả giao diện nhân/OS. Tiếp theo là đặc tả chi tiết các chức năng của nhân, và cuối cùng là mức đặc tả mã lệnh của nhân đợc viết trong một ngôn ngữ bậc cao. Hình 2.3 minh hoạ mức độ chi tiết của đặc tả hình thức trong thiết kế nhân.

Mô hình chính sách an toàn

Thực hiện nhân trong ngôn ngữ bậc cao

Các đặc tả mức thấp

Thực hiện kiểm tra đặc tả

Đặc tả mức cao của giao diện nhân

Phần trình diễn của các mức trung gian t ơng ứng

Đặc tả kiểm tra mô hình

Hình 2.20 Độ chi tiết của đặc tả hình thức trong thiết kế nhân

Thuận lợi và khó khăn của việc thiết kế hệ điều hành dựa vào nhân an toàn nh sau:

Thuận lợi: Thuận lợi của việc tách các chức năng an toàn ra khỏi phần còn lại của OS đợc tóm tắt nh sau:

Cách ly và tách rời (isolation and separation): Các cơ chế an toàn đợc cách ly khỏi OS và không gian của ngời dùng. Khả năng bảo vệ chống lại các xâm nhập hệ thống/ngời dùng cao hơn.

Kích cỡ giảm và có khả năng kiểm tra đợc (reduced size and verifiability): Nhân có kích cỡ nhỏ và chỉ có các chức năng an toàn, do vậy có thể kiểm tra đợc nó.

Khả năng có thể sửa đổi đợc (modifiability): có thể thực hiện các thay đổi trong các cơ chế an toàn và kiểm tra chúng một cách dễ dàng.

Khả năng dàn xếp hoàn toàn (complete mediation): Mọi truy nhập phải tuân theo các kiểm soát của nhân an toàn.

Khó khăn:

Việc sử dụng nhân an toàn có một số khó khăn. Hạn chế cơ bản của nó là giảm hiệu năng hệ thống, đặc biệt khi sử dụng phần cứng không thích hợp. Trong thực hành, rất khó để sửa đổi nhân, bởi vì những thay đổi nhỏ cũng có thể làm nó hoạt động không đúng. Hiệu năng của hệ thống có thể giảm xuống, khi nhân bổ sung thêm một mức trung gian giữa các chơng trình của ngời dùng và tài nguyên của OS. Hơn nữa, việc thực hiện nhân có kích cỡ nhỏ, độ phức tạp giảm là rất khó khăn, vì khó có thể tách các chức năng an toàn (thờng giữa các chức năng an toàn và chức năng không phải an toàn luôn có những phụ thuộc, liên hệ với nhau). Ngoài ra, để thiết kế nhân an toàn cần một mức đặc tả hình thức chính xác và cần tập các yêu cầu bảo vệ hạn chế.

Thực tế kích cỡ của nhân thờng là lớn đáng kể, do đó một số hệ thống sử dụng các tiến trình tin cậy để thực hiện các chức năng an toàn (cho các kiểm soát an toàn ít nghiêm ngặt hơn và các kiểm soát an toàn không bao hàm trong nhân) để tránh làm tăng kích cỡ của nhân.

Nên kiểm tra xem nhân có hoàn toàn tuân theo các yêu cầu bảo vệ của mô hình an toàn hay không, có nghĩa là kiểm tra tất cả các vi phạm có thể của nhân an toàn. ở đây có thể có các vi phạm trực tiếp (nhân trao truy nhập cho các chủ thể không đ- ợc phép) hoặc vi phạm gián tiếp (các chủ thể trái phép thu đợc thông tin từ chia sẻ tài nguyên). Các ví dụ về vi phạm gián tiếp trong an toàn đa mức là chuyển thông tin đợc phân loại ở mức cao sang mức thấp hơn (nhân đợc sử dụng nh là một kênh truyền thông). Quá trình kiểm tra nên nhận biết đợc tất cả các vi phạm gián tiếp và trực tiếp của nhân.

Việc kiểm tra hình thức một nhân an toàn có thể đợc tiến hành thông qua các (adsbygoogle = window.adsbygoogle || []).push({});

kỹ thuật đặc tả hình thức, chứng minh rằng:

• Các đặc tả mức cao của giao diện nhân phù hợp với các đặc tả hình thức của mô hình an toàn.

• Độ chi tiết của các đặc tả mức cao phù hợp với chúng.

• Mã lệnh của nhân phù hợp với với các yêu cầu đặc tả (đây là mức chi tiết cuối cùng).

Các ngôn ngữ đặc biệt và các chơng trình đã và đang đợc phát triển nhằm chứng minh tính đúng đắn của các nhân.

Một số ví dụ về OS an toàn dựa vào nhân là UCLA Secure UNIX, Kernelized Secure Operating System (KSOS) và Secure Xenix, VAX Security Kernel.

Một phần của tài liệu CÁC CƠ CHẾ AN TOÀN CƠ BẢN CSDL (Trang 30 - 37)