Mô hình này đảm bảo quyền truy cập của ngƣời sử dụng đến tài nguyên của hệ thống dựa trên định danh của ngƣời sử dụng và các luật an ninh thông tin của ngƣời sử dụng đối với các đối tƣợng trong hệ thống. Nếu ngƣời sử dụng có quyền thì có thể truy cập đến các đối tƣợng trong hệ thống, ngƣợc lại sẽ bị từ chối. Ngƣời sử dụng này có thể ủy quyền cho ngƣời sử dụng khác để truy cập đến tài nguyên của mình (ownership policy). Do đó, mô hình an ninh này rất mềm dẻo, có thể đáp ứng đƣợc các yêu cầu đảm bảo an ninh khác nhau. Vì những lý do này mà chúng đƣợc sử dụng rộng rãi trong thực tế, đặc biệt là trong môi trƣờng kinh tế và công nghiệp. Tuy nhiên, các chính sách điều khiển truy cập tự quyết có nhƣợc điểm là chúng không thỏa mãn thực sự các yêu cầu bảo vệ. Dù mỗi truy cập đƣợc điều khiển và cho phép chỉ khi đƣợc cấp quyền, việc nhƣờng lại các quyền truy cập rất dễ dàng.
Ví dụ, một ngƣời dùng đƣợc phép đọc dữ liệu có thể cho phép một ngƣời dùng khác không có quyền đọc chúng nhƣng tổ chức hay ngƣời sở hữu dữ liệu không thể biết đƣợc. Vì vậy, một ngƣời không đƣợc cấp quyền vẫn có thể đọc và lấy về các dữ liệu đã đƣợc bảo vệ. Vấn đề chính ở đây là các chính sách tự quyết không áp đặt bất cứ giới hạn nào trên việc sử dụng thông tin một khi chúng đã đƣợc lấy về bởi ngƣời dùng: tức là sự phổ biến thông tin không đƣợc kiểm soát. Điều này làm cho điều khiển tự quyết dễ bị tổn thƣơng bởi các tấn công độc hại nhƣ Trojan Horses nhúng trong các chƣơng trình. Một Trojan Horse là một chƣơng trình máy tính với một chức năng hữu ích nhƣng lại chứa các chức năng ẩn, bí mật khai thác các quyền hợp pháp trong quá trình chạy.
Để hiểu đƣợc làm thế nào để một Trojan Horse có thể thu thập đƣợc các thông tin không đƣợc phép, kể cả khi có mặt các điều khiển truy nhập tự quyết ta xét ví dụ sau. Giả sử ngƣời dùng x tạo ra file f1 và ghi vào đó 1 ít thông tin. ngƣời dùng y tạo ra file f2, và đƣợc phép thực hiện mọi hành vi trên file f2. Cụ thể, y có thể gán cho những ngƣời khác các quyền truy nhập file f2. Giả sử y ủy quyền write cho x trên f2. Một chƣơng trình P (là một Trojan Horse), P chứa một đoạn code ẩn dùng để đọc file f1 và ghi trên f2 (Hình 3.9a). Khi x chạy chƣơng trình P, tất cả các yêu cầu của x đƣợc kiểm tra dựa trên các quyền của x. Cụ thể với đoạn code ẩn trong P: đầu tiên việc đọc file f1
đƣợc yêu cầu, vì x tạo ra file f1 nên yêu cầu đƣợc chấp nhận. Tiếp đó quyền write trên f2 đƣợc yêu cầu. Vì x có quyền write trên f2 nên yêu cầu đƣợc chấp nhận. Trong quá trình xử lý của P, các thông tin đƣợc đọc từ f1 (mà y không có quyền read) đƣợc ghi vào f2, nhƣ vậy y có thể đọc đƣợc thông tin từ f1 (hình 3.9b). Nhƣ vậy, có sự truyền thông tin trái phép tới ngƣời dùng y, cho dù điều khiển truy cập có hoạt động.
79
Hình 3.9 Minh họa một kiểu tấn công Trojan Hourse
Ví dụ đơn giản này minh họa những giới hạn đã đƣợc nêu trong quyền hạn có thể vƣợt qua dễ dàng, và gây ra sự thiếu đảm bảo trong các chính sách tự quyết. Loại Trojan Horse này có thể chặn đứng bởi việc dùng các chính sách bắt buộc.
80