CHƢƠNG 1 KIẾN THỨC NỀN TẢNG
2.2. Phƣơng pháp tích hợp RBAC vào BPM
Các yêu cầu an ninh là mối quan tâm lớn trong việc thiết kế, xây dựng và thực thi các hệ thống hƣớng quy trình nói chung và hệ thống BPM nói riêng, tuy nhiên chúng thƣờng coi là các yêu cầu phi chức năng. Chức năng của hệ thống và yêu cầu an ninh thƣờng không độc lập với nhau nên sự phân chia này khiến cho hệ thống khó đảm bảo việc thỏa mãn tất cả các yêu cầu. Vì vậy, cần tích hợp các yêu cầu an ninh vào tất cả các pha của vòng đời BPM nghĩa là từ pha thiết kế, mô hình hóa đến pha thực thi đến pha giám sát và pha tối ƣu. Có rất nhiều các yêu cầu an ninh nhƣng trong phạm vi luận văn chỉ tập trung vào việc tích hợp các yêu cầu điều khiển dựa theo vai trò RBAC vào pha thiết kế và mô hình hóa quy trình bằng BPMN 2.0, ngoài ra, áp đặt các yêu cầu an ninh vào pha thực thi.
Thiết kế và mô hình hóa quy trình nghiệp vụ thƣờng tập trung vào mô hình hóa chính xác chức năng của quy trình mà bỏ qua các yêu cầu về an ninh. Nguyên nhân chủ yếu là do thực tế rằng các chuyên gia trong lĩnh vực quy trình nghiệp vụ không phải là chuyên gia về an ninh. Các yêu cầu về an ninh thƣờng xuyên đƣợc xem xét sau khi định nghĩa hệ thống. Cách tiếp cận này dẫn đến các lỗ hổng an ninh và rõ ràng cần thiết phải tăng cƣờng nỗ lực an ninh trong các giai đoạn trƣớc phát triển do việc sửa lỗi sẽ hiệu quả và tiết kiệm chi phí hơn. Các nghiên cứu thực nghiệm cho thấy tại mức thiết kế quy trình nghiệp vụ thì khách hàng và ngƣời dùng cuối có thể biểu diễn các yêu cầu an ninh của họ và sau đó có thể thể hiện tại mức cao, các yêu cầu an ninh dễ dàng xác định bởi ngƣời mô hình hóa quy trình nghiệp vụ [2].
Để biểu diễn các yêu cầu an ninh trong mô hình hóa quy trình nghiệp vụ, cần một tiêu chuẩn kí hiệu có các khái niệm đồ họa cho phép biểu diễn ngữ nghĩa các yêu cầu an ninh. BPMN không có cơ chế biểu diễn các yêu cầu an ninh một cách tƣờng minh. Tuy nhiên, trong tập các ký hiệu đƣợc sử dụng cho sơ đồ quy trình nghiệp vụ thì
Artifacts có thể đƣợc sử dụng để biểu diễn các yêu cầu an ninh do Artifacts đƣợc thiết kế để mở rộng ký hiệu mô hình hóa cơ bản bằng việc thêm vào chúng khả năng biểu diễn các tình huống cụ thể. Artifacts bao gồm DataObjects cho phép chứa dữ liệu đƣợc
yêu cầu hoặc đƣợc tạo ra bởi Activities; và Text Annotations cho phép cung cấp thông tin bổ sung cho việc hiểu sơ đồ quy trình. Mặc dù Artifacts có thể đƣợc sử dụng để thể hiện các yêu cầu an ninh nhƣng chủ yếu là thông qua Text Annotations, điều này chỉ giúp cho các chuyên gia quy trình và chuyên gia an ninh biểu diễn các yêu cầu đó còn rất khó cho các nhà phát triển hệ thống có thể cài đặt và triển khai đƣợc các yêu cầu an ninh trong quy trình. Cách tốt nhất là định nghĩa một cách tƣờng minh các yêu cầu an ninh phải là một phần quy trình nghiệp vụ giống nhƣ Activity hay Event. Điều này chính là mở rộng ngôn ngữ mô hình hóa quy trình BPMN cho việc tích hợp thêm các khái niệm về an ninh. Mô hình các thành phần an ninh có thể có trong quy trình nghiệp vụ theo hình 2.1.
Hình 2.1: Yêu cầu an ninh kết hợp với ký hiệu
Các yêu cầu an ninh đƣợc xem xét là chống thoái thác (No Repudiation), phát hiện tấn công và tác hại của tấn công (Attack Harm Detection), tính toàn vẹn (Integrity), tính bí mật (Privacy) và kiểm soát truy cập (Access Control). Trong đó, tính bí mật và kiểm soát truy cập kết hợp với Security Role, Security Permission đƣợc kết hợp với Security Role.
Chống thoái thác: đƣợc xác định trên Message Flow, thể hiện giao dịch không thể bị phủ nhận.
Phát hiện tác hại của tấn công: tất cả các thành phần trong sơ đồ BPM phải xem xét một cơ chế cho phép phát hiện, đăng kí và thông báo về cuộc tấn công mạng.
Tính toàn vẹn: phải đảm bảo dữ liệu đƣợc bảo vệ, tránh sự gián đoạn và mất mát nội dung.
Tính bí mật: phải xem xét một cơ chế tránh các lộ lọt thông trái phép.
Kiểm soát truy nhập: tránh sự truy nhập trái phép vào các thành phần sơ đồ BPMN nhƣ UserTask, MessageTask,…
Tất cả các yêu này hoàn toàn có thể thêm vào sơ đồ BPMN . Tuy nhiên, trong phạm vi luận văn, tôi chỉ tập trung vào việc đặc tả và cài đặt các chính sách truy cập RBAC vào BPM. Các yêu cầu về kiểm soát truy nhập bao gồm Acess Control (chính
là Core RBAC) và hai ràng buộc phân quyền Authorization Contraints là SeparationOfDuty và BindingOfDuty sẽ đƣợc đƣa xem xét và bổ sung vào metamodel của BPMN để thu đƣợc metamodel mở rộng của BPMN tích hợp với các yêu cầu an ninh RBAC hình 2.2.
Hình 2.2: Metamodel của BPMN tích hợp với một số chính sách an ninh
Acess Control: Truy nhập hay thực hiện các hành động trên các nguồn tài nguyên cần đƣợc giới hạn cho các vai trò nhất định. Trong sơ đồ BPMN, Acess Control đƣợc yêu cầu trên Pool, Lane, Activity. Acess Control chứa các thành phần Core RBAC: Role, Permission, Action
Separation of Duty: Một ngƣời không đƣợc phép thực hiện nhiều vai trò trong quy trình. SoD bao gồm nhiều Permission mà nó ràng buộc.
Binding of Duty: Cùng một ngƣời phải thực hiện một số vai trò trong quy trình. BoD cũng bao gồm nhiều Permission mà nó ràng buộc.
Security Flow : thuộc thành phần Connecting Element, dùng để kết nối các đối tƣợng cần ràng buộc chính sách truy cập RBAC với nhau.
Sau khi các yêu cầu an ninh đƣợc tích hợp vào BPMN 2.0 cần thực thi các chính an ninh trong pha triển khai quy trình. Các hệ thống hiện đại thƣờng chứa một tập các dịch vụ, cần ràng buộc các yêu cầu an ninh trên mỗi dịch vụ và bản thân việc kiểm tra các yêu cầu an ninh cũng là một dịch vụ đƣợc gọi bởi các dịch vụ khác. Áp dụng kiến trúc hƣớng dịch vụ SOA, xây dựng một webservice phục vụ việc kiểm tra các yêu cầu an ninh. Trƣớc khi thực hiện bất kì hành động nào trên nguồn tài nguyên đƣợc bảo vệ, hệ thống phải gọi đến webservice này để kiểm tra xem hành động đó có hợp lệ hay không. Webservice có thể sử dụng các thông tin đƣợc cung cấp nhƣ Role, Permission, Action và các thông tin hệ thống sẵn có để kiểm tra. Trƣờng hợp, với hệ thống lớn, các chính sách an ninh phức tạp phải sử dụng các công cụ hỗ trợ việc kiểm tra. Ví dụ, các
yêu cầu SoD và BoD của RBAC có thể tự động chuyển thành các chính sách XACML và đƣợc ép buộc thực thi bởi một hoặc một vài điểm PEP [12]. Kết quả cuối cùng đƣợc trả về cho hệ thống là hành động đó đƣợc thực hiện hay không đƣợc thực hiện và hiển thị thông báo trả về cho ngƣời dùng.
Trong luận văn, việc thực thi các chính sách an ninh chỉ dừng lại ở việc kiểm tra các trƣờng hợp đơn giản nhƣ một ngƣời dùng đƣợc gán các vai trò không kế thừa và việc kiểm tra đƣợc thực hiện tại chỗ không gọi đến các webservice đƣợc cung cấp bởi bên thứ ba. Khi hệ thống lớn lên, các yêu cầu an ninh cũng trở nên phức tạp, cần có có các công cụ hỗ trợ vừa đảm bảo việc kiểm tra tính đúng đắn, tính toàn vẹn của các yêu cầu an ninh trong BPM vừa trả về kết quả nhanh nhất.