Vì vậy, mục đích của luận văn này là xây dựng một cơ chế tự động phát hiện ra những bất thường trong tập chính sách, từ đó đưa ra những cảnh báo thích hợp đến người thiết kế chính sách,
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẶNG TUẤN ANH
ĐỀ TÀI LUẬN VĂN THẠC SĨ
PHÁT TRIỂN CƠ CHẾ PHÂN TÍCH
CHÍNH SÁCH BẢO MẬT TRONG MÔ HÌNH ĐIỀU KHIỂN TRUY XUẤT GEOXACML
Chuyên ngành : Khoa học máy tính
LUẬN VĂN THẠC SĨ
TP Hồ Chí Minh – Tháng 12 năm 2013
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG–HCM
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: ĐẶNG TUẤN ANH MSHV: 11076001 Ngày, tháng, năm sinh: 25/03/1988 Nơi sinh: Quảng Bình Chuyên ngành: Khoa học máy tính Mã số : 604801
I TÊN ĐỀ TÀI: PHÁT TRIỂN CƠ CHẾ PHÂN TÍCH CHÍNH SÁCH BẢO
MẬT TRONG MÔ HÌNH ĐIỀU KHIỂN TRUY XUẤT GEOXACML
II NHIỆM VỤ VÀ NỘI DUNG:
Tìm hiểu và phân loại các bất thường trong tập chính sách
Tìm hiểu những phương pháp đã được đề xuất để phát hiện bất thường của tập chính sách và tìm những điểm yếu, điểm mạnh của từng phương pháp
Phân tích những đặc trưng riêng của tập chính sách trong mô hình GeoXACML so với những mô hình khác Từ đó cải tiến những phương pháp
đã tìm hiểu, hoặc đưa ra những phương pháp mới
Đánh giá phương pháp mới được đề xuất trong luận văn
III NGÀY GIAO NHIỆM VỤ : 02/07/2012
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 22/11/2013
PGS.TS THOẠI NAM
Trang 4Lời cám ơn
Em xin gửi lời cảm ơn sâu sắc đến thầy Đặng Trần Khánh đã tận tình giúp đỡ
và hướng dẫn em trong suốt thời gian em thực hiện đề tài
Em xin gửi lời cảm ơn tới thầy Nguyễn Chánh Thành và thầy Vũ Thanh Nguyên về những lời khuyên bổ ích để em hoàn thiện luận văn trước khi ra bảo vệ
Em cũng xin cảm ơn sự giúp đỡ và hỗ trợ của các anh chị D-STAR lab trong suốt thời gian em thực hiện đề tài
Cuối cùng, tôi xin chân thành cảm ơn đến gia đình, bạn bè vì sự giúp đỡ, ủng
hộ và khuyến khích tôi hoàn thành đề tài luận văn
Trang 5Tóm tắt luận văn
Hệ thống thông tin địa lý (GIS) đang ngày càng phát triển mạnh mẽ cả về số lượng và chất lượng, và được áp dụng trong nhiều lĩnh vực Dữ liệu trong các hệ thống này có thể chứa những thông tin nhạy cảm, bí mật, vì vậy việc điều khiển truy xuất trên những dữ liệu này là rất quan trọng GeoXACML ra đời nhằm hỗ trợ cho việc giải quyết những yêu cầu điều khiển truy xuất này Nó là ngôn ngữ dựa trên XML được dùng để định nghĩa những chính sách điều khiển truy xuất, đặt biệt là những chính sách có các yếu tố về không gian Trong tập chính sách được mô tả bởi ngôn ngữ GeoXACML, có chứa nhiều luật, những luật này có thể xung đột hoặc dư thừa lẫn nhau, được gọi chung là bất thường GeoXACML không có bất kỳ cơ chế nào giúp phát hiện những bất thường này Hiện nay đã có nhiều công trình nghiên cứu
về việc phát hiện bất thường trong ngôn ngữ XACML, một phần của ngôn ngữ GeoXACML Tuy nhiên, những nghiên cứu này chỉ giải quyết bài toán phát hiện bất thường đối với các ràng buộc trên kiểu dữ liệu cơ bản như: số nguyên, số thực, chuỗi, ngày tháng… Hiện nay, chưa có bất kì nghiên cứu nào nhắm đến kiểu dữ liệu không gian, và các ràng buộc về không gian Vì vậy trong luận văn này, tôi tập trung vào việc phát triển cơ chế để phát hiện bất thường trên các ràng buộc về không gian trong tập chính sách GeoXACML
Trang 6Abstract
Geographic information system (GIS) is more and more developed incessantly
in both quantity and quality, and is applied in many fields Data in these systems maybe contain sensitive and/or confidential information, so ensuring access restrictions to these data is very important GeoXACML is used for that purpose It is
an XML based policy language to express spatial access rights In policy repository which is expressed by GeoXACML, there are many rules These rules can be conflicting or redundant each other, called anomalies GeoXACML does not have any system mechanism to detect anomalies in polices Currently, there is a lot of researches focusing on anomaly detection in XACML from which GeoXACML is extended However, these researches just solve anomaly detection with basic data type such as integer, real number, date time… No research directly solves anomaly detection problem in the spatial aspect with spatial data types and functions Therefore, in this thesis, I will focus on building a mechanism to detect anomalies in
spatial constraints of GeoXACML policies
Trang 7Lời cam đoan
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân
Các số liệu, kết quả trình bày trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào trước đây
Học viên
ĐẶNG TUẤN ANH
Trang 8Mục lục
Tóm tắt luận văn i
Abstract ii
Lời cam đoan iii
Mục lục iv
Mục lục hình vi
Chương 1: Mở đầu 1
1.1 Giới thiệu đề tài 1
1.2 Mục đích nghiên cứu 2
1.3 Giới hạn đề tài 2
1.4 Ý nghĩa khoa học và thực tiễn 3
1.4.1 Ý nghĩa khoa học 3
1.4.2 Ý nghĩa thực tiễn 3
Chương 2: Cơ sở lý thuyết 4
2.1 Hệ thống thông tin địa lý 4
2.2 Bảo mật dữ liệu không gian 5
2.3 Ngôn ngữ XACML 5
2.4 Ngôn ngữ GeoXACML 8
2.5 Mô hình điều khiển truy xuất GeoXACML 10
2.6 Phân loại bất thường trong tập chính sách 11
2.7 Giải quyết xung đột quyền trong GeoXACML 12
Chương 3: Các công trình nghiên cứu liên quan 18
3.1 Phương pháp hình học 19
3.1.1 Việc chuyển đổi XACML Target vào không gian n chiều 20
3.1.2 Các kiểu dữ liệu được chuyển thành Integer 20
3.1.3 Các kiểu dữ liệu được chuyển đổi thành kiểu Double 21
3.1.4 Các kiểu dữ liệu được chuyển đổi thành kiểu String 21
3.1.5 Các kiểu dữ liệu được chuyển đổi thành máy trạng thái hữu hạn 21
3.1.6 Thuật toán xác định xung đột 22
3.1.7 Phân tích độ phức tạp tính toán 23
Trang 93.2 Phương pháp sử dụng Binary Decision Diagram (BDD) 25
3.2.1 Biểu diễn chính sách ở dạng sơ đồ BDD 25
3.2.2 Thuật toán xác định xung đột 26
Chương 4: Hướng tiếp cận và thuật toán 29
4.1 Các cơ chế phát hiện bất thường và hướng tiếp cận 29
4.2 Thuật toán xác định bất thường cho các ràng buộc không gian 30
4.2.1 RCC8 và suy luận hình học 30
4.2.2 Consistency và path-consistency 32
4.2.3 Thuật toán xác định bất thường 33
4.3 Phân tích tính đúng đắn và hiệu năng 35
Chương 5: Thực nghiệm 37
5.1 Case study 37
5.2 Hiện thực 38
5.3 Đánh giá thực nghiệm 40
Chương 6: Tổng kết 43
6.1 Tổng kết 43
6.2 Hướng phát triển 44
Tài liệu tham khảo 45
Phụ lục 47
[1] Dang Tuan Anh, Dang Tran Khanh: A Path-Consystency Based Algorithm For
Anomaly Detection of Spatial Constraints in GeoXACML Policie Journal of Science and Technology, Vietnamese Academy of Science and Technology, ISSN
0866-708X, Vol 51, No 4B, 2013, pp 143-152 (a Special Issue on ACOMP2013)
[2] Nguyen Ngoc Tuan, Le Thi Kim Tuyen, Dang Tuan Anh, Van Duc Son Ha,
Dang Tran Khanh: Towards a Flexible Framework to Support a Generalized Extension of XACML for Spatio-Temporal RBAC Model with Reasoning Ability In
Proceedings of the International Conference on Computational Science and Its Applications (ICCSA2013), Part V, LNCS 7975, Springer Verlag, 24-27 June, 2013,
Ho Chi Minh City, Vietnam, pp 437-451
[3] Van Duc Son Ha, Dang Tuan Anh, Dang Tran Khanh: Supporting Authorization
Reasoning Based on Role and Resource Hierarchies in an Ontology-enriched XACML Model International Journal of Computer and Communication Engineering (IJCCE),
IACSIT Press, ISSN: 2010-3743, 2014 (to be accepted)
Trang 10[4] Dang Tran Khanh, Le Thi Kim Tuyen, Dang Tuan Anh, Van Duc Son Ha:
Towards a Flexible Framework to Support a Generalized Extension of XACML for Spatio-Temporal RBAC Model with Reasoning Ability, International Journal of Web
Information Systems (IJWIS), ISSN: 1744-0084, 2014 (to be accepted)
Mục lục hình
Hình 1: Các thành phần của GIS 4
Hình 2: Cú pháp của Subject trong chính sách 6
Hình 3: Cú pháp của Target trong chính sách 6
Hình 4: Cú pháp của Rule trong chính sách 6
Hình 5: Cú pháp của Policy trong chính sách 7
Hình 6: Cú pháp của PolicySet trong chính sách 7
Hình 7: Các kiểu dữ liệu hình học trong GeoXACML 8
Hình 8: Các hàm không gian trong GeoXACML 9
Hình 9: Trực quan các hàm không gian trong GeoXACML 9
Hình 10: Một ví dụ về thành phần GeoXACML <Condition> 10
Hình 11: Mô hình GeoXACML - XACML 10
Hình 12: Một chính sách GeoXACML 12
Hình 13: Các giải thuật kết hợp chính sách, luật 13
Hình 14: Bảng sự thật đánh giá rule 14
Hình 15: Bảng sự thật đánh giá policy 15
Hình 16: Bảng sự thật đánh giá PolicySet 15
Hình 17: Ví dụ về xung đột trong chính sách XACML 20
Hình 18: Các biểu thức logic nguyên tố 26
Hình 19: Sơ đồ BDD của 2 luật R1 và R2 26
Hình 20: Thuật toán xác định xung đột 27
Hình 21: Quan hệ không gian OGC và tương đương trong RCC8 và 9IM 30
Hình 22: Bảng quan hệ kết hợp 32
Hình 23: Bảng quan hệ đảo ngược 32
Hình 24: Thuật toán Path-Consistency 33
Hình 25: Ma trận mạng ràng buộc R 38
Hình 26: Kiến trúc chung của ứng dụng demo 39
Hình 27: Cách sử dụng thư viện JTS Topology Suite 39
Hình 28: Cách sử dụng thư viện PyRCC8 40
Hình 29: Biểu đồ thời gian thực thi khi số lượng chính sách thay đổi 41
Hình 30: Biểu đồ thời gian thực thi khi số đối tượng tăng 42
Trang 11Chương 1: Mở đầu
1.1 Giới thiệu đề tài
Hiện nay, các hệ thống GIS đang phát triển rất mạnh và ứng dụng trong nhiều lĩnh vực như: nghiên cứu quản lý tài nguyên thiên nhiên và môi trường, nghiên cứu điều kiện kinh tế - xã hội, nghiên cứu hỗ trợ các chương trình qui hoạch phát triển, Trong các hệ thống này, dữ liệu là yếu tố quan trọng nhất, và tốn nhiều chi phí xây dựng nhất, thông thường chiếm khoảng 80% chi phí của một dự án GIS [1] Những dữ liệu này thường được dùng chung bởi nhiều ứng dụng khác nhau Trong mỗi ứng dụng, người dùng được chia làm nhiều nhóm khác nhau và mỗi nhóm sẽ có những đặc quyền riêng trong việc truy xuất dữ liệu GIS Vì vậy cần có những mô hình điều khiển truy xuất nhằm đảm bảo dữ liệu GIS chỉ được cung cấp cho những người dùng có quyền sử dụng nó.Và GeoXACML là một mô hình điều khiển truy xuất cho
dữ liệu GIS đã được chấp nhận rộng rãi và đã trở thành chuẩn công nghiệp [2]
GeoXACML được mở rộng từ mô hình điều khiển truy xuất XACML [3] Trong mô hình này, các luật điều khiển truy xuất được biểu diễn trong ngôn ngữ XML theo một cú pháp được quy định rõ Dựa vào tập luật này, các yêu cầu truy xuất
dữ liệu sẽ được đánh giá và trả về một kết quả thích hợp Trong một hệ thống, có thể chứa rất nhiều luật, và khi một yêu cầu truy xuất được gửi lên hệ thống, có thể có nhiều luật cùng được áp dụng cho yêu cầu đó Những luật này có thể trả về những kết quả trái ngược nhau Vì vậy, GeoXACML đã sử dụng các thuật toán kết hợp để đưa ra kết quả cuối cùng từ những luật được áp dụng cho một yêu cầu nào đó Đây là cách
mà GeoXACML giải quyết xung đột giữa các luật Một loại bất thường khác trong tập luật GeoXACML đó là dư thừa Hai luật được gọi là dư thừa, khi chúng có thể cùng
áp dụng chung cho một yêu cầu truy xuất nào đó, và trả về cùng kết quả Bởi vì thời gian đánh giá cho một yêu cầu truy xuất phụ thuộc lớn vào số lượng luật trong kho chính sách, vì vậy sự dư thừa có thể ảnh hưởng tới hiệu suất của quá trình đánh giá
Do đó, dư thưa cần được xem như một loại bất thường và cần được giải quyết để tối
ưu quá trình đánh giá
Đáng tiếc, GeoXACML không có bất kì cơ chế nào để phát hiện bất thường trong chính sách Hơn nữa, để giải quyết xung đột người thiết kế chính sách phải lựa chọn các thuật toán kết hợp Việc lựa chọn thuật toán kết hợp phụ thuộc chủ yếu vào kiến thức và kinh nghiệm của người thiết kế chính sách và không có bất kì sự hỗ trợ nào từ hệ thống Do đó, nếu không có bất kỳ thông tin nào về sự xung đột thì sự hiệu quả của việc lựa chọn thuật toán kết hợp này sẽ không được đảm bảo
Trang 12Như vậy, việc phát hiện bất thường trong chính sách GeoXACML là rất cần thiết Nó hỗ trợ người thiết kế chính sách trong việc định nghĩa, quản lý các chính sách để giảm công sức, tối thiểu lỗi, tăng hiệu suất quá trình đánh giá
1.2 Mục đích nghiên cứu
Những bất thường trong tập chính sách có thể đưa đến những kết quả không chính xác trong quá trình đánh giá yêu cầu truy xuất, và dẫn đến những vấn đề nghiêm trọng về bảo mật đối với hệ thống Mặt khác, những bất thường này cũng làm
giảm hiệu suất quá trình đánh giá yêu cầu truy xuất Vì vậy, mục đích của luận văn này là xây dựng một cơ chế tự động phát hiện ra những bất thường trong tập chính sách, từ đó đưa ra những cảnh báo thích hợp đến người thiết kế chính sách,
giúp giảm công sức, hạn chế tối đa những bất thường có thể sinh ra trong quá trình định nghĩa và quản lý các chính sách Đồng thời, luận văn này cũng sẽ đưa ra những
đánh giá về tính đúng đắn, cũng như hiệu suất của cơ chế đã được đề xuất
1.3 Giới hạn đề tài
Việc phát hiện bất thường trong tập chính sách bảo mật có hai chiến thuật chính được phân chia dựa vào thời gian mà quá trình phát hiện được áp dụng, đó là:
cơ chế phát hiện tĩnh và cơ chế phát hiện động Mỗi phương pháp đều có những ưu
nhược điểm riêng (sẽ được phân tích ở phần 4.1) và một hệ thống điều khiển truy xuất
cần phải sử dụng cả hai cơ chế này để đạt được hiệu quả tốt nhất Tuy nhiên, đề tài này chỉ tập trung vào cơ chế phát hiện tĩnh Nghĩa là việc phát hiện bất thường này
được thực hiện ngay ở giai đoạn thiết kế chính sách, khi người quản lý chính sách thêm mới một chính sách hoặc chỉnh sửa một chính sách đang tồn tại trong hệ thống
Hiện nay, việc phát hiện bất thường trong tập chính sách điều khiển truy xuất, đặc biệt là các tập chính sách dựa trên chuẩn ngôn ngữ như XACML đã được nhiều nhà nghiên cứu quan tâm Tuy nhiên, trong những nghiên cứu này, không có nghiên cứu nào trực tiếp giải quyết bài toán phát hiện bất thường đối với các loại dữ liệu không gian, cũng như các ràng buộc dựa trên các hàm không gian trong ngôn ngữ
GeoXACML Vì vậy, đề tài này sẽ tập trung vào việc phát hiện bất thường trên các ràng buộc không gian trong ngôn ngữ GeoXACML
Trang 131.4 Ý nghĩa khoa học và thực tiễn
1.4.1 Ý nghĩa khoa học
Những bất thường trong tập chính sách có thể gây ra những vấn đề về bảo mật cũng như hiệu năng của hệ thống Cho tới thời điểm hiện nay, đã có nhiều công trình nghiên cứu liên quan đến vấn đề phát hiện bất thường Tuy nhiên, các nghiên cứu này chủ yếu là thực hiện cho các tập chính sách bảo mật cho tường lửa, và gần đây là
XACML Đề tài này là công trình đầu tiên nghiên cứu vấn đề phát hiện bất thường trong tập chính sách cho ngôn ngữ GeoXACML Vì vậy, trong lĩnh vực
bảo mật dữ liệu không gian cho các hệ thống GIS, đề tài này có những ý nghĩa khoa học sau:
Nghiên cứu và tổng kết các cơ chế phát hiện bất thường trong tập chính sách bảo mật hiện có
Đề xuất cơ chế phát hiện bất thường đặc trưng cho các ràng buộc không gian của ngôn ngữ GeoXACML Phân tích tính đúng đắn và độ hiệu quả của cơ chế đề xuất
Phân tích những hướng phát triển tiếp theo để giải quyết bài toán phát hiện bất thường đối với ngôn ngữ GeoXACML một cách tổng quát
1.4.2 Ý nghĩa thực tiễn
Từ những lợi ích to lớn mà GIS mang lại mà các hệ thống GIS đang được đầu
tư phát triển cả về số lượng và chất lượng Do đó, việc bảo mật dữ liệu không gian cho các ứng dụng này trong khi vẫn đảm bảo ứng dụng hoạt động hiệu quả là vấn đề quan trọng cần được giải quyết Để đáp ứng yêu cầu đó, bên cạnh việc xây dựng các
hệ thống điều khiển truy xuất, thì việc phát hiện bất thường trong các tập chính sách điều khiển truy xuất cần được quan tâm Nó giúp giảm thiểu chi phí xây dựng, bảo trí tập chính sách, hạn chế lỗi xảy ra trong hệ thống, đồng thời nâng cao hiệu quả hoạt động của hệ thống
Đề tài mang những ý nghĩa thực tiến như sau:
Về phía người dùng: với cơ chế phát hiện bất thường, giúp cho dữ liệu của người dùng được bảo vệ tốt hơn, tránh sai sót, mất mát dữ liệu, cũng như giảm thời gian đáp ứng, vì giảm được thời gian đánh giá yêu cầu truy xuất
Về phía người quản trị: người quản trị có thể dễ dàng hơn trong việc xây dựng và quản lý các chính sách điều khiển truy xuất Hạn chế những sai sót trong việc mô tả những chính sách bảo mật cho hệ thống
Trang 14Chương 2: Cơ sở lý thuyết
2.1 Hệ thống thông tin địa lý
Hệ thống thông tin địa lý (Geographical Information System - GIS): là hệ thống sử dụng máy tính để lập bản đồ và phân tích các sự vật hiện tượng trên trái đất Một định nghĩa khác, GIS là tổ chức tổng thể của năm phần: phần cứng, phần mềm,
cơ sở dữ liệu địa lý, con người và phương pháp phân tích nhằm tiếp nhận, lưu trữ, điều khiển, phân tích, hiển thị toàn bộ các dữ liệu địa lý
Hình 1: Các thành phần của GIS
Ngày nay, GIS là công cụ trợ giúp quyết định trong nhiều hoạt động kinh tế -
xã hội, quốc phòng của nhiều quốc gia trên thế giới [4][5] GIS có khả năng trợ giúp các cơ quan chính phủ, các nhà quản lý, các doanh nghiệp, các cá nhân đánh giá được hiện trạng của các quá trình, các thực thể tự nhiên, kinh tế - xã hội thông qua các chức năng thu thập, quản lý, truy vấn, phân tích và tích hợp các thông tin được gắn với một nền hình học (bản đồ) nhất quán trên cơ sở toạ độ của các dữ liệu đầu vào
Phần cơ sở dữ liệu địa lý (Data) có thể được coi thành phần quan trọng nhất trong một hệ GIS Các dữ liệu địa lý và dữ liệu thuộc tính liên quan có thể được người
sử dụng tự tập hợp hoặc được mua từ nhà cung cấp dữ liệu thương mại Hệ GIS sẽ kết hợp dữ liệu không gian với các nguồn dữ liệu khác, thậm chí có thể sử dụng hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) để tổ chức lưu giữ và quản
lý dữ liệu
Hiện nay công nghệ GIS đang được sử dụng rộng rãi, ở Việt Nam nó cũng được thí điểm khá sớm và đến nay đã được ứng dụng trong khá nhiều ngành như quy hoạch nông lâm nghiệp, quản lý rừng, lưu trữ tư liệu địa chất, đo đạc bản đồ, địa chính, quản lý đô thị Tuy nhiên các ứng dụng có hiệu quả nhất mới giới hạn ở các
Trang 15lĩnh vực lưu trữ, in ấn các tư liệu bản đồ bằng công nghệ GIS Các ứng dụng GIS thuộc lĩnh vực quản lý, điều hành, trợ giúp quyết định hầu như mới dừng ở mức thử nghiệm còn cần thời gian và đầu tư mới có thể đưa vào ứng dụng chính thức
2.2 Bảo mật dữ liệu không gian
Bảo mật dữ liệu không gian thường bao gồm ba khía cạnh chính: tính bí mật (confidentiality), tính toàn vẹn (integrity) và điều khiển truy xuất (access control) [6]
Tính bí mật: khi dữ liệu được truyền tải, chỉ những người dùng hợp phát mới có thể hiểu được nội dung truyền tải Thông thường, để đảm bảo tính
bí mật, các gói tin sẽ được mã hóa trước khi đưa lên đường truyền
Tính toàn vẹn: dữ liệu không gian không được phép bị giả mạo (thêm, xóa hay thay đổi) bởi người dùng bất hợp pháp Để đảm bảo tính toàn vẹn, ta có thể dùng kỹ thuật chữ ký số, hoặc chữ ký điện tử
Điều khiển truy xuất: bao gồm hai thành phần chính (1) xác thực (authentication) và (2) phân quyền (authorization) Xác thực là việc đảm bảo người dùng đăng nhập là người dùng hợp pháp của hệ thống Có nhiều cách để xác thực người dùng của hệ thống chẳng hạn như: dựa trên những
gì họ biết (tên, mật khẩu truy cập), dựa trên những gì họ có (thẻ xác thực) hoặc dựa vào bản thân người dùng (dấu vân tay, giọng nói) Sau khi người dùng đăng nhập thành công vào hệ thống, họ sẽ được phân quyền và xác thực là điều kiện tiên quyết của phân quyền
Trong luận văn này, tôi chỉ quan tâm tới vấn đề điều khiển truy xuất Trong đó,
mô hình XACML và GeoXACML là sẽ được quan tâm trong đề tài này
2.3 Ngôn ngữ XACML
XACML viết tắt của eXtensible Access Control Markup Language là một tiêu chuẩn
được định bởi tổ chức OASIS (Organization for the Advancement of Structured Information Standards) XACML là một ngôn ngữ quy định chính sách bảo mật, cho phép người quản trị định nghĩa những luật điều khiển truy xuất (cho phép hoặc từ chối truy xuất của một nhóm người dùng nào đó) [7]
Subject, Resource, Action và Environment Các thành phần Subject, Resource,
Action, Environment là danh sách các Subject thực hiện truy xuất, Resource được yêu cầu và Action mà Subject muốn thực hiện trên Resource, Environment là điều kiện môi trường khi truy xuất Cú pháp của Subject như sau:
Trang 16Target Target được sử dụng trong XACML để nhóm các Subject, Resource, Action
và Environment Có 2 nơi có Target Thứ nhất là trong một Policy.Target này áp dụng chung cho toàn bộ policy Thứ hai là trong một Rule (Rule nằm trong Policy) Target này chỉ áp dụng tới Rule chứa nó Cú pháp của Target như sau:
<Rule RuleId=" Rule name " Effect="Permit/Deny">
Trang 17<Policy PolicyId=" tên policy " RuleCombiningAlgId=" thuật toán ">
bên trong Cú pháp của PolicySet như sau:
<PolicySet PolicySetId=" tên PolicySet " PolicyCombiningAlgId=" ">
<Target>
…cú pháp target ở trên…
</Target>
<Policy PolicyId=" tên policy " RuleCombiningAlgId=" ">
cú pháp của Policy ở trên
</Policy>
<Policy PolicyId=" tên policy " RuleCombiningAlgId=" ">
cú pháp của Policy ở trên
</Policy>
</PolicySet>
Hình 6: Cú pháp của PolicySet trong chính sách
So sánh với những ngôn ngữ đặc tả khác, XACML có những lợi thế khiến ngôn ngữ này trở nên phổ biến [7]:
Tính tiêu chuẩn (standard): XACML là chuẩn được xem xét bởi một cộng đồng lớn các chuyên gia và người dùng Điều này có nghĩa là người dùng không cần phải suy nghĩ về tất cả các vấn đề khó khăn liên quan đến việc thiết kế một ngôn ngữ mới Thêm vào đó, XACML ngày càng được triển khai rộng rãi hơn
Do đó, sẽ dễ dàng hơn để tương thích với các ứng dụng khác bằng cách sử dụng cùng một ngôn ngữ tiểu chuẩn
Tính tổng quát (generic): XACML có thể được sử dụng trong bất kỳ môi trường nào Một chính sách bảo mật có thể được sử dụng bởi nhiều ứng dụng khác nhau và khi dùng chung một ngôn ngữ, việc quản lý chính sách sẽ trở nên dễ dàng hơn
Trang 18 Tính phân bố (distributed): một chính sách bảo mật có thể tham khảo đến những chính sách khác; vì vậy, những người dùng hoặc các nhóm khác nhau có thể quản lý những phần nhỏ tương ứng của chính sách
Tính mạnh mẽ (powerful): XACML hỗ trợ rất nhiều loại dữ liệu và hàm khác nhau cũng như các quy định về cách kết hợp kết quả đánh giá của các chính sách khác nhau Bên cạnh đó, đã có những nhóm tiêu chuẩn liên kết với XACML tạo thành các tiêu chuẩn khác (như SAML và LDAP), từ đó làm tăng khả năng sử dụng cho XACML
2.4 Ngôn ngữ GeoXACML
GeoXACML được đề xuất bởi Andreas Matheus [8], là phần mở rộng của XACML
và hiện tại đã trở thành một chuẩn của Open Geospatial Consortium (OGC) Phiên bản đầu tiên của GeoXACML cung cấp một đề nghị về cách khai báo và thực thi các quyền truy cập hiệu quả và linh hoạt tùy thuộc vào nhu cầu bảo mật cho các hệ thông GIS Dựa vào các điểm mở rộng của XACML, các tag <AttributeValue> được sử dụng để thêm các dữ liệu mới cho GeoXACML như sau:
Gán giá trị tương ứng vào thuộc tính DataType, và
Bảo đảm sự đúng đắn về cú pháp, theo định nghĩa của GML phiên bản 2.1.2 Một số kiểu dữ liệu hình học của GML sẽ được thêm vào GeoXACML:
Point http://www.opengis.net/gml#point gml:Point
LineString http://www.opengis.net/gml#linestring gml:LineString
LinearRing http://www.opengis.net/gml#linearring gml:LinearRing
Polygon http://www.opengis.net/gml#polygon gml:Polygon
Hình 7: Các kiểu dữ liệu hình học trong GeoXACML
Bên cạnh những dữ liệu không gian, để mô tả các giới hạn không gian, ta cần phải dùng đến các hàm không gian để kiểm tra mối quan hệ hình học giữa hai thực thể không gian, mỗi hàm yêu cầu hai thông số (có thể là bất kỳ kiểu dữ liệu không gian nào) và trả về kết quả là True hoặc False Mỗi hàm không gian đƣợc xác định bằng một URN duy nhất và URI có cùng tiền tố http://www.andreas-matheus.de/geoxacml/1.0/function Hình 3.14 biểu diễn một vài hàm và URI tương ứng của chúng trong GeoXACML
Trang 19Spatial
Function
URN
Disjoint http://www.andreas-matheus.de/geoxacml/1.0/function#disjoint Touches http://www.andreas-matheus.de/geoxacml/1.0/function#touches Crosses http://www.andreas-matheus.de/geoxacml/1.0/function#crosses Within http://www.andreas-matheus.de/geoxacml/1.0/function#within Overlaps http://www.andreas-matheus.de/geoxacml/1.0/function#overlaps Intersects http://www.andreas-matheus.de/geoxacml/1.0/function#intersects Equals http://www.andreas-matheus.de/geoxacml/1.0/function#equals
Hình 8: Các hàm không gian trong GeoXACML
Hình bên dưới thể hiện, ý nghĩa một cách trực quan của các hàm không gian trong GeoXACML
Hình 9: Trực quan các hàm không gian trong GeoXACML
Ví dụ, với chính sách “người dùng Bob không được phép ghi thông tin đối tượng không gian của lớp Intersection nếu vị trí của Bob nằm trong vùng giới hạn {foo, 3 0,
6 1, 6 5, 1 5, 0 2, 3 0}”, thành phần <Condition> của chính sách này sẽ dùng các hàm không gian để biểu diễn điều kiện nhƣ trong hình 3.15 [9] Thành phần
<Condition> sẽ trả về true nếu có bất kỳ vị trí nào của điểm giao được xác định nằm trong vùng đa giác
Trang 202.5 Mô hình điều khiển truy xuất GeoXACML
Hình 11 cho thấy các khối chức năng chính và quy trình đánh giá yêu cầu truy xuất của XACML và GeoXACML bao gồm các thành phần sau:
Hình 11: Mô hình GeoXACML - XACML
Context Handler: chuyển yêu cầu truy xuất sang định dạng mà XACML và
GeoXACML có thể hiểu được
Policy Decision Point (PDP): đánh giá yêu cầu truy xuất dựa trên những chính
sách bảo mật đã được định nghĩa trong hệ thống,
Policy Repository: chứa các Rule, Policy, PolicySet trong mối quan hệ phân
cấp được định nghĩa bởi thành phần Policy Administrator Point (PAP) và được Context Handler truy xuất để lấy thông tin cần cho việc đánh giá của PDP
Trang 21 Policy Access Point (PAP): là thành phần hỗ trợ viết các chính sách và tập các
chính sách đồng thời bảo đảm chúng được sẵn sàng cho PDP để đánh giá Cấu trúc chính sách đã được trình bày chi tiết trong 2.3 và 2.4
Policy Information Point (PIP): có nhiệm vụ lấy các giá trị cho các thuộc
tính được yêu cầu và gửi trả về cho Context Handler Context Handler có thể nắm giữ tài nguyên trong file context
2.6 Phân loại bất thường trong tập chính sách
Trong tập chính sách GeoXACML, bất thường có thể chia làm 2 loại như sau:
Xung đột (Conflicting):một Rule là xung đột với những Rule khác nếu như Rule này
chồng lấp với những Rule khác nhưng có Effect khác nhau
Dư thừa (Redundant): một Rule là xung đột với những Rule khác nếu như Rule này
chồng lấp với những Rule khác nhưng có Effect giống nhau
Như vậy sự bất thường xảy ra khi có sự chồng lấp của các Rule
Trang 22Rule 3 là dư thừa bởi vì Rule 2 cũng cho phép người thiết kế (designer) thay đổi (change) mã nguồn (code) trong khoảng thời gian [12:00, 13:00]
2.7 Giải quyết xung đột quyền trong GeoXACML
Quy trình đưa ra một quyết định cấp phép cho mô hình điều khiển truy xuất dựa trên rule phụ thuộc vào hai yếu tố: kết quả đánh giá của một rule và giải thuật kết hợp Các kết quả đánh giá của các rule liên quan sẽ được kết hợp lại thành một quyết định cấp phép duy nhất và việc kết hợp này sẽ dựa trên các giải thuật kết hợp để giải quyết các trường hợp xung đột giữa các quyền nếu có Phụ thuộc vào tính chất của giải thuật kết hợp mà một hay nhiều rule sẽ được đánh giá để quyết định khả năng tương đồng (matching) giữa rule và request và đưa ra kết quả Một vài giải thuật kết hợp trả về kết quả cấp phép là kết quả của rule tương đồng đầu tiên Một số giải thuật kết hợp khác sẽ phụ thuộc vào thứ tự đánh giá các rule Do đó, kết quả quyết định cấp phép tổng quát sẽ phụ thuộc ba yếu tố: giải thuật kết hợp, thứ tự các rule đánh giá và
Trang 23kết quả đánh giá của các rule Một số các giải thuật kết hợp phổ biến được dùng để đưa ra kết quả cấp phép cuối cùng như được liệt kê trong hình 13 [3]:
deny-overrides Giải thuật kết hợp này trả về Deny (từ chối) trong
trường hơp có ít nhất một rule có kết quả là Deny Giải thuật sẽ làm gián đoạn quá trình xử lý sau khi một rule có kết quả là Deny đầu tiên
permit-overrides Giải thuật kết hợp này trả về Permit (được phép)
trong trường hơp có ít nhất một rule có kết quả là Permit Giải thuật sẽ làm gián đoạn quá trình xử lý sau khi một rule có kết quả là Permit đầu tiên
first-applicable Giải thuật kết hợp này trả về kết quả của rule đầu tiên
được đánh giá và vì vậy làm gián đoạn các quá trình
xử lý các rule còn lại
only-one-applicable Giải thuật này xử lý tất cả các rule trong một chính
sách Nếu có nhiều hơn một rule có khả năng áp dụng thì giải thuật kết hợp sẽ trả về lỗi xử lý
ordered-deny-overrides Tương tự với deny-overrides ngoại trừ việc xử lý các
rule dựa vào thứ tự của chúng ordered-permit-overrides Tương tự với permit-overrides ngoại trừ việc xử lý
các rule dựa vào thứ tự của chúng specific-general Giải thuật kết hợp có cùng tính chất với giải thuật
first-applicable nhưng nó có ngữ nghĩa khác Các rule được kết hợp bởi giải thuật có liên quan với nhau và được khai báo trong mối quan hệ tổng quát / ngoại lệ
Hình 13: Các giải thuật kết hợp chính sách, luật
Tuy nhiên, mô hình được đề xuất được dựa trên GeoXACML để đặc tả các chính sách truy xuất Do đó, ngoại trừ quá trình kết hợp rule, còn có quá trình kết hợp các chính sách So với các ngôn ngữ chính sách như XACL, EPAL, SPL, hay firewall policy, GeoXACML cho phép cách tiếp cận xử lý khi đánh giá các quyền một cách linh hoạt nhất với 6 chiến thuật: deny-overrides, permit-overrides, ordered-deny-overrides, ordered-permit-overrides, first-applicable, và only-one-applicable như được định nghĩa trong bảng Hình 13
Một file chính sách GeoXACML bao gồm 3 phần tử: rule, policy, và policy set Một rule là một thành phần chính sách cơ bản nhất, gồm 3 thành phần chính là target, condition và effect Target xác định một tập các chủ thể (subject), tài nguyên (resource) và các hành động (action) mà rule đó được áp dụng Condition xác định các ràng buộc trên thuộc tính trong target và giới hạn lại phạm vi áp dụng rule Effect xác định nếu request thỏa mãn các điều kiện áp dụng trong Target và Condition thì kết
Trang 24quả là Permit hay Deny Nếu effect là permit, rule đó còn gọi là rule được phép (hay positive rule) Ngược lại, rule đó là rule cấm truy xuất (hay negative rule) Nếu request không thỏa mãn các điều kiện trong target và condition thì rule đó không thể
áp dụng được đến request và kết quả đánh giá sẽ là NotApplicable
Một chính sách bao gồm 4 thành phần chính: target, giải thuật kết hợp rule, tập các rule và các obligation Target của chính sách quyết định xem một request có thể
áp dụng đến chính sách hay không Thành phần này cũng tương tự target của rule Giải thuật kết hợp rule xác định cách đưa ra quyết định cho chính sách từ các rule được kết hợp với nhau trong chính sách Obligation thể hiện chức năng sẽ được thực thi cùng với việc thi hành quyết định cấp phép
Một policy-set cũng có 4 thành phần: target, giải thuật kết hợp chính sách, tập các chính sách con và obligation Một chính sách con có thể là một policy hoặc một policy-set Giải thuật kết hợp chính sách sẽ xác định cách kết hợp các kết quả đánh giá của các chính sách con thành kết quả cuối cùng
Trong GeoXACML, một rule, một policy hoặc một policy-set sẽ trả về một trong 4 quyết định tương ứng khi đánh giá request: Permit, Deny, NotApplicable và Indeterminate Giá trị Indeterminate xảy ra khi quá trình đánh giá chính sách bị lỗi Ví
dụ nếu giải thuật kết hợp chính sách là only-one-applicable mà trong policy set có nhiều hơn một policy có khả năng áp dụng thì kết quả kết hợp các policy trong policy-set đó là Indeterminate
Việc đánh giá các rule, policy và policy-set để đưa ra quyết định cấp phép cuối cùng dựa trên các giá trị đánh giá từng thành phần và giải thuật kết hợp được diễn tả chi tiết trong các bảng sự thật (Hình 14)
GeoXACML sẽ đánh giá các rule trong từng policy trước Kết quả đánh giá một rule sẽ dựa trên việc đánh giá Target và Condition trong rule đó Nếu các thành phần request tương ứng với thành phần trong Target thì việc đánh giá Target có kết quả gọi là Match, nghĩa là Rule đó có thể áp dụng cho request đó Biểu thức Condition sẽ trả về True nếu request đó thỏa mãn các điều kiện kiểm tra, ngược lại là false Nếu việc kiểm tra điều kiện không thể đánh giá do thiếu thông tin, quá trình đánh giá bị lỗi, v.v kết quả trả về là Indeterminate Cụ thể bảng đánh giá như sau:
e
Không quan tâm
Indeterminate
Hình 14: Bảng sự thật đánh giá rule
Trang 25Sau khi đánh giá các rule trong policy, kết quả đánh giá một policy sẽ dựa trên việc đánh giá Target của Policy (tương tự Rule), kết quả đánh giá các rule và giải thuật kết hợp rule Cụ thể như sau:
Targe
t
Giá trị các rule Giá trị policy
Match Có ít nhất một rule giá trị là Effect Xác định bởi giải thuật kết
hợp rule Match Tất cả các rule là “NotApplicable” NotApplicable
Match Có ít nhất một rule có giá trị là
Indeterminate
Xác định bởi giải thuật kết hợp rule
Indeterminate Không quan tâm Indeterminate
Hình 15: Bảng sự thật đánh giá policy
“Có ít nhất một rule có giá trị là Effect” nghĩa là hoặc phần tử Rule bị vắng mặt trong Policy hoặc có một hoặc nhiều hơn một rule chứa trong policy là khả áp dụng cho request Lúc này, các rule sẽ trả về các giá trị Permit hoặc Deny Kết quả kết hợp sẽ phụ thuộc vào giải thuật kết hợp rule
Sau khi đánh giá Policy, PolicySet sẽ được đánh giá để quyết định khả năng áp dụng của PolicySet Việc đánh giá cũng phụ thuộc vào phần tử Target, các policy và PolicySet chứa bên trong và giải thuật kết hợp chính sách Cụ thể như bảng sau:
Target Giá trị các policy Giá trị policy set
Match Có ít nhất một policy giá
giá trị là Indeterminate
Xác định bởi giải thuật kết hợp policy
Hình 16: Bảng sự thật đánh giá PolicySet
“Có ít nhất một policy giá trị là Decision” nghĩa là nếu không có policy hay policy-set được chứa hoặc tham khảo đến; hoặc nếu có một hoặc nhiều hơn một policy hay policy-set được chứa hoặc tham khảo trong policy-set đang đánh giá là khả
áp dụng đến request thì kết quả sẽ trả về được quyết định bởi giải thuật kết hợp
Các phần sau sẽ mô tả chi tiết hơn về các giải thuật kết hợp sẽ được quyết định như thế nào trong các trường hợp trên
Deny-overrides
Trang 26 Giải thuật kết hợp rule
Trong toàn bộ các rule trong policy, nếu có bất kỳ rule nào được đánh giá là Deny, vậy thì kết quả kết hợp sẽ là Deny Nếu bất kỳ rule nào đánh giá là Permit và tất các những rule còn lại đánh giá là NotApplicable thì kết quả kết hợp là Permit Nói cách khác, Deny sẽ đóng vai trò ưu tiên khi đưa ra kết quả kết hợp Nếu có một lỗi xảy ra khi đánh giá target hoặc condition của một rule chứa giá trị Effect là Deny vậy thì việc đánh giá sẽ được tiếp tục cho các rule tiếp theo, để tìm kiếm kết quả Deny Nếu không còn rule nào được đánh giá là Deny vậy thì kết quả kết hợp sẽ là Indeterminate với trạng thái lỗi đi kèm Nếu có ít nhất một rule được đánh giá là Permit, tất cả các rule còn lại không có lỗi, được đánh giá là Permit hoặc NotApplicable và các rule mà có lỗi khi đánh giá nhưng giá trị Effect là Permit thì kết quả kết hợp sẽ là Permit
Giải thuật kết hợp policy
Trong toàn bộ các policy của policy-set, nếu bất kỳ policy được đánh giá là Deny, vậy thì kết quả kết hợp sẽ là Deny Nếu một lỗi xảy ra trong khi đánh giá Target của policy hoặc policy tham khảo là không hợp lệ hoặc kết quả đánh giá là Indeterminate, vậy thì policy-set đó có giá trị là Deny
Orderred-deny-overrides
Giải thuật kết hợp này tương tự deny-overrides ngoại trừ một điểm khác biệt là thứ tự trong tập các rule hay chính sách được đánh giá sẽ tương ứng với thứ tự được liệt kê trong policy hay policy-set
Permit-overrides
Giải thuật kết hợp rule
Trong toàn bộ các rule trong policy, nếu có bất kỳ rule nào được đánh giá là Permit, vậy thì kết quả kết hợp sẽ là Permit Nếu bất kỳ rule nào đánh giá là Deny và tất các những rule còn lại đánh giá là NotApplicable thì kết quả kết hợp là Deny Nói cách khác, Permit sẽ đóng vai trò ưu tiên khi đưa ra kết quả kết hợp Nếu có một lỗi xảy ra khi đánh giá target hoặc condition của một rule chứa giá trị Effect là Permit vậy thì việc đánh giá sẽ được tiếp tục cho các rule tiếp theo, để tìm kiếm kết quả Permit Nếu không còn rule nào được đánh giá là Permit vậy thì kết quả kết hợp sẽ là Indeterminate với trạng thái lỗi đi kèm Nếu có ít nhất một rule được đánh giá là Deny, tất cả các rule còn lại không có lỗi, được đánh giá là Deny hoặc NotApplicable
và các rule mà có lỗi khi đánh giá nhưng giá trị Effect là Deny thì kết quả kết hợp sẽ
là Deny
Giải thuật kết hợp policy
Trang 27Trong toàn bộ các policy của policy-set, nếu bất kỳ policy được đánh giá là Permit, vậy thì kết quả kết hợp sẽ là Permit Nếu một lỗi xảy ra trong khi đánh giá Target của policy hoặc policy tham khảo là không hợp lệ hoặc kết quả đánh giá là Indeterminate và không có policy nào được đánh giá là Permit hay Deny, vậy thì policy-set đó có giá trị là Indeterminate với trạng thái lỗi đi đèm
Orderred-permit-overrides
Giải thuật kết hợp này tương tự permit-overrides ngoại trừ một điểm khác biệt
là thứ tự trong tập các rule hay chính sách được đánh giá sẽ tương ứng với thứ tự được liệt kê trong policy hay policy-set
First-applicable
Giải thuật kết hợp rule
Mỗi rule được đánh giá theo thứ tự được liệt kê trong policy Với một rule nào
đó mà target được thỏa và condition được đánh giá là True vậy thì việc đánh giá policy đó sẽ dừng và kết quả kết hợp trả về là giá trị Effect của rule đó Nếu target của rule đó là không thỏa hoặc condition trả về False, vậy thì rule kế tiếp sẽ được đánh giá Nếu không có rule nào nữa thì policy sẽ trả về NotApplicable
Nếu một lỗi xảy ra khi đánh giá Target và Condition của một rule, vậy thì việc đánh giá sẽ dừng, policy sẽ trả về là Indeterminate với một trạng thái lỗi tương ứng
Giải thuật kết hợp policy
Mỗi policy được đánh giá theo thứ tự xuất hiện trong policy-set Với một policy nào đó mà target được thỏa và policy được đánh giá là Permit hay Deny vậy thì việc đánh giá policy-set đó sẽ dừng và kết quả kết hợp trả về là giá trị Effect của policy đó Nếu target của rule đó là không thỏa hoặc policy đánh giá là NotApplicable, vậy thì policy kế tiếp sẽ được đánh giá Nếu không có policy nào nữa thì policy-set sẽ trả về NotApplicable
Nếu một lỗi xảy ra khi đánh giá Target hoặc khi đánh giá một policy nào đó, policy tham khảo không hợp lệ hoặc policy đó được đánh giá là Indeterminate, vậy thì việc đánh giá sẽ dừng, poslicy-set sẽ trả về là Indeterminate với một trạng thái lỗi tương ứng
Only-one-applicable
Giải thuật kết hợp này chỉ được áp dụng cho policy-set Trong tập các policy của policy-set, nếu không có policy nào là khả áp dụng do Target của nó vậy thì kết quả của việc kết hợp policy sẽ là NotApplicable Nếu có nhiều hơn một policy là khả
áp dụng vậy thì kết quả kết hợp sẽ là Indeterminate Nếu chỉ có duy nhất một policy là khả áp dụng vậy thì kết quả kết hợp sẽ trả về kết quả đánh giá policy đó Nếu có lỗi
Trang 28xảy ra khi đánh giá Target của một policy, hoặc một tham khảo là không hợp lệ hoặc việc đánh giá policy trả về kết quả là Inderterminate, vậy thì policy-set sẽ trả về là Indeterminate với một trạng thái lỗi tương ứng
Tóm lại, với 6 chỉ thị cho việc kết hợp các kết quả đánh giá cho từng rule, policy và policy-set, XACML đã hỗ trợ việc đưa ra kết quả quyết định cấp phép cuối cùng một cách tự động dựa vào từng chiến thuật trong trường hợp các quyền xung đột lẫn nhau Việc kế thừa những tính năng này của XACML đã giảm chi phí hiện thực
để xử lý quá trình đánh giá các chính sách một cách đáng kể
Những thuật toán này giải quyết xung đột nhưng không quan tâm về tính đúng đắn của việc giải quyết Nó dựa hoàn toàn vào trách nhiệm của người quản trị (người thiết kế chính sách)
Chương 3: Các công trình nghiên cứu liên quan
Vấn đề phát hiện bất thường trong tập chính sách điều khiển truy xuất và các vấn đề liên quan đã được nhiều nhà khoa học tập trung nghiên cứu Tuy nhiên, chưa
có nghiên cứu nào trực tiếp giải quyết bài toán phát hiện bất thường đối với ngôn ngữ GeoXACML mà đặc biệt là phát hiện bất thường trong các ràng buộc không gian
Trang 29trong tập chính sách của GeoXACML Ở phần này, một số công trình nghiên cứu liên quan, tiêu biểu sẽ được trình bày
Huonder [10] đã đề xuất cơ chế phát hiện xung đột trong XACML Trong đó, tác giả đã xây dựng thuật toán phát hiện xung đột tổng quát, có nghĩa là nó có thể phát hiện bất kỳ xung đột nào.Thuật toán này có thể cải tiến để phát hiện cả dư thừa Tuy nhiên, tác giả đã loại bỏ thành phần Condition trong quá trình phát hiện xung đột Tác giả cũng đề xuất 2 cách để giải quyết xung đột Cách thứ nhất tương tự với cách XACML đã làm Cách thứ hai là thay thế tập luật hiện tại với một tập luật tương đương Nghĩa là kết quả của việc đánh giá mọi Request bằng tập luật cũ và tập luật mới là hoàn toàn giống nhau Tuy nhiên tập luật mới không có bất kỳ sự giao nhau nào, vì vậy nó không chứa xung đột Và mỗi Request chỉ có nhiều nhất là một Rule phù hợp với nó
Hongxin Hu và các đồng nghiệp trong bài báo [11] đã đề xuất một kỹ thuật phân mảnh chính sách sử dụng sơ đồ Binary Decision Diagram (BDD) để biểu diễn chính sách XACML và thuật toán của họ sẽ sử dụng các toán tử tập hợp như Hợp (∪), Giao (∩) và Hiệu (\) trên các sơ đồ BDD để phát hiện các xung đột
Trong bài báo [12], Agrawal và các đồng nghiệp đã giới thiệu một phương pháp để phát hiện xung đột chung cho các ngôn ngữ biểu diễn chính sách điều khiển truy xuất và có thể áp dụng cho ngôn ngữ XACML Một số nghiên cứu khác không trực tiếp giải quyết bài toán phát hiện bất thường mà là những bài toán liên quan như việc kết hợp các chính sách XACML trong các bài báo [13, 14, 15], và tối ưu hóa XACML [16, 17]
Phần tiếp theo là chi tiết của một số nghiên cứu quan trọng liên quan trực tiếp tới đề tài này
3.1 Phương pháp hình học
Trong công trình của Hounder [10], ông chỉ quan tâm tới vấn đề phát hiện xung đột trong thành phần Target của chính sách, thành phần Condition sẽ không được xét đến Mỗi một chính sách XACML sẽ được chuyển thành một hình chữ nhật
n chiều trong không gian n chiều Mỗi thuộc tính trong Target hình thành nên 1 chiều Các hàm XACML có thể xuất hiện trong phần Target là =, <, <=, >, >= và *-match Trong kho chính sách có thể có nhiều chính sách sẽ tương ứng với nhiều hình chữ nhật Những hình chữ nhật này có thể chồng lấp lên nhau Các chồng lấp này sẽ xác định một xung đột nếu giá trị Effect của chúng khác nhau
Chúng ta xem xét một ví dụ đơn giản gồm 3 chính sách sau:
Chính sách 1: ((1 ≤ x ≤ 4)AND (2 ≤ y ≤ 5))→Permit
Trang 30 Chính sách 2: ((3 ≤ x ≤ 6)AND (1 ≤ y ≤ 4))→Deny
Chính sách 3: ((5 ≤ x ≤ 7)AND (6 ≤ y ≤ 8))→Permit
Hình 17: Ví dụ về xung đột trong chính sách XACML
Biểu hiện các luật trên trong không gian 2 chiều như hình 17 Xung đột trong
ví dụ này xảy ra khi một Request chứa thuộc tính x nằm trong đoạn [3,4] và y nằm trong đoạn [2,4] Khi đó, cả 2 chính sách P1 và P2 đều có thể áp dụng cho Request này, nhưng Effect của chúng trái ngược nhau
3.1.1 Việc chuyển đổi XACML Target vào không gian n chiều
Ý tưởng cơ bản là chuyển đổi tất cả các thuộc tính vào không gian n chiều bằng cách chuyển đổi chúng thành các kiểu cơ bản integer, double, string, và máy trạng thái hữu hạn Tất cả các kiểu của XACML đều dễ dàng chuyển về 4 kiểu này Việc chuyển đổi này sẽ giúp chúng ta dễ dàng xử lý cho các kiểu dữ liệu Việc chuyển đổi thành một máy trạng thái hữu hạn là trường hợp đặc biệt khi có thuộc tính nào đó được so sánh bằng hàm *-match Khi đó Target của một chính sách khồng hình thành một khoảng trong một chiều nào đó, khi đó chúng ta sử dụng máy trạng thái hữu hạn
để xử lý trường hợp đặc biệt này
3.1.2 Các kiểu dữ liệu đƣợc chuyển thành Integer
http://www.w3.org/2001/XMLSchema#integer
Không cần chuyển đổi vì đã là kiểu integer
Trang 31urn:oasis:names:tc:xacml:2.0:data-type:dayTimeDuration
Số integer biểu diễn số giây của khoảng thời gian
urn:oasis:names:tc:xacml:2.0:data-type:yearMonthDuration
Số integer biểu diễn số tháng của khoảng thời gian
3.1.3 Các kiểu dữ liệu đƣợc chuyển đổi thành kiểu Double
Chỉ có một kiểu dữ liệu cần chuyển thành kiểu Double là
http://www.w3.org/2001/XMLSchema#double
3.1.4 Các kiểu dữ liệu đƣợc chuyển đổi thành kiểu String
Với các kiểu dữ liệu được liệt kê bên dưới, nêu hàm áp dụng lên các kiểu dữ liệu này
là các hàm so trùng *-match thì các kiểu dữ liệu này cần được chuyển đổi thành máy trạng thái hữu hạn Trong trường hợp còn lại thì sẽ được chuyển đổi thành kiểu String http://www.w3.org/2001/XMLSchema#string
3.1.5 Các kiểu dữ liệu đƣợc chuyển đổi thành máy trạng thái hữu hạn
Các kiểu dữ liệu sau đây cần được chuyển thành máy trạng thái hữu hạn khi có ít nhất
1 hàm *-match giữa tất cả các chính sách mà chứa cùng thuộc tính
http://www.w3.org/2001/XMLSchema#string
http://www.w3.org/2001/XMLSchema#anyURI
Trang 32urn:oasis:names:tc:xacml:1.0:data-type:x500Name2
urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name
urn:oasis:names:tc:xacml:2.0:data-type:ipAddress
urn:oasis:names:tc:xacml:2.0:data-type:dnsName
3.1.6 Thuật toán xác định xung đột
Ý tưởng chính là biểu diễn các chính sách như những siêu chữ nhật n chiều Thuật toán sau đó chạy trên mỗi chiều và xác định sự giao nhau giữa các chính sách Việc xác định này phụ thuộc vào kiểu dữ liệu của thuộc tính trong mỗi chiều Thuật toán có những bước sau:
1 Chuyển đổi tất cả các chính sách vào không gian n chiều
2 Xác định điểm đầu và điểm cuối của khoảng mà mỗi chính sách bao phủ
3 Trên mỗi chiều:
a/ Xác định các cặp giao nhau sử dụng 1 trong 3 thuật toán sau
-Thuật toán Plane Sweep
-Thuật toán AABB - AABB Intersection
- Thuật toán Regex Intersection
b/ Loại bỏ những chính sách không thể conflict với những cái khác
4 Báo tất cả các cặp conflict
Xác định điểm đầu và điểm cuối:
Có 3 trường hợp:
- Khoảng đóng: [x; y], (x; y), (x; y] hoặc [x; y) Ví dụ x > 5 và x ≤ 10→(5; 10]
- Khoảng mở: (∞; y] Có cấu trúc giống khoảng đóng nhưng cận trên hoặc cận dưới là
1 Thuật toán Plane Sweep:
Bước 1: sắp xếp theo điểm đầu và điểm cuối của tất cả các chính sách
Bước 2: duyệt các điểm theo thứ tự đã sắp xếp Đặt một chính sách vào tập S khi gặp điểm đầu của chính sách đó Xóa chính sách khỏi tập S nếu gặp điểm cuối của chính
Trang 33sách Nếu có 2 chính sách trở lên trong tập S ta xác định được có sự giao nhau của các chính sách đó
Bước 3: thông báo các cặp giao nhau
2 Thuật toán AABB - AABB Intersection
Bước 1: lấy 2 chính sách có giá trị Effect khác nhau
Bước 2: nếu cận dưới của 1 chính sách nhỏ hơn cận trên của chính sách còn lại thì 2 chính sách đó giao nhau
Bước 3: thông báo các cặp giao nhau
3 Thuật toán Regular Intersection
Một biểu thức chính quy là tương đương với một máy trạng thái hữu hạn Vì vậy ta sẽ chuyển biểu thức chính quy thành máy trạng thái bởi vì việc xác định sự giao nhau của 2 máy trạng thái hữu hạn là dễ dàng Thuật toán để xác định 2 máy trạng thái hữu hạn F1 và F2 có giao nhau không sẽ có các bước sau:
1.Tạo ra một máy trạng thái hữu hạn mới F Trong đó F là tích Đềcac của F1 và F2
2 Trạng thái bắt đầu của F là trạng thái mà giữ trạng thái bắt đầu của F1 và F2
3 Trạng thái chấp nhận của F là những trạng thái chấp nhận của F1 và F2
4 Với mỗi trạng thái của F
a) Lặp qua tất cả các thành phần của bộ từ điển Σ
b) Bắt đầu đồng thời trên cả 2 máy trạng thái gốc F1 và F2 đồ và vào các thành phần của Σ
c) Tạo một kết nối trong F tới trạng thái đang giữ trạng thái đích mà đã đạt tới bằng việc vào các thành phần của Σ trong F1 và F2
5 Thực hiện tìm kiếm theo chiều sâu từ trạng thái khởi đầu của F Giữ lại tất cả các đường đi mà kết thực ở một trạng thái chấp nhận của F
Nếu tồn tại ít nhất một đường đi tới trạng thái chấp nhật thì những máy trạng thái và những biểu thức chính quy có giao nhau
Trang 34Thuật toán Plane Sweep thuật toán Plane Sweep bao gồm 3 bước Bước 1, sắp xếp,
chi phí trong trường hợp xấu nhất là : O(n * log (n)) Bước 2 và 3 chạy đồng thời và chi phí trong trường hợp xấu nhất là O(n) Bởi vì những thuật toán này chạy trên từng chiều trong tất cả d chiều vì vậy chi phí tổng cộng:
O(d * n * log(n)) + O(d * n) ⊆ O(d *n *log (n)) Thuật toán AABB-AABB Intersection thuật toán AABB-AABB Intersection bao
gồm 3 bước Bước 1, tạo ra các tập biên, chi phí trong trường hợp xấu nhất là : O(n) Bước 2 và bước 3, kiểm tra các phần giao và báo kết quả, chạy đồng thời và chi phí trong trường hợp xấu nhất là O(p * (n-p)) Bởi vì những thuật toán này chạy trên từng chiều trong tất cả d chiều vì vậy chi phí tổng cộng:
O(d ∗ n)+O(d ∗ p ∗ (n−p)) ⊆ O(d ∗ p ∗ (n−p))
Thuật toán Regex Intersection
Chi phí cuối cùng trong trường hợp xấu nhất như sau:
• Chuyển từ biểu thức chính quy sang máy trạng thái hữu hạn bất định:
• Chuyển từ máy trạng thái hữu hạn bất định thành máy trạng thái hữu hạn xác định:
• Tối thiểu hóa máy trạng thái hữu hạn xác định:
• Xây dựng tích đề-cac của các cặp máy trạng thái hữu hạn xác định tối thiểu hóa:
• Depth-First Search:
Chi tiết việc đánh giá độ phức tạp được trình bày chi tiết trong [10]
Trang 353.2 Phương pháp sử dụng Binary Decision Diagram (BDD)
3.2.1 Biểu diễn chính sách ở dạng sơ đồ BDD
Kĩ thuật phân mảnh dựa trên policy được giới thiệu trong phần tiếp theo yêu cầu được chuyển sang dạng Binary Decision Diagram (BDD) Cấu trúc này sẽ được
sử dụng để biểu diễn các chính sách XACML Một chính sách XACML, có thể được phân tích để xác định các Subject, Action, Resource và các thuộc tính Condition Một khi những thuộc tính này được xác định, tất cả các luật XACML có thể được chuyển đổi thành biểu thức logic Mỗi biểu thức logic của một luật là kết hợp của những biểu thức logic nguyên tố bằng các toán từ ∨ và ∧ Một biểu thức nguyên tố như một ràng buộc bằng, hoặc một ràng buộc khoảng ví dụ như Subject = “student” hoặc 8:00<=Time <=17:00 Biểu thức logic cho mỗi luật XACML có thể chứa những biểu thực với khoảng giá trị chồng lấp lên nhau Trong trường hợp như vậy, những biểu thức logic nguyên tố sẽ được chuyển đổi thành một chuỗi những biểu thức logic nguyên tố mới mà có khoảng giá trị tách rời nhau Và gán mỗi biểu thức logic nguyên
tố như một biến Ta xem xét một ví dụ sau:
Rule 1: (Subject = “Designer” ∨ Subject = “Tester”) ∧ (Resource = “Codes”) ∧ (Action = “Change”)
Rule 2: (Subject=“Designer” ∨ Subject=“Tester”) ∧ (Resource=“Reports” ∨ Resource
= “Codes”) ∧ (Action = “Read” ∨Action = “Change”) ∧ (8 : 00 ≤ Time ≤ 17 : 00) Các biểu thức logic nguyên tố tương ứng và biến logic
Biểu thức logic nguyên tố Biến logic
Subject = “Designer” S1 Subject = “Tester” S2 Subject = “Developer” S3 Subject = “Manager” S4 Resource = “Reports” R1 Resource = “Codes” R2
8 : 00 ≤ Time < 12 : 00 C1
12 : 00 ≤ Time < 13 : 00 C2
Trang 3613 : 00 ≤ Time ≤ 17 : 00 C3
Hình 18: Các biểu thức logic nguyên tố
Vậy ta sẽ có một biểu thức logic sau khi đã được gán biến cho Rule 1 là
Hình 19: Sơ đồ BDD của 2 luật R1 và R2
Một khi những cây BDD được xây dựng cho các luật XACML, thì việc thực hiện các phép toán như Hợp (∪), Giao (∩), Hiệu(\), được yêu cầu bởi thuật toán phân mảnh dựa trên chính sách sẽ được thực thi một cách hiệu quả [30]
3.2.2 Thuật toán xác định xung đột
Cơ chế phát hiện xung đột này xem xét những xung đột ở cả mức Policy và mức Policy Set cho các chính sách XACML Để xác định xung đột, các tác giả giới thiệu
kỹ thuật phân mảnh dựa trên chính sách để phân mảnh toàn bộ không gian phân quyền của chính sách vào trong những mảnh không gian phân quyền tách biệt Sau đó những mảnh không gian phân quyền xung đột sẽ được xác định Mỗi một mảnh không gian phân quyền xung đột chỉ ra một xung đột chính sách
Trang 37Một thành phần chính sách trong chính sách XACML bao gồm một tập các luật Mỗi luật định nghĩa một vùng không gian phân quyền với Effect hoặc là Permit hoặc Deny Các tác giả gọi một vùng không gian phân quyền với Effect Permit là Permited Space và vùng không gian phân quyền với Effect Deny là Denied Space
Hình 20: Thuật toán xác định xung đột
Thuật toán ở hình 20 thể hiển mã giả của việc sinh ra các vùng không gian xung đột cho một thanh phần chính sách P Một vùng không gian phân quyền đầy đủ được suy ra từ một thành phần chính sách đầu tiên sẽ được phân mảnh thành một tập các mảnh tách biệt Như được thể hiện trong dòng 16-32 trong thuật toán trên một
Trang 38hàm được gọi là Partition() sẽ làm chức năng này Hàm này thực hiện bằng cách thêm một vùng không gian phân quyền s của Rule R to tập các vùng không gian phân quyền S Một cặp vùng không gian phân quyền phải thỏa mãn những quan hệ sau: subset (dòng 19), superset (dòng 24), partial match (dòng 27) và disjoint (dòng 31) Khi đó có thể sử dụng các toán tử tập hợp để phân những vùng không gian chồng lấp thành các vùng không gian tách biệt
Các mảnh xung đột được thể hiện trong dòng 6-9 trong thuật toán Một tập mảnh xung đột CS:{cs1, cs2,… csn} từ những luật xung đột có những tính chất sau:
- Tất cả mảnh xung đột là tách biệt từng đôi một
- Hai request q va q’ trong cùng một mảnh xung đột (csi) sẽ cùng so trùng với cùng tập luật
- Effect của những luật so trùng trong bất kỳ mảnh xung đột nào đều chứa cả Permit và Deny
Trang 39Chương 4: Hướng tiếp cận và thuật toán
4.1 Các cơ chế phát hiện bất thường và hướng tiếp cận
Những chiến lược khác nhau trong việc phát hiện xung đột có thể phân loại bằng việc xem xét thời điểm của quá trình phát hiện được áp dụng Phụ thuộc vào thời gian áp dụng, hai lớp khác nhau của những cách tiếp cận phát hiện xung đột có thể được định nghĩa: (1) phát hiện ở thời điểm thiết kế (được gọi là cơ chế phát hiện tĩnh)
và (2) phát hiện ở thời điểm chạy (gọi là cơ chế phát hiện động)
Cơ chế phát hiện tĩnh được dùng trước khi triển khai hệ thống Loại phát hiện này cố để loại bỏ tất cả các xung đột giữa các chính sách ở thời điểm thiết kế Trong khi, cơ chế phát hiện động được thực hiện khi hệ thống đang hoạt động và người dùng đang sử dụng hệ thống Ưu điểm của việc sử dụng phát hiện tĩnh là cách giải quyết xung đột là được biết trước khi nó xảy ra Việc xem xét cách giải quyết được cung cấp ở thời điểm của việc phát hiện xung đột tĩnh bởi người quản lý chính sách Ưu điểm chính của phương pháp phát hiện động là thông tin có thể được thu nhận từ hệ thống khi đang chạy Thông thường với loại phát hiện này có một số chiến thuật mặc định được định nghĩa để xử lý với những xung đột Tuy nhiên, một vài bất thường không thể được giải quyết sẽ cần được báo cáo lại với người quản lý hệ thống
Một nhược điểm của việc dùng phương phát phát hiện tĩnh là bởi vì hệ thống chưa chạy nên một số xung đột được phát hiện có thể sẽ không bao giờ phát hiện và
do đó không cần phải giải quyết chúng Tuy nhiên, mặt khác đây cũng là một đặc trưng được xem như ưu điểm của phương pháp phát hiện tĩnh Nếu như phương pháp phát hiện tĩnh không thể tìm thấy bất kì xung đột nào thì hệ thống có thể xem như không có bất thường nào Trong khi việc phát hiện động là dựa trên từng trường hợp
cụ thể ở thời điểm thực thi và sử dụng một vài luật được định nghĩa trước để vượt qua những trường hợp xung đột ở thời điểm chúng xảy ra Nên việc phát hiện động có thể được dùng tốt nhất với một hệ thống log những bất thường và cảnh bảo tới người quản trị về những bất thường này để trách xảy ra trong tương lai
Mỗi phương pháp đều có những ưu nhược điểm riêng và một hệ thống điều khiển truy xuất cần phải sử dụng cả hai cơ chế này để đạt được hiệu quả tốt nhất Tuy nhiên, đề tài này chỉ tập trung vào cơ chế phát hiện tĩnh
Trang 404.2 Thuật toán xác định bất thường cho các ràng buộc không gian
4.2.1 RCC8 và suy luận hình học
RCC8 là một đại số quan hệ phục vụ cho việc biểu diễn và suy luật về các mối quan hệ nhị phân giữa các đối tượng hình học trong lý thuyết RCC [19] Trong lý thuyết này, các đối tượng hình học là không trống (non-empty regular), tập con đóng của miền không gian hình học (closed subset of a topological space), và có nhiều mảnh (multi-piece) RCC-8 có tám quan hệ đầy đủ và tách biệt từng đôi một được ký hiệu: DC(disconnected), EC(external connected), PO(partially overlap), EQ(equal), TPP(tangential proper part), NTPP(non-tangential proper part) và những quan hệ ngược của chúng TPPi, NTPPi Tất cả những quan hệ khác là hợp của hai hay nhiều mối quan hệ cơ bản, hoặc mối quan hệ rỗng (empty relation) Do đó, có tất cả 256 quan hệ RCC-8 khác nhau Một mô hình quan hệ không gian tương tự là mô hình 9-Intersection Method (9IM) của Egenhofer [20] Trong mô hình này, tác giả cũng định nghĩa 8 quan hệ với những cái tên khác: disjoint, meet, equals, overlaps, covers, coveredBy, contains, inside Hình 21 thể hiện mỗi quan hệ tương quan giữa các mô hình
overlaps -
Hình 21: Quan hệ không gian OGC và tương đương trong RCC8 và 9IM
Một câu hỏi cơ bản trong việc suy luận RCC8 là ta có thể biết được mối quan
hệ giữa hai đối tượng không gian x, z nếu ta biết được mối quan hệ giữa x,y và mối quan hệ giữa y, z Một kỹ thuật để trả lời cho loại câu hỏi này là bảng kết hợp (Composition Table) Nó cũng tương tự như bảng chuyển đổi (Transition Table) được
sử dụng trong công trình của Allen [21] trong việc suy luận về thời gian Bảng này biểu diễn toán tử kết hợp của 2 quan hệ RCC8 cơ bản R và S, và được viết là R ◦ S Mối quan hệ kết hợp là mối quan hệ RCC8 mà chứa tất cả những quan hệ RCC8 cơ bản T sao cho R(x, y) ∧ S(y, z) ∧ T(x, z) nhất quán (consistent) Tất cả những quan hệ kết hợp cho những quan hệ cơ bản được tổng kết trong bảng kết hợp RCC8 (hình 22) Bảng này xuất hiện lần đầu tiên trong bài báo [22] trong ngữ cảnh GIS Một quan hệ RCC8 có thể được biểu diễn như một tập của những quan hệ RCC8 cơ bản {B1, B2,…Bn Ví dụ như {EQ, DC, EC} nghĩa là hợp của 3 quan hệ cơ bản: EQ, DC và