Thứ Bảy, 23 tháng 10, 2010

Các kỹ thuật kiểm soát truy nhập
Kiểm soát truy nhập nói chung được chia ra làm hai loại, hoặc là tùy ý (discretionary), hoặc là bắt buộc (mandatory). Thông hiểu sự khác nhau giữa kiểm soát truy nhập tùy ý (DAC) và kiểm soát truy nhập bắt buộc (MAC), cũng như những phương pháp kiểm soát truy nhập cụ thể thuộc mỗi loại trên, là một yêu cầu then chốt để chúng ta có thể đạt được kết quả tốt trong trong quá trình kiểm soát quyền, kiểm soát truy nhập của người dùng.

1.Kiểm soát truy nhập tuỳ ý
1.1Kiểm soát truy nhập tùy ý trong hệ điều hành

Kiểm soát truy nhập tùy ý (discretionary access control - DAC) là một chính sách truy nhập mà chủ nhân của tập tin hay người chủ của một tài nguyên nào đấy tự định đoạt. Chủ nhân của nó quyết định ai là người được phép truy nhập tập tin và những đặc quyền (privilege) nào là những đặc quyền người đó được phép thi hành.
Hai khái niệm niệm quan trọng trong truy nhập tùy ý là:
• Chủ sở hữu của tập tin và dữ liệu (File and data ownership): Bất cứ một đối tượng nào trong một hệ thống cũng phải có một chủ nhân là người sở hữu nó. Chính sách truy nhập các đối tượng là do chủ nhân tài nguyên (chủ nhân của đối tượng đó) quyết định. Những tài nguyên hệ thống bao gồm: các tập tin, các thư mục, dữ liệu, các tài nguyên của hệ thống, và các thiết bị. Theo lý thuyết, đối tượng nào không có chủ sở hữu thì đối tượng đó bị bỏ lơ, không được bảo vệ. Thông thường thì chủ nhân của tài nguyên chính là người đã tạo nên tài nguyên (như tập tin hoặc thư mục).
• Các đặc quyền truy nhập: Đây là những quyền khống chế những thực thể tài nguyên mà chủ nhân của tài nguyên chỉ định cho mỗi một người hoặc mỗi một nhóm người dùng.
Kiểm soát truy nhập tùy ý có thể được áp dụng thông qua nhiều kỹ thuật khác nhau:
• Danh sách kiểm soát truy nhập (Access control list - ACL) là danh sách các đặc quyền mà chủ thể có thể được thực hiện trên một đối tượng. Mỗi đối tượng có một danh sách các quyền truy nhập tương ứng với một chủ thể. Ví dụ: trong Unix, ta có 4 người dùng là A, B, C, D chẳng hạn, khi đó ta có danh sách kiểm soát truy nhập của các file như sau:
o File0: (A,RX), File2: (A, RW-), (B, R--), (D, RW-), File3: (C, ---)
o Danh sách kiểm soát truy nhập cho ta một phương pháp linh hoạt để áp dụng quy chế kiểm soát truy nhập tùy ý.
• Kiểm soát truy nhập dựa vào role (role-based access control): kiểm soát truy nhập của người dùng dựa trên các role mà họ được gán. Role là một nhóm quyền được đặt tên. Chiến lược này giúp giảm khó khăn trong việc điều hành quản lý quyền truy nhập.

1.2. Kiểm soát truy nhập tùy ý trong CSDL

Kiểm soát truy nhập tùy ý chỉ rõ những đặc quyền mà mỗi chủ thể có thể có được trên các đối tượng và trên hệ thống (object prilvilege, system prilvilege). Các yêu cầu truy nhập được kiểm tra, thông qua một cơ chế kiểm soát tuỳ ý, truy nhập chỉ được trao cho các chủ thể thoả mãn các quy tắc cấp quyền của hệ thống.
DAC dựa vào định danh của người dùng có yêu cầu truy nhập. ‘Tùy ý’ có nghĩa rằng người sử dụng có khả năng cấp phát hoặc thu hồi quyền truy nhập trên một số đối tượng. Điều này ngầm định rằng, việc phân quyền kiểm soát dựa vào quyền sở hữu (kiểu chính sách cấp quyền dựa vào quyền sở hữu).
Trao quyền: Do người sở hữu đối tượng thực hiện. Tuy nhiên, trong DAC có thể lan truyền các quyền. Ví dụ: trong Oracle có GRANT OPTION, ADMIN OPTION.
Thu hồi quyền: Người dùng muốn thu hồi quyền (người đã được trao quyền đó) phải có đặc quyền để thu hồi quyền. Trong Oracle, nếu 1 user có GRANT OPTION, anh ta có thể thu hồi quyền đã truyền cho người khác.
Như vậy, DAC cho phép đọc thông tin từ một đối tượng và chuyển đến một đối tượng khác (đối tượng này có thể được ghi bởi một chủ thể). Điều này tạo ra sơ hở để cho tấn công con ngựa thành Tơroa sao chép thông tin từ một đối tượng đến một đối tượng khác.
Ví dụ: UserA là chủ sở hữu tableA, anh ta tạo ra khung nhìn ViewA từ bảng này (sao chép thông tin). UserA không cho phép UserB được đọc tableA nhưng lại vô tình gán quyền Write cho UserB trên ViewA. vậy là, UserB có thể đọc thông tin tableA dù không được quyền trên bảng này.

2.Kiểm soát truy nhập bắt buộc
2.1.Kiểm soát truy nhập bắt buộc trong hệ điều hành

Kiểm soát truy nhập bắt buộc (mandatory access control - MAC) là một chính sách truy nhập không do cá nhân sở hữu tài nguyên quyết định, mà do hệ thống quyết định. MAC được dùng trong các hệ thống đa cấp, là những hệ thống xử lý các loại dữ liệu nhạy cảm, như các thông tin được phân loại về mức độ bảo mật trong cơ quan chính phủ và trong quân đội. Một hệ thống đa cấp là một hệ thống máy tính duy nhất chịu trách nhiệm xử lý nhiều cấp nhạy cảm giữa các chủ thể và các đối tượng trong hệ thống.
Nhãn nhạy cảm (sensitivity label): Trong hệ thống dùng kiểm soát truy nhập bắt buộc, hệ thống chỉ định một nhãn nhạy cảm cho mỗi chủ thể và mỗi đối tượng trong hệ thống. Nhãn nhạy cảm của một chủ thể sẽ xác định mức tin cậy của chủ thể đó cần thiết để truy nhập. Để truy nhập một đối tượng nào đó, chủ thể phải có một mức nhạy cảm (độ tin cậy) tương đồng hoặc cao hơn mức nhạy cảm của đối tượng yêu cầu.
Nhập và xuất dữ liệu (Data import and export): Điều khiển việc nhập và xuất thông tin tới một hệ thống khác (bao gồm cả các máy in) là một chức năng trọng yếu trong các hệ thống sử dụng kiểm soát truy nhập bắt buộc. Nhiệm vụ của việc nhập - xuất thông tin là phải đảm bảo các nhãn nhạy cảm được giữ gìn một cách đúng đắn và các thông tin nhạy cảm phải được bảo vệ trong bất kỳ tình huống nào.
Có hai phương pháp được dùng phổ biến để áp dụng chính sách kiểm soát truy nhập bắt buộc:
• Kiểm soát truy nhập dựa vào quy tắc (rule-based access control): Việc điều khiển thuộc loại này định nghĩa thêm những điều kiện cụ thể đối với việc truy nhập một đối tượng mà chúng ta yêu cầu. Tất cả các hệ thống dùng kiểm soát truy nhập bắt buộc đều thực hiện dựa vào quy tắc, nhằm quyết định cho phép hay từ chối yêu cầu truy nhập, bằng cách đối chiếu:
o Nhãn nhạy cảm của đối tượng
o Nhãn nhạy cảm của chủ thể
• Kiểm soát truy nhập dựa vào lưới (lattice-based access control): Đây là phương pháp người ta sử dụng đối với những quyết định phức tạp trong kiểm soát truy nhập với sự liên quan của nhiều đối tượng và/hoặc chủ thể. Mô hình lưới là một cấu trúc toán học, nó định nghĩa các giá trị cận dưới lớn nhất (greaANHTUAN lower-bound) và cận trên nhỏ nhất (least upper-bound) cho những cặp nguyên tố, chẳng hạn như cặp nguyên tố bao gồm một chủ thể và một đối tượng.
Clearance là mức nhạy cảm để người dùng (hay phía Client) có thể truy nhập thông tin. Người ta thường chia Clearance thành 4 loại:
• Tối mật (Top Secret - T): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến những thiệt hại trầm trọng với an ninh quốc gia
• Tuyệt mật (Secret - S): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến một loạt thiệt hại với an ninh quốc gia.
• Mật (Confidential - C): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến thiệt hại với an ninh quốc gia.
• Không phân loại (Unclassified - U): Những thông tin không gây thiệt hại
Sự phân loại mức nhạy cảm cho thông tin tuỳ thuộc vào chính sách. Người ta sẽ sử dụng cùng các mức phân loại cho các mức Clearance thành một cặp "Kiểu - Loại". Trong đó, kiểu người dùng là một giới hạn để truy nhập thông tin dựa trên sự phân loại Clearance của thông tin. Mối quan hệ trong phân loại này là: U< C < S < T.
Khái niệm MAC được hình thức hoá lần đầu tiên bởi mô hình Bell và LaPadula. Mô hình này hỗ trợ MAC bằng việc xác định rõ các quyền truy nhập từ các mức nhạy cảm kết hợp với các chủ thể và đối tượng. Hai luật sau định nghĩa truy nhập bắt buộc:
• Thuộc tính đơn giản (ss - property): Một chủ thể có thể đọc một đối tượng chỉ nếu mức nhạy cảm của chỉ thể cao hơn hoặc bằng mức nhạy cảm của đối tượng (gọi là quy tắc Readdown - Đọc xuống). Thuộc tính này cho phép các chủ thể có thể đọc các đối tượng có mức nhạy cảm thấp hơn.
• Thuộc tính * (*.Property): Một chủ thể có thể ghi thông tin vào một đối tượng chỉ nếu mức nhạy cảm của đối tượng cao hơn hoặc bằng mức nhạy cảm của chủ thể (gọi là quy tắc Write up - Ghi lên). Thuộc tính này không cho phép một chủ thể được ghi lên đối tượng mức cao hơn.
Như vậy ta có thể thấy rằng, nhờ hai thuộc tính trên mà tránh được việc để lộ thông tin bí mật bằng cách không cho phép một chủ thể đọc từ đối tượng mức cao và ghi dữ liệu xuống đối tượng mức thấp.
Chính sách MAC so sánh nhãn nhạy cảm của người dùng đang làm việc với nhãn nhạy cảm của đối tượng đang được truy nhập và sẽ từ chối truy nhập trừ khi chắc chắn việc kiểm tra MAC là phù hợp. MAC giả thiết rằng các nhãn nhạy cảm trên các chủ thể và đối tượng được gán một lần, không thể thay đổi (ngoại trừ người quản trị an toàn – Security Administrator). Đây cũng là lý do tại sao MAC được gọi là bắt buộc. Với kiểm soát bắt buộc, chỉ những người quản trị mà không phải người sở hữu các tài nguyên mới có thể đưa ra quyết định truy nhập, dựa vào các chính sách an toàn và các nhãn nhạy cảm của chủ thể và đối tượng. Và cũng chỉ một người quản trị mới có thể thay đổi mức phân loại của một tài nguyên.

2.2.Kiểm soát truy nhập bắt buộc trong cơ sở dữ liệu

Chính sách bắt buộc trong kiểm soát truy nhập được áp dụng cho các thông tin có yêu cầu bảo vệ nghiêm ngặt, trong các môi trư¬ờng mà ở đó dữ liệu hệ thống có thể được phân loại và ng¬ười dùng cũng được phân loại rõ ràng.
Chính sách bắt buộc cũng có thể đ¬ược định nghĩa như¬ là một chính sách kiểm soát luồng, bởi vì nó ngăn chặn dòng thông tin đi vào các đối t¬ượng có mức phân loại thấp hơn.
Chính sách bắt buộc quyết định truy nhập vào dữ liệu, thông qua việc định nghĩa các lớp an toàn của chủ thể và đối tượng. Mọi chủ thể và đối tượng trong hệ thống đều được gắn với một lớp an toàn (lớp truy nhập)
Lớp đối t¬ượng an toàn bao gồm: mức phân loại thể hiện mức nhạy cảm của thông tin trong đối tượng và loại - kiểu là vùng ứng dụng mà thông tin đối tượng đề cập đến (có thể là các vùng của hệ thống, hoặc các bộ phận của tổ chức).
Xét một quan hệ bộ phận được định nghĩa trong các lớp an toàn SC như sau: SC = (A, C)
Trong đó, A là mức phân loại, và C là một loại (kiểu). Giả sử ta có hai lớp an toàn SC = (A, C) và SC’ = (A’, C’), khi đó: SC SC’ nếu và chỉ nếu các điều kiện sau thỏa mãn: A A’ và C C’
Ta có ví dụ về quan hệ sau:
- Quan hệ: (2, Hạt nhân) (3, ( Hạt nhân, Nato)) là thỏa mãn
- Quan hệ: (2, (Hạt nhân, Nato)) (3, Nato) là không thỏa mãn.
(Trong Oracle thì mức nhạy cảm chỉ cần quan tâm đến A thôi)
Lớp chủ thể an toàn: tương tự như đối tượng, mỗi lớp chủ thể an toàn cũng bao gồm mức độ tin cậy gán cho chủ thể đó và loại phản ánh vùng ứng dụng mà chủ thể đó đang làm việc.
=> Mỗi chủ thể và đối t¬ượng đ¬ược gán một lớp an toàn, bao gồm một mức nhạy cảm và một tập hợp các loại (một hoặc nhiều loại).
=> Để một chủ thể được phép truy nhập vào một đối tượng, thì lớp an toàn (nhãn) của chủ thể phải thỏa mãn các tiên đề an toàn trong chính sách an toàn của hệ thống.
=> Người dùng, không thể thay đổi các quyền đã được gán, mọi thay đổi chỉ được phép khi có sự đồng ý của người trao quyền (người quản trị trung tâm). Điều này có nghĩa là, người trao quyền kiểm soát toàn bộ hệ thống trao quyền.

3.Kiểm soát truy nhập dựa vào role

Role là một nhóm các đặc quyền được đặt tên. Nhờ có role, ta có thể giảm bớt gánh nặng trong việc gán, thu hồi quyền cho người dùng hay một nhóm người dùng.
Kiểm soát truy nhập dựa vào role ( Role-Based Access Control - viết tắt là RBAC) là một trong số các phương pháp điều khiển và đảm bảo quyền sử dụng cho người dùng. Đây là một phương pháp có thể thay thế Kiểm soát truy nhập tùy ý (discretionary access control - DAC) và Kiểm soát truy nhập bắt buộc (mandatory access control - MAC).
Kiểm soát truy nhập dựa vào role (RBAC) khác với hình thức MAC và DAC truyền thống. MAC và DAC trước đây là hai mô hình duy nhất được phổ biến trong kiểm soát truy nhập. Nếu một hệ thống không dùng MAC thì người ta chỉ có thể cho rằng hệ thống đó dùng DAC, hoặc ngược lại, mà thôi. Song, một số nghiên cứu trong những năm 1990 đã chứng minh rằng RBAC không phải là MAC hoặc DAC.
Trong nội bộ một tổ chức, các roles được tạo ra nhằm đảm nhận các chức năng công việc khác nhau. Mỗi role được gắn liền với một số quyền hạn cho phép thao tác một số hoạt động cụ thể. Các thành viên trong lực lượng cán bộ công nhân viên (hoặc những người dùng trong hệ thống) được gán một role riêng, và thông qua việc phân phối role này, họ sẽ có được một số những quyền hạn cho phép họ thực hiện những chức năng cụ thể trong hệ thống.
Vì người dùng không được cấp quyền một cách trực tiếp, mà thông qua các role họ được gán, nên việc quản lý quyền hạn của người dùng trở thành một việc đơn giản, và người quản trị chỉ cần gán những role thích hợp cho người dùng mà thôi. Việc gán role này đơn giản hóa những công việc thông thường như việc thêm một người dùng vào trong hệ thống, hay đổi phòng làm việc, chức vụ của một người dùng, khi đó ta chỉ cần thu hồi các role này và gán cho họ các role khác phù hợp với vị trí của họ.
RBAC khác với các danh sách kiểm soát truy nhập (access control list - ACL) được dùng trong hệ thống kiểm soát truy nhập tùy ý, ở chỗ, nó chỉ định các quyền hạn tới từng hoạt động cụ thể với ý nghĩa trong cơ quan tổ chức, thay vì tới các đối tượng dữ liệu hạ tầng. Lấy ví dụ, một danh sách kiểm soát truy nhập có thể được dùng để cho phép hoặc từ chối quyền truy nhập ghi-Write một tập tin hệ thống (system file), song nó không nói cho ta biết phương cách cụ thể để thay đổi tập tin đó. Trong một hệ thống dùng RBAC, một thao tác có thể là việc một chương trình ứng dụng tài chính tạo ra một giao dịch trong 'tài khoản tín dụng’, hay là việc một chương trình ứng dụng y học khởi tạo một bản ghi 'thử nghiệm nồng độ đường trong máu'. Nhờ có role, ta có thể chỉ định quyền hạn của người dùng, cho phép họ thực hiện một thao tác nhất định là một việc làm đầy ý nghĩa, vì các thao tác đã được phân định tinh tế và mỗi cá nhân thao tác có một vai trò riêng trong chương trình ứng dụng.
Với khái niệm về hệ thống phân cấp các role (role hierarchy) và khái niệm về các ràng buộc (constraints), ta có thể điều khiển RBAC để tạo hoặc mô phỏng kiểm soát truy nhập dùng kiểm soát truy nhập dựa vào lưới (Lattice-Based Access Control - LBAC). Vì thế RBAC có thể được coi như là một siêu tập (superset) của LBAC.
Việc sử dụng RBAC để quản lý các đặc quyền của người dùng trong một hệ thống duy nhất hay trong một chương trình ứng dụng là một thực hành tốt nhất được chập thuận rộng rãi. Các hệ thống bao gồm thư mục hoạt động (Active Directory) của Microsoft, SELinux, hệ quản trị Oracle và nhiều hệ thống khác đều hầu như thực thi một trong những hình thức của RBAC.
Tuy nhiên, việc sử dụng RBAC để quản lý quyền của người dùng, trên toàn thể các chương trình ứng dụng, là một việc làm còn nhiều tranh luận. Sở dĩ như vậy là vì người dùng thường là một đơn vị duy nhất (unique), cho nên nhiệm vụ định nghĩa các role đầy đủ và chỉ định các người dùng thuộc role nào cho phù hợp, trong một tổ chức với hạ tầng cơ sở kỹ thuật thông tin (IT) không đồng nhất là vô cùng phức tạp.

Không có nhận xét nào:

Đăng nhận xét