1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một số phương pháp kiểm chứng các chính sách điều khiển truy cập cho hệ thống phần mềm

137 27 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 137
Dung lượng 7,68 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dựa trên nền tảng của kỹ thuật phân tích tĩnh, luận án đề xuất một sốphương pháp kiểm chứng chính sách điều khiển truy cập của các hệ thống web.Cụ thể, các hệ thống web mà luận án hướng

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LƯƠNG THANH NHẠN

MỘT SỐ PHƯƠNG PHÁP KIỂM CHỨNG CÁC CHÍNH SÁCH ĐIỀU KHIỂN TRUY CẬP

CHO HỆ THỐNG PHẦN MỀM

LUẬN ÁN TIẾN SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội - 2021

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LƯƠNG THANH NHẠN

MỘT SỐ PHƯƠNG PHÁP KIỂM CHỨNG CÁC CHÍNH SÁCH ĐIỀU KHIỂN TRUY CẬP

CHO HỆ THỐNG PHẦN MỀM

Chuyên ngành: Kỹ thuật phần mềm

Mã số: 9480103.01

LUẬN ÁN TIẾN SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS.TS Trương Ninh Thuận

Hà Nội - 2021

Trang 3

Lời cam đoan

Tôi xin cam đoan luận án “Một số phương pháp kiểm chứng cácchính sách điều khiển truy cập cho hệ thống phần mềm” là công trìnhnghiên cứu của riêng tôi Các số liệu, kết quả được trình bày trong luận án làhoàn toàn trung thực và chưa từng được công bố trong bất kỳ một công trìnhnào khác

 Tôi đã trích dẫn đầy đủ các tài liệu tham khảo, công trình nghiên cứu liênquan ở trong nước và quốc tế Ngoại trừ các tài liệu tham khảo này, luận

án hoàn toàn là công việc của riêng tôi

 Trong các công trình khoa học được công bố trong luận án, tôi đã thể hiện

rõ ràng và chính xác đóng góp của các đồng tác giả và những gì do tôi đãđóng góp

 Luận án được hoàn thành trong thời gian tôi làm Nghiên cứu sinh tại Bộmôn Công nghệ phần mềm, Khoa Công nghệ Thông tin, Trường Đại họcCông nghệ, Đại học Quốc gia Hà Nội

Tác giả:

Hà Nội:

Trang 4

Lời cảm ơn

Trước hết, tôi muốn bày tỏ sự biết ơn đến PGS.TS Trương Ninh Thuận, cán

bộ hướng dẫn, người đã trực tiếp giảng dạy và định hướng tôi trong suốt thờigian học cao học, thực hiện luận văn thạc sĩ cũng như luận án này Thầy đãhướng dẫn cho tôi nhiều kiến thức trong học thuật và nghiên cứu Một vinh dựlớn cho tôi khi được học tập, nghiên cứu dưới sự hướng dẫn của Thầy

Tôi xin bày tỏ sự biết ơn sâu sắc đến các Thầy, Cô trong Bộ môn Công nghệphần mềm vì sự tận tâm, giúp đỡ của các Thầy Cô và các đóng góp rất hữu íchcho luận án

Tôi xin trân trọng cảm ơn Khoa Công nghệ thông tin, Phòng Đào tạo và BanGiám hiệu trường Đại học Công nghệ đã tạo điều kiện thuận lợi cho tôi trongsuốt quá trình học tập và nghiên cứu tại Trường

Tôi cũng bày tỏ sự biết ơn đến Ban Giám hiệu, các Phòng, Ban, Bộ môn liênquan trong Trường Đại học Y Dược Hải Phòng đã tạo điều kiện về thời gian vàtài chính cho tôi thực hiện luận án này Tôi muốn cảm ơn đến các đồng nghiệptrong Bộ môn Tin học, Trường Đại học Y Dược Hải Phòng đã giúp đỡ, độngviên và sát cánh bên tôi trong suốt quá trình nghiên cứu

Tôi muốn cảm ơn đến tất cả những người bạn của tôi, các anh/chị/em nghiêncứu sinh - những người luôn chia sẻ, động viên tôi bất cứ khi nào tôi cần và tôiluôn ghi nhớ những điều đó

Cuối cùng, tôi xin bày tỏ lòng biết ơn vô hạn đối với cha, mẹ, chồng, con đãluôn ủng hộ và yêu thương tôi vô điều kiện Nếu không có sự ủng hộ của giađình tôi không thể hoàn thành được luận án này

NCS Lương Thanh Nhạn

Trang 5

Dựa trên nền tảng của kỹ thuật phân tích tĩnh, luận án đề xuất một sốphương pháp kiểm chứng chính sách điều khiển truy cập của các hệ thống web.

Cụ thể, các hệ thống web mà luận án hướng đến phân tích đều được xây dựngbởi ngôn ngữ lập trình Java theo kiến trúc MVC (Model-View-Controller) và cóchính sách điều khiển truy cập theo vai trò hoặc chính sách điều khiển truy cậptheo thuộc tính được triển khai theo phương pháp an ninh lập trình, an ninhkhai báo Các đóng góp chính của luận án bao gồm:

(i) Đề xuất phương pháp kiểm chứng chính sách điều khiển truy cập theo vaitrò triển khai theo phương pháp an ninh lập trình Chính sách điều khiểntruy cập theo vai trò của ứng dụng web được trích rút thông qua việc phântích các phương thức khai thác tài nguyên, xây dựng danh sách các quyền

và đồ thị khai thác tài nguyên Một ma trận kiểm soát truy cập tài nguyêntheo vai trò được giới thiệu để biểu diễn các quy tắc truy cập của hệ thốngweb Từ đó, luận án đề xuất thuật toán kiểm tra sự phù hợp giữa ma trậnkiểm soát truy cập theo vai trò và chính sách truy cập đã đặc tả Bên cạnh

đó, một công cụ tên là CheckingRBAC được xây dựng để hỗ trợ quá trìnhkiểm chứng theo phương pháp đã đề xuất

Trang 6

(ii) Đề xuất phương pháp kiểm chứng chính sách điều khiển truy cập theo vaitrò kết hợp ràng buộc cấp quyền triển khai theo phương pháp an ninh khaibáo Chính sách điều khiển truy cập và các ràng buộc cấp quyền của các

hệ thống web được kiểm tra thông qua phép gán vai trò - người dùng vàphép gán vai trò - quyền Với phép gán thứ nhất, phương pháp được tiếnhành dựa trên việc phân tích cơ sở dữ liệu của hệ thống ứng dụng Ở phépgán thứ hai, các quy tắc truy cập của hệ thống web được phân tích và biểudiễn thành cây phân tích quy tắc truy cập tài nguyên theo vai trò Sau đó,các thuật toán được đề xuất để kiểm tra tính chính xác của các phép gán

đã triển khai trong các hệ thống web Phương pháp đề xuất đã được triểnkhai thành công cụ VeRA để kiểm chứng tự động các hệ thống web.(iii) Đề xuất phương pháp kiểm chứng chính sách điều khiển truy cập theo thuộctính Đầu tiên, tiến trình kiểm chứng được thực hiện bằng việc trích rút,phân tích các quy tắc truy cập được triển khai trong hệ thống web Tiếptheo, sự phù hợp giữa chính sách điều khiển truy cập của ứng dụng và đặc

tả được tiến hành thông qua các định nghĩa hình thức và các thuật toánkiểm tra tính bảo mật, tính toàn vẹn và tính sẵn sàng chính sách truy cậpcủa hệ thống Cuối cùng, công cụ kiểm chứng APVer đã được phát triển

từ phương pháp đề xuất để thực hiện quá trình kiểm chứng tự động.Ngoài ra, các công cụ phát triển từ các phương pháp đề xuất cũng đã đượctiến hành thực nghiệm với hệ thống quản lý hồ sơ y tế Bước đầu, phương pháp

và công cụ đề xuất đã cho các kết quả kiểm chứng chính xác như dự kiến

Từ khóa: kiểm chứng, điều khiển truy cập, RBAC, ABAC, an ninh phầnmềm, phân tích tĩnh

Trang 7

Mục lục

Lời cam đoan i

Lời cảm ơn ii

Tóm tắt iii

Mục lục iv

Danh mục các từ viết tắt viii

Danh mục các hình vẽ ix

Danh mục các thuật toán xi

Danh mục các đặc tả xii

Chương 1 GIỚI THIỆU 1

1.1 Đặt vấn đề 1

1.2 Nội dung nghiên cứu 4

1.3 Đóng góp của luận án 5

1.4 Cấu trúc luận án 6

Chương 2 KIẾN THỨC CƠ SỞ 9

2.1 An ninh phần mềm 9

2.1.1 Một số tính chất an ninh của phần mềm 10

2.1.2 Chính sách điều khiển truy cập 13

2.2 Một số mô hình chính sách điều khiển truy cập 14

2.2.1 Điều khiển truy cập theo vai trò 14

2.2.2 Ngôn ngữ mô hình hóa chính sách an ninh thống nhất 17

2.2.3 Điều khiển truy cập theo thuộc tính 19

2.3 Triển khai chính sách điều khiển truy cập trong JavaEE 23

2.3.1 An ninh truy cập trong JavaEE 23

2.3.2 Một số kiến trúc thiết kế phần mềm trong JavaEE 24

2.4 Phân tích và biểu diễn chương trình 29

2.4.1 Phân tích chương trình 30

2.4.2 Một số phương pháp biểu diễn chương trình 34

2.5 Tóm tắt chương 38

Trang 8

Chương 3 KIỂM CHỨNG CHÍNH SÁCH RBAC TRIỂN KHAI

THEO PHƯƠNG PHÁP AN NINH LẬP TRÌNH 39

3.1 Giới thiệu 39

3.2 Các nghiên cứu liên quan 41

3.3.Phương pháp kiểm chứng chính sách RBAC triển khai theo phương pháp an ninh lập trình 43

3.3.1 Tập quy tắc truy cập đặc tả 44

3.3.2 Danh sách các quyền 47

3.3.3 Đồ thị khai thác tài nguyên 48

3.3.4 Ma trận kiểm soát truy cập theo vai trò 49

3.3.5 Thuật toán kiểm tra sự phù hợp của ma trận kiểm soát truy cập theo vai trò và chính sách RBAC đã đặc tả 52

3.4 Công cụ kiểm chứng 55

3.4.1 Giao diện công cụ 55

3.4.2 Thực nghiệm 56

3.5 Thảo luận và đánh giá 60

3.6 Tóm tắt chương 62

Chương 4 KIỂM CHỨNG CHÍNH SÁCH RBAC KẾT HỢP RÀNG BUỘC CẤP QUYỀN TRIỂN KHAI THEO PHƯƠNG PHÁP AN NINH KHAI BÁO 63

4.1 Giới thiệu 63

4.2 Các nghiên cứu liên quan 65

4.3.Phương pháp kiểm chứng chính sách RBAC kết hợp ràng buộc cấp quyền triển khai theo phương pháp an ninh khai báo 67

4.3.1 Kiểm tra phép gán người dùng - vai trò 68

4.3.2 Kiểm tra phép gán vai trò - quyền 71

4.4 Công cụ kiểm chứng 76

4.4.1 Kiến trúc của công cụ 76

4.4.2 Giao diện đồ họa của công cụ 77

4.4.3 Thực nghiệm 78

4.5 Thảo luận và đánh giá 81

4.6 Tóm tắt chương 83

Trang 9

Chương 5 KIỂM CHỨNG CHÍNH SÁCH ĐIỀU KHIỂN TRUY

CẬP THEO THUỘC TÍNH 85

5.1 Giới thiệu 85

5.2 Các nghiên cứu liên quan 87

5.3 Phương pháp kiểm chứng chính sách điều khiển truy cập theo thuộc tính 89

5.3.1 Chính sách ABAC đặc tả của hệ thống 90

5.3.2 Chính sách ABAC triển khai trong ứng dụng 91

5.3.3 Các thuật toán kiểm chứng chính sách ABAC 92

5.4 Công cụ kiểm chứng 97

5.4.1 Xây dựng công cụ 97

5.4.2 Thực nghiệm 98

5.5 Thảo luận và đánh giá 105

5.6 Tóm tắt chương 106

Chương 6 KẾT LUẬN 108

6.1 Kết luận 108

6.2 Hướng phát triển 111

Danh mục các công trình khoa học 113

Tài liệu tham khảo 114

Trang 10

AST Abstract Syntax Tree Cây cú pháp trừu tượng

CFG Control Flow Graph Đồ thị luồng điều khiển

DAC Discretionary Access

Con-trol

Điều khiển truy cập tùy ý

FSA Finite State Automata Ôtômat hữu hạn trạng thái

HTML Hypertext Markup

Lan-guage

Ngôn ngữ đánh dấu siêu văn bản

IEC International

Electrotechni-cal Commission

Uỷ ban kỹ thuật điện quốc tế

ISO International Organization

for Standardization

Tổ chức tiêu chuẩn hoá quốc tế

MAC Mandatory Access Control Điều khiển truy cập bắt buộc

MVC Model-View-Controller Mô hình-Khung nhìn-Bộ điều khiểnNIST National Institute of Stan-

dards and Technology

Viện Tiêu chuẩn và Kĩ thuật Quốcgia Mỹ

PDA Push Down Automaton Ôtômat đẩy xuống

PDP Policy Decision Point Điểm quyết định chính sác

PEP Policy Enforcement Point Điểm thực thi chính sách

PDG Program Dependence Graph Đồ thị phụ thuộc chương trìnhPHP Hypertext Preprocessor Mộ xử lý siêu văn bản - một ngôn

ngữ lập trình kịch bảnRBAC Role-Based Access Control Điều khiển truy cập dựa trên vai tròOASIS Organization for the Ad-

vancement of Structured formation Standards

In-Tổ chức cải tiến các tiêu chuẩnthông tin có cấu trúc

Trang 11

SDG System Dependence Graph Đồ thị phụ thuộc hệ thống

SoD Separation of Duties Phân chia nhiệm vụ

SpEL Spring Expression Language Ngôn ngữ biểu thức Spring

SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúcSSL Secure Sockets Layer Lớp socket bảo mật

TLS Transport Layer Security Bảo mật tầng giao vận

UML Unified Modeling Language Ngôn ngữ mô hình hóa thống nhấtURL Uniform Resource Locator Định vị tài nguyên thống nhấtXACML eXtensible Access Control

Trang 12

Danh mục các hình vẽ

1.1 Cấu trúc của luận án 7

2.1 Một số tính chất an ninh của phần mềm 11

2.2 Điều khiển truy cập và một số dịch vụ an ninh 13

2.3 Mô hình RBAC cơ bản 15

2.4 Siêu mô hình SecureUML 17

2.5 Chính sách điều khiển truy cập của hệ thống quản lý hồ sơ y tế bằng SecureUML 19

2.6 Cơ chế điều khiển truy cập theo thuộc tính 20

2.7 Kiến trúc MVC trong JavaEE 25

2.8 Kiến trúc tổng quát của Spring Security 27

2.9 Kiến trúc Spring triển khai ABAC trong JavaEE 27

2.10 Các hoạt động đảm bảo chính sách an ninh phần mềm 29

2.11 Cây cú pháp trừu tượng biểu diễn đoạn mã của giải thuật tìm ước số chung lớn nhất 35

2.12 Minh họa đồ thị gọi một chương trình phần mềm 37

2.13 Một số ví dụ đồ thị luồng điều khiển 37

2.14 Đồ thị luồng điều khiển mô tả mức độ chi tiết của chương trình con 38 3.1 Quy trình kiểm chứng chính sách RBAC triển khai theo phương pháp an ninh lập trình 44

3.2 Giao diện của công cụ kiểm chứng chính sách RBAC 55

3.3 Mô hình triển khai chính sách RBAC trong hệ thống quản lý hồ sơ y tế 58

3.4 Đồ thị khai thác tài nguyên của hệ thống quản lý hồ sơ y tế 59

3.5 Ma trận kiểm soát truy cập theo vai trò của hệ thống quản lý hồ sơ y tế 60

4.1 Quy trình kiểm chứng chính sách RBAC kết hợp ràng buộc cấp quyền triển khai theo phương pháp an ninh khai báo 68

4.2 Cấu trúc cây phân tích truy cập theo vai trò 71

4.3 Tiến trình xây dựng cây phân tích truy cập theo vai trò của các ứng dụng web 73

Trang 13

4.4 Kiến trúc của công cụ kiểm chứng chính sách RBAC kết hợp ràng

buộc cấp quyền 77

4.5 Giao diện của công cụ kiểm chứng chính sách RBAC kết hợp ràng

buộc cấp quyền 77

4.6 Cơ sở dữ liệu của phép gán vai trò - người dùng 79

4.7 Cây phân tích truy cập theo vai trò của hệ thống quản lý hồ sơ y tế 80

5.1 Quy trình kiểm chứng chính sách điều khiển truy cập theo thuộc tính.90

5.2 Giao diện đồ họa của công cụ APVer 98

5.3 Kết quả kiểm chứng tính bảo mật khi lễ tân có thêm quyền đọc

Trang 14

Danh mục các thuật toán

3.1 Xây dựng ma trận kiểm soát truy cập theo vai trò 51

3.2 Kiểm tra ma trận kiểm soát truy cập theo vai trò và chính sách RBAC đã đặc tả 53

4.1 Kiểm tra phép gán người dùng - vai trò 69

4.2 Kiểm tra phép gán vai trò - quyền 75

5.1 Kiểm tra tính bảo mật chính sách truy cập 94

5.2 Kiểm tra tính toàn vẹn chính sách truy cập 96

5.3 Kiểm tra tính sẵn sàng chính sách truy cập 97

Trang 15

Danh mục các đặc tả

2.1 Mã nguồn của hàm hasPermission 27

2.2 Mã nguồn của hàm checkPermission 28

3.1 Cấu trúc tệp đặc tả chính sách RBAC của hệ thống 45

3.2 Đặc tả chính sách RBAC của hệ thống quản lý hồ sơ y tế 56

4.1 Cấu trúc của một quy tắc truy cập đặc tả chính sách hệ thống 74

4.2 Truy vấn SQL lấy thông tin vai trò - người dùng trong cơ sở dữ liệu của hệ thống quản lý hồ sơ y tế 79

5.1 Cấu trúc tệp đặc tả chính sách ABAC của hệ thống 90

5.2 Đoạn mã biểu diễn chính sách ABAC đã đặc tả 99

5.3 Chính sách ABAC được triển khai 100

5.4 Lễ tân có thể đọc hồ sơ bệnh nhân 101

5.5 Y tá có thể cập nhật hồ sơ bệnh nhân 103

Trang 16

hệ thống Lợi ích của việc sử dụng phần mềm trong thực tế là không thể phủnhận, nó giúp con người tiết kiệm thời gian, tiền bạc và công sức Tuy nhiên,phần mềm hiện nay không chỉ dừng lại ở việc sử dụng trên một máy tính cánhân mà còn chạy trên các hệ thống có kết nối mạng Do đó, các hệ thống phầnmềm, đặc biệt là các hệ thống web luôn tiềm ẩn các nguy cơ bị tấn công an ninh

và khai thác tài nguyên trái phép [99, 102]

Một số lượng lớn các biện pháp, kỹ thuật đã được nghiên cứu ở các giai đoạn

để chống lại các cuộc tấn công và bảo vệ các ứng dụng web [54] Dựa trên nguyêntắc thiết kế và các tính chất an ninh, các kỹ thuật hiện có được chia thành banhóm chính:

(i) Xây dựng các ứng dụng web an toàn để đảm bảo rằng không có lỗ hổngtiềm ẩn nào tồn tại trong các ứng dụng [11, 25, 51, 81, 82, 105] Do đó, tàinguyên của hệ thống được bảo vệ và không bị khai thác trái phép Nhữngnghiên cứu này thường xây dựng các ngôn ngữ lập trình hoặc khung làmviệc mới với cơ chế bảo mật, tự động thực thi các tính chất an ninh mongmuốn Các kỹ thuật này giải quyết các vấn đề bảo mật từ gốc và do đómạnh mẽ nhất Tuy nhiên, chúng phù hợp nhất để phát triển ứng dụngweb mới

(ii) Kiểm chứng các tính chất an ninh mong muốn của ứng dụng web có đượcđảm bảo hay không và xác định các lỗ hổng tiềm ẩn trong ứng dụng [2,

5, 22, 28, 32, 38, 47, 48, 49, 53, 62, 70, 76, 79, 84, 88, 98, 104] Với hướngnghiên cứu này, các kỹ thuật phân tích và kiểm tra chương trình thườngđược áp dụng Cụ thể, phân tích chương trình bao gồm phân tích tĩnh

Trang 17

(kiểm tra/xem xét được thực hiện trên mã nguồn mà không thực thi) vàphân tích động (quan sát hành vi thời gian chạy thông qua thực thi) Tuynhiên, phân tích tĩnh có khả năng trong việc xác định tất cả các lỗ hổngtiềm ẩn nhưng có thể đưa ra các cảnh báo sai Mặt khác, phân tích độngđảm bảo tính đúng đắn của các lỗ hổng được xác định trong không gianđược khám phá, nhưng không thể đảm bảo tính đầy đủ Các kỹ thuật tronghướng này có thể được áp dụng cho cả ứng dụng web mới và cũ.

(iii) Bảo vệ một ứng dụng web có khả năng dễ bị tấn công khỏi bị khai thácbằng cách xây dựng một môi trường thực thi an toàn [16, 55, 71, 85] Cácnghiên cứu này thường hướng đến việc sắp đặt các biện pháp bảo vệ (proxy,v.v.) để tách ứng dụng web khỏi các thành phần khác trong hệ sinh tháiweb, hoặc thiết đặt các thành phần cơ sở hạ tầng (thời gian chạy, trìnhduyệt web, v.v.) để giám sát hành vi của nó và xác định/cô lập các khaithác tiềm năng Những kỹ thuật này có thể độc lập với ngôn ngữ lập trìnhhoặc nền tảng, do đó có thể mở rộng quy mô tốt Tuy nhiên, chi phí hiệusuất thời gian chạy cần được xem xét

Bên cạnh đó, theo ISO/IEC 27002:20131, để bảo vệ tài nguyên của các hệthống phần mềm trước các nguy cơ tấn công an ninh, các nhà phát triển thườngphải xây dựng các hệ thống chính sách an ninh cho các phần mềm của họ Một

số biện pháp được thực thi phổ biến gồm: mật mã để đảm bảo sự an toàn vàbảo mật thông tin; điều khiển truy cập để hạn chế các vi phạm truy cập đếncác tài nguyên của hệ thống; truyền thông an toàn để bảo vệ thông tin trướccác nguy cơ đánh chặn hoặc thay thế làm rò rỉ hoặc sai lệch thông tin trong quátrình gửi nhận Trong thực tế, điều khiển truy cập là một biện pháp cần đượcthực hiện để đảm bảo tính bảo mật, tính toàn vẹn và tính sẵn sàng của các hệthống phần mềm [101] Tuy nhiên, việc triển khai chính sách điều khiển truycập ở mỗi giai đoạn phát triển phần mềm luôn có khả năng tiềm ẩn các lỗ hổng

an ninh Một trong các nguyên nhân dẫn đến các lỗ hổng an ninh là việc khôngtuân thủ hoặc bỏ sót các yêu cầu an ninh Sự không tuân thủ đơn giản nhất

có thể là một lỗi hoặc thiếu sót trong lập trình Điều này rất dễ xảy ra, bởi vìtại giai đoạn lập trình, một hệ thống phần mềm thường có sự kết hợp phức tạp

từ nhiều thành phần và thư viện, do đó có thể phát sinh các lỗi tiềm ẩn ngoàimong đợi Thêm vào đó, người lập trình có thể không phải là người thiết kế vàtính biểu đạt cao của ngôn ngữ đặc tả trong bản thiết kế cũng có thể dẫn đến

1 https://www.iso.org/standard/54533.html

Trang 18

việc người lập trình hiểu không đầy đủ các yêu cầu đã đặc tả Tất cả những vấn

đề này đều có thể là nguyên nhân dẫn đến việc các hệ thống ứng dụng sẽ khôngtuân thủ các đặc tả của chúng [56, 9] Thực tế cho thấy, phần mềm với quy môcàng lớn thì việc triển khai chính sách điều khiển truy cập càng phức tạp và khảnăng chứa lỗi càng cao

Bởi vậy, quá trình triển khai chính sách truy cập cần phải được tiến hành, ràsoát một cách thận trọng Do đó, việc kiểm chứng chính sách điều khiển truycập giữa triển khai và đặc tả của các hệ thống phần mềm là một nhiệm vụ quantrọng, giúp phát hiện sớm các sai sót, đảm bảo các tính chất an ninh của hệthống và góp phần gia tăng chất lượng của các sản phẩm phần mềm [3, 46].Các nghiên cứu nhằm giải quyết bài toán này được thực hiện rất đa dạng, phứctạp theo nhiều hướng tiếp cận khác nhau, từ việc xây dựng các mô hình, đặc

tả các tính chất an ninh [15, 29, 40] cho đến việc phân tích, thẩm định chínhsách điều khiển truy cập ở nhiều giai đoạn trong tiến trình phát triển phầnmềm [6, 19, 24, 26, 27, 28, 37, 62, 78, 88] Ngoài ra, một số phương pháp cũngxây dựng các công cụ phân tích để phát hiện tự động các lỗ hổng bảo mật từ

mã nguồn, giúp nhà phát triển hệ thống thực hiện các sửa đổi cần thiết trướckhi phần mềm được phát hành [23, 30, 31, 48, 106] Với bài toán kiểm chứngchính sách điều khiển truy cập theo vai trò, các nghiên cứu [6,24, 48, 62, 78, 88]chủ yếu tiến hành kiểm tra phép gán giữa các quyền và các vai trò trong hệthống ở giai đoạn thiết kế hoặc bằng cả kỹ thuật phân tích tĩnh và động từ mãnguồn Trong khi đó, với điều khiển truy cập theo thuộc tính, một số nghiêncứu [11, 28, 37, 51] đã tập trung đặc tả, triển khai, kiểm thử chính sách điềukhiển truy cập của các hệ thống ứng dụng trong thực tế với khung làm việcSpring Security Tuy nhiên, các nghiên cứu này chưa xác minh tính bảo mật,tính toàn vẹn và tính sẵn sàng của chính sách truy cập được triển khai trongứng dụng web chỉ bằng phân tích mã nguồn [75, 107]

Vì vậy, luận án “Một số phương pháp kiểm chứng các chính sáchđiều khiển truy cập cho hệ thống phần mềm” đề ra hai mục tiêu chung

để nghiên cứu: (i) Xây dựng các phương pháp phân tích, biểu diễn chính sáchđiều khiển truy cập từ mã nguồn của các hệ thống web và các thuật toán kiểm tra

sự phù hợp của mô hình biểu diễn chính sách so với đặc tả ; (ii) Phát triển cáccông cụ để hỗ trợ quá trình kiểm chứng tự động Trong khuôn khổ nghiên cứu,luận án tập trung giải quyết bài toán kiểm tra sự phù hợp giữa triển khai và đặc

tả theo hai kịch bản là (i) ứng dụng web có chứa các quy tắc truy cập không có

Trang 19

trong đặc tả và (ii) một số quy tắc truy cập đã đặc tả nhưng không được triểnkhai trong ứng dụng web Trường hợp vi phạm thứ nhất được hiểu tương đương

là người dùng có thừa các chức năng trong hệ thống ứng dụng Điều này dẫnđến việc người dùng có thể thực hiện nhiều thao tác với tài nguyên hơn so vớiquy định của tổ chức Trường hợp vi phạm thứ hai xảy ra khi người dùng không

có đủ chức năng trong hệ thống ứng dụng để thực hiện các công việc được giao.Trong hai trường hợp vi phạm truy cập kể trên, trường hợp đầu có ảnh hưởngnghiêm trọng đến tài nguyên của hệ thống Bởi vì, khi đó tính bảo mật, tínhtoàn vẹn của hệ thống sẽ không được đảm bảo Ở trường hợp vi phạm thứ hai,tuy không dẫn đến nguy cơ rò rỉ hoặc làm sai lệch tài nguyên của hệ thống,nhưng khi đó người dùng không hoàn thành được các công việc được giao theoquy định Do đó, kiểu vi phạm này sẽ làm mất tính sẵn sàng của hệ thống

Để giải quyết bài toán này, luận án giả sử rằng chính sách điều khiển truycập của hệ thống đã được đặc tả nhất quán và đầy đủ với các yêu cầu của các

tổ chức Các phương pháp chính được sử dụng trong quá trình thực hiện luận

án là phân tích mã nguồn, mô hình hóa và so sánh Ngoài mục đích kiểm tra sựphù hợp của chính sách truy cập được triển khai và đặc tả, các phương pháp đềxuất của luận án còn cung cấp các thông tin về các quy tắc truy cập đã triểnkhai không chính xác (nếu có) để giúp các nhà lập trình có thể lần vết và thựchiện các điều chỉnh kịp thời

Đối tượng nghiên cứu của luận án là chính sách điều khiển truy cập của hệthống web Cụ thể là chính sách điều khiển truy cập theo vai trò và chính sáchđiều khiển truy cập theo thuộc tính Đồng thời, luận án quan tâm đến các môhình biểu diễn, đặc tả chính sách và các phương pháp triển khai chính sách trong

hệ thống ứng dụng Từ đó, mã nguồn của ứng dụng được phân tích, tổng hợp

và kiểm chứng

1.2 Nội dung nghiên cứu

Kiểm soát truy cập đã được chứng minh trong thực tiễn là một trong những

kỹ thuật hiệu quả để ngăn chặn các vi phạm truy cập nhằm đảm bảo các tínhbảo mật, tính toàn vẹn và tính sẵn sàng của các hệ thống phần mềm Trong thực

tế, có nhiều mô hình kiểm soát truy cập đã được đề xuất [50, 83, 101] nhưngđiều khiển truy cập theo vai trò (RBAC) và điều khiển truy cập theo thuộc tính(ABAC) là hai mô hình được triển khai phổ biến và hiệu quả trong các hệ thốngứng dụng [44] Tuy nhiên, việc đảm bảo tính chính xác của những chính sách

Trang 20

điều khiển truy cập này được triển khai trong các hệ thống ứng dụng ở giai đoạnlập trình luôn là một thách thức lớn đối với các nhà phát triển phần mềm.Bên cạnh đó, với nhiều thư viện được tích hợp để hỗ trợ cho việc triển khaicác chính sách điều khiển truy cập được an toàn, ngôn ngữ lập trình Java cũngđược các nhà lập trình thường lựa chọn để phát triển các sản phẩm của họ Khi

đó, chính sách điều khiển truy cập của hệ thống có thể được triển khai theophương pháp an ninh lập trình và/hoặc an ninh khai báo theo kiến trúc MVC,khung làm việc Spring Security Vì thế, phạm vi nghiên cứu của luận án là các

hệ thống web được phát triển bởi JavaEE theo kiến trúc MVC, khung làm việcSpring Security Để hoàn thành các mục tiêu đã đề ra, luận án tập trung nghiêncứu các nội dung chính sau:

ˆ Nghiên cứu các mô hình biểu diễn các chính sách điều khiển truy cập của

hệ thống phần mềm: điều khiển truy cập theo vai trò, ngôn ngữ mô hìnhhóa chính sách an ninh thống nhất (SecureUML), điều khiển truy cập theothuộc tính

ˆ Nghiên cứu các phương pháp an ninh lập trình, an ninh khai báo để triểnkhai chính sách RBAC, ABAC của các hệ thống web theo mô hình kiếntrúc MVC, khung làm việc Spring Security

ˆ Đề xuất các phương pháp phân tích mã nguồn, biểu diễn chính sách điềukhiển truy cập của hệ thống web

ˆ Đề xuất các thuật toán kiểm tra sự phù hợp của mô hình chính sách điềukhiển truy cập của hệ thống web và đặc tả

ˆ Cài đặt các công cụ theo các phương pháp đã đề xuất để hỗ trợ quá trìnhkiểm chứng tự động

đó kết hợp với thành phần Controller và V iew để xây dựng đồ thị khai

Trang 21

thác tài nguyên Các thông tin cốt lõi của chính sách điều khiển truy cập

có trong đồ thị sẽ được trích xuất thành ma trận kiểm soát truy cập theovai trò Một thuật toán được giới thiệu nhằm phát hiện những quy tắctruy cập được triển khai không chính xác trong ứng dụng web Công cụCheckingRBAC đã được xây dựng để hỗ trợ quá trình kiểm chứng theophương pháp đề xuất

(ii) Đề xuất phương pháp kiểm chứng chính sách RBAC kết hợp ràng buộc cấpquyền triển khai theo phương pháp an ninh khai báo Chính sách truy cậpcủa ứng dụng web được kiểm tra thông qua việc truy vấn cơ sở dữ liệu vàphân tích các tệp cấu hình chính sách điều khiển truy cập Một cây phântích truy cập theo vai trò được đề xuất để biểu diễn các quy tắc cấp quyềntheo vai trò và các ràng buộc cấp quyền của ứng dụng web Hai thuật toánđược đề xuất để phát hiện các phép gán đã triển khai không phù hợp vớiđặc tả Phương pháp đề xuất đã được triển khai thành công cụ tên là VeRA

Các kết quả nghiên cứu của luận án góp phần bổ sung và hoàn thiện cácphương pháp phân tích, biểu diễn và kiểm tra các chính sách điều khiển truycập của các hệ thống web Bên cạnh đó, các công cụ kiểm chứng tự động đượcphát triển từ các phương pháp đề xuất trong luận án cũng đã tiến hành một sốthực nghiệm với hệ thống quản lý hồ sơ y tế Bước đầu, các công cụ cho các kếtquả kiểm chứng theo đúng như dự kiến

1.4 Cấu trúc luận án

Luận án “Một số phương pháp kiểm chứng các chính sách điều khiển truy cậpcho hệ thống phần mềm” bao gồm 6 chương Trong đó, Chương 1 Giới thiệu

Trang 22

trình bày về lý do thực hiện đề tài, đối tượng, phạm vi, nội dung nghiên cứu,các đóng góp và cấu trúc của luận án Các chương tiếp theo của luận án được

tổ chức như Hình 1.1 và có nội dung lần lượt như sau:

Chương 4:

- Chính sách RBAC + ràng buộc cấp quyền,

- Triển khai theo phương pháp an ninh khai báo,

- Kiến trúc Spring Security

Mục tiêu: Phát hiện các phép

gán người dùng – vai trò, vai trò – quyền được triển khai không chính xác

Chương 6:

Kết luận

Đề xuất các phương pháp kiểm chứng:

Hình 1.1: Cấu trúc của luận án

Chương 2Kiến thức cơ sở trình bày về các kiến thức nền tảng được sử dụngtrong các chương tiếp theo Mở đầu của chương là một số tính chất an ninh củaphần mềm, chính sách điều khiển truy cập Ở mục kế tiếp, luận án trình bày

về một số mô hình phổ biến được sử dụng để biểu diễn chính sách điều khiểntruy cập của các hệ thống phần mềm Các phương pháp triển khai mã an ninhtruy cập và một số kiến trúc thiết kế phần mềm trong JavaEE được mô tả trongMục2.3 Cuối cùng, Mục2.4 giới thiệu một số phương pháp phân tích mã nguồn

và biểu diễn chương trình phần mềm

Chương 3 Phương pháp kiểm chứng chính sách RBAC triển khai theo phươngpháp an ninh lập trình, đầu tiên của chương này sẽ trình bày các bước phântích mã nguồn để xây dựng danh sách các quyền, đồ thị khai thác tài nguyên và

ma trận kiểm soát truy cập theo vai trò của các ứng dụng web Tiếp theo, haithuật toán được đề xuất để xây dựng ma trận kiểm soát truy cập theo vai trò

từ đồ thị khai thác tài nguyên và kiểm tra sự phù hợp của chính sách điều khiểntruy cập trong ứng dụng web và đặc tả Cuối cùng, một công cụ kiểm chứng tên

Trang 23

là CheckingRBAC được xây dựng theo phương pháp đề xuất và tiến hành thựcnghiệm với hệ thống quản lý hồ sơ y tế.

Chương 4 Phương pháp kiểm chứng chính sách RBAC kết hợp ràng buộc cấpquyền triển khai theo phương pháp an ninh khai báo tập trung đề xuất cácphương pháp phân tích cơ sở dữ liệu và mã nguồn của ứng dụng web để phục

vụ cho quá trình kiểm chứng phép gán vai trò - người dùng và phép gán vai trò

- quyền trong chính sách điều khiển truy cập của hệ thống Một cây phân tíchcác quy tắc truy cập theo vai trò được giới thiệu để biểu diễn chính sách cấpquyền theo vai trò trong ứng dụng web Sau đó, hai thuật toán được đề xuất đểphát hiện những phép gán không được triển khai chính xác như trong đặc tả.Công cụ VeRA được phát triển để hỗ trợ quá trình kiểm chứng tự động theophương pháp đề xuất Một số thực nghiệm của công cụ đã được tiến hành vớichính sách điều khiển truy cập của hệ thống quản lý hồ sơ y tế

Chương 5Phương pháp kiểm chứng chính sách điều khiển truy cập theo thuộctính, chương này đề xuất phương pháp phân tích và xây dựng tập quy tắc truycập từ mã nguồn của ứng dụng web Sự phù hợp của chính sách truy cập trongứng dụng web với đặc tả của nó được thực hiện thông qua các định nghĩa hìnhthức và thuật toán để kiểm tra tính bảo mật, tính toàn vẹn và tính sẵn sàng của

hệ thống Phương pháp đề xuất đã được triển khai thành công cụ kiểm chứngAPVer và thực nghiệm với các kịch bản vi phạm tính bảo mật, tính toàn vẹn

và tính sẵn sàng của hệ thống quản lý hồ sơ y tế

Cuối cùng là Chương 6 Kết luận Chương này tiến hành phân tích về các ưu,nhược điểm của từng phương pháp đã đề xuất và so sánh với một số phươngpháp nghiên cứu liên quan Từ đó, luận án thảo luận về các hướng nghiên cứutiếp theo trong tương lai

Trang 24

có được sử dụng trong phân tích chương trình và một số phương pháp biểu diễnchương trình.

2.1 An ninh phần mềm

Phần mềm đang được sử dụng rộng rãi trong nhiều lĩnh vực của đời sống

xã hội, văn hóa, v.v Do đó, chất lượng của phần mềm có ảnh hưởng trực tiếphoặc/và gián tiếp đến người sử dụng Bên cạnh những lợi ích mà phần mềm manglại, thì cũng xuất hiện nhiều vấn đề vi phạm truy cập tài nguyên làm ảnh hưởngđến chất lượng phần mềm và người dùng trong hệ thống [39,60,91,99,100,102].Một số sự cố an ninh phổ biến hay được nhắc đến là thất thoát hoặc làm sailệch các thông tin riêng tư, quan trọng do hệ thống quản lý

Trong nghiên cứu [39], năm 2013, tập đoàn Target Corporation của Mỹ đãphát hiện ra thông tin thẻ ghi nợ và thẻ tín dụng cũng như thông tin địa chỉ,thư điện tử và số điện thoại của khoảng 70 triệu khách hàng đã bị xâm phạm.Chi phí khắc phục vụ vi phạm này ước tính là 300 triệu đô la Hay vi phạm dữliệu của công ty Sony Pictures Entertainment đã ảnh hưởng đến hơn 3.000 máytính khi bị phá hủy dữ liệu và phần mềm khởi động Việc tin tặc xâm phạmmạng PlayStation của Sony vào năm 2011 đã ảnh hưởng đến khoảng 100 triệutài khoản khách hàng và công ty phải đối mặt với chi phí khắc phục ít nhất là

Trang 25

171 triệu đô la Thêm vào đó là vụ gian lận của Sony dẫn đến việc những bộphim chưa được phát hành đã bị chia sẻ Cũng trong nghiên cứu này, với một

số loại hình tổ chức cơ bản thì năm 2015 chứng kiến 24% vi phạm trong cáccông ty công nghệ, 19% trong các tổ chức y tế và 14% trong giải trí Tương tự,năm 2016, những vi phạm từ các tổ chức được báo cáo là công nghệ (21%), y

tế (17%), xã hội (8%) và chính phủ (8%) Theo Viện Tiêu chuẩn và Công nghệQuốc gia của Mỹ (National Institute of Standards and Technology - NIST) năm

2012, các cuộc tấn công an ninh mạng đang gia tăng về số lượng, tính đa dạng,mức độ thiệt hại Trong nghiên cứu của viện Ponemon1 năm 2017 với 419 công

ty trong 13 quốc gia thì trung bình chi phí cho một vi phạm dữ liệu là 3,62 triệu

đô la; 141 đô là là chi phí trung bình cho mỗi bản ghi bị mất hoặc bị đánh cắp;khả năng tái xảy ra vi phạm an ninh trong hai năm tiếp theo là 27,7%

Theo báo cáo về các mối đe dọa an ninh Internet năm 2019 của Symantec2,các kiểu tấn công và vi phạm an ninh ngày càng tinh vi Một số loại phổ biến làFormjacking (một loại mã độc cài vào trang web để lấy cắp thông tin của kháchhàng) hay Ransomware (ngăn chặn người dùng truy cập và sử dụng tài nguyêncủa họ) Trong đó, chiếm đến 56% là các vụ tấn công web Bên cạnh đó, cácnghiên cứu [60, 91] cũng cho thấy số các vi phạm dữ liệu cá nhân trong lĩnh vựcnhư y tế thống kê được là tăng thường xuyên

Thực tế cho thấy, an ninh phần mềm đã trở thành một tiêu chí quan trọngtrong việc đánh giá các hệ thống phần mềm trong giai đoạn hiện nay Để hạnchế các vi phạm an ninh, các nhà phát triển thường phải xây dựng, triển khai

và đảm bảo chính sách an ninh trong các sản phẩm phần mềm của họ nhằm đápứng các yêu cầu an ninh của khách hàng Khi đó, sự phù hợp của chính sách

an ninh được triển khai trong mỗi hệ thống ứng dụng với các yêu cầu của nó sẽđược thể hiện thông qua các tính chất an ninh của phần mềm

2.1.1 Một số tính chất an ninh của phần mềm

Các tính chất an ninh của phần mềm đã được nhiều tổ chức, nhà nghiên cứuxem xét ở nhiều khía cạnh theo từng quan điểm và thời điểm nghiên cứu khácnhau Tuy nhiên, các tính chất an ninh phổ biến nhất được nhắc đến là bộ baC-I-A (Confidentiality - Integrity - Availability) [20, 74] Ba tính chất này xuấthiện sớm nhất năm 1972 trong tài liệu của James P.Anderson’s và được thảo

1 https://www.ponemon.org/library/2017-cost-of-data-breach-study-united-states

2 https://www.symantec.com/security-center/threat-report

Trang 26

luận nhiều trong các nghiên cứu sau đó Trong đó: tính bảo mật (confidentiality)đảm bảo thông tin chỉ có thể truy cập bởi người dùng có quyền; tính toàn vẹn(integrity) bảo vệ tính chính xác và đầy đủ của thông tin và chỉ được sửa đổibởi người có thẩm quyền; tính sẵn sàng (availability) đảm bảo rằng người dùnghợp pháp được truy cập thông tin và các tài sản liên quan khi cần Sau đó, ISO7498-2 đã bổ sung thêm hai tính chất để phù hợp cho mạng truyền thông là tínhxác thực (authentication - khả năng hệ thống xác nhận danh tính của ngườigửi) và tính chống chối bỏ/tính trách nhiệm (nonrepudiation/accountablility -người gửi không thể từ chối những gì họ đã thao tác trong hệ thống) Tiếp theo

đó, Bộ Quốc phòng Mỹ đã bổ sung tính có khả năng kiểm toán (auditability)

để theo dõi tất cả các hành động liên quan đến tài nguyên

Bên cạnh đó, theo nghiên cứu của Mead và các đồng tác giả [65], một số cáctính chất an ninh cốt lõi của phần mềm gồm tính bảo mật (confidentiality), tínhtoàn vẹn (integrity), tính sẵn sàng (availability), tính trách nhiệm (accountabil-ity) và tính chống chối bỏ (non-repudiation) Ngoài ra còn một số tính chất khác

có ảnh hưởng gián tiếp đến vấn đề an ninh phần mềm Tất cả các tính chất nàyđược mô tả như trong Hình 2.1

Hình 2.1: Một số tính chất an ninh của phần mềm

ˆ Tính bảo mật: phần mềm phải đảm bảo rằng, các tính năng của của phầnmềm, tài sản do phần mềm quản lý và/hoặc nội dung của tài sản sẽ đượcche giấu hoặc ẩn bởi các thực thể trái phép nhưng phải sẵn sàng cho cácthực thể hợp pháp Điều này còn phải thích hợp cả với các trường hợp phầnmềm nguồn mở

ˆ Tính toàn vẹn: Phần mềm và các tài sản mà nó quản lý phải có tính bền

và phục hồi đối với các tấn công an ninh nhằm sửa đổi trái phép mã nguồn,

Trang 27

tài sản nó quản lý, cấu hình của các thực thể hợp pháp, hoặc bất cứ sửa đổinào khác từ những thực thể bất hợp pháp Những sửa đổi có thể gồm việcghi đè, làm hỏng, giả mạo, phá hoại, chèn (gồm cả mã độc) hoặc xóa Tínhtoàn vẹn phải bảo toàn cả trong khi thực thi và phát triển phần mềm.

ˆ Tính sẵn sàng: Phần mềm phải hoạt động và có thể truy cập được như

dự định bởi những người dùng hợp pháp (con người hoặc tiến trình) bất cứkhi nào nhưng không được thực hiện bởi người dùng trái phép

ˆ Tính trách nhiệm: Tất cả các hành động liên quan đến an ninh của ngườidùng phần mềm phải được ghi lại và theo dõi Việc theo dõi này có thểtrong và sau khi các hành động xảy ra Do đó, trong chính sách an ninh cho

hệ thống phần mềm nên chỉ ra những hành động được coi là liên quan đến

Một số chuẩn an ninh thường được áp dụng trong quá trình xây dựng chínhsách an ninh của hệ thống phần mềm là ISO/IEC 27002:20133 (cung cấp nhữngkhuyến cáo thực tiễn tốt nhất trong quản lý, an toàn thông tin về cách sử dụngcho những người có trách nhiệm trong việc khởi xướng, thực hiện hay bảo trì các

hệ thống quản lý, an toàn thông tin), ISO/IEC 27034:2011+4 (cung cấp hướngdẫn về an ninh thông tin cho những nhà đặc tả, thiết kế và lập trình, triển khaihoặc sử dụng các hệ thống ứng dụng tránh được các rủi ro an ninh) Trong cácchuẩn này, điều khiển truy cập là một trong các biện pháp cần được tiến hành

3 https://www.iso.org/standard/54533.html

4 https://www.iso27001security.com/html/27034.html

Trang 28

trong quá trình phát triển phần mềm để góp phần đảm bảo chính sách an ninhcủa các hệ thống phần mềm.

2.1.2 Chính sách điều khiển truy cập

Theo nghiên cứu của Ravi S Sandhu, Pierangela Samarati năm 1994 và báocáo liên ngành 7316 của NIST [43], điều khiển truy cập có liên quan đến việcxác định các hoạt động được phép của người dùng hợp pháp, làm trung giangiữa người dùng và tài nguyên của hệ thống Trong đó, điều khiển truy cập phụthuộc và cùng tồn tại với các dịch vụ bảo mật khác trong hệ thống máy tính(Hình 2.2) Điều khiển truy cập được thi hành bởi một bộ giám sát tham chiếutrung gian Do đó, nó liên quan đến việc xác định các hoạt động được phép củangười dùng hợp pháp, làm trung gian khi người dùng có các yêu cầu truy cậptới tài nguyên của hệ thống Bộ giám sát tham chiếu sẽ tham khảo cơ sở dữ liệu

ủy quyền để xác định xem liệu người dùng đang cố gắng thực hiện thao tác vớitài nguyên hệ thống có được ủy quyền thực sự hay không Cơ sở dữ liệu nàyđược quản trị bởi nhân viên an ninh của tổ chức Thêm vào đó, hoạt động kiểmtoán có nhiệm vụ lưu giữ hồ sơ về các hoạt động truy cập của người dùng trong

Security

Administrator

Auditing

Hình 2.2: Điều khiển truy cập và một số dịch vụ an ninh

Chính sách điều khiển truy cập bao gồm một số quy tắc điều khiển truy cậpnhằm xác định các điều kiện theo đó quyền truy cập có thể diễn ra [43] Mỗiquy tắc là một biểu thức lôgic của các yếu tố điều khiển truy cập cơ bản nhưchủ thể, hoạt động và đối tượng Các quy tắc điều khiển truy cập có thể được

Trang 29

soạn thảo thông qua giao diện người dùng, được cung cấp bởi một cơ chế như

là ngôn ngữ điều khiển truy cập hoặc các công cụ đồ họa có sự tương tác Cácgiao diện đồ họa có hiệu quả trong việc mô tả một số loại chính sách điều khiểntruy cập nhất định nhưng có hạn chế khi số lượng quan hệ cần thiết để tạo quytắc điều khiển truy cập Ví dụ, một số cơ chế cho phép kế thừa các quyền truycập: nếu người dùng x được gán cho nhóm người dùng A, kế thừa quyền truycập từ nhóm B, thì x tự động thừa hưởng tất cả các quyền của B Mối quan

hệ bắt buộc duy nhất cho việc này là quan hệ được gán của x và A Các cơ chếkhác không có ngữ nghĩa thừa kế từ A đến B có thể được yêu cầu để xác địnhmối quan hệ bổ sung của x và B

Điều khiển truy cập là một biện pháp hiệu quả để đạt được tính bảo mật,tính toàn vẹn và tính sẵn sàng cho các hệ thống phần mềm Có nhiều loại môhình đã được nghiên cứu, đề xuất cho việc thực thi các chính sách điều khiểntruy cập tài nguyên của hệ thống như MAC, DAC, RBAC, ABAC, v.v Mỗi

mô hình đều có những ưu nhược điểm riêng [50, 101, 83] Tuy nhiên, với các tổchức doanh nghiệp vừa và nhỏ thì mô hình RBAC là mô hình linh hoạt, phùhợp được sử dụng phổ biến nhất hiện nay Trong khi đó, với các hệ thống web

có quy mô lớn và có chính sách truy cập phức tạp, mô hình ABAC sẽ đáp ứngtốt hơn các mô hình khác Vì thế, trong mục tiếp theo, luận án sẽ trình bày chitiết về mô hình điều khiển truy cập theo vai trò, ngôn ngữ mô hình hóa chínhsách an ninh thống nhất và mô hình điều khiển truy cập theo thuộc tính Đây

là những mô hình biểu diễn phổ biến, hiệu quả các chính sách điều khiển truycập của các hệ thống web được sử dụng trong các đề xuất của luận án

2.2 Một số mô hình chính sách điều khiển truy cập

2.2.1 Điều khiển truy cập theo vai trò

Điều khiển truy cập theo vai trò (Role-Based Access Control - RBAC) [33, 34]

là mô hình điều khiển truy cập được sử dụng phổ biến, hiệu quả trong các ứngdụng doanh nghiệp Mô hình RBAC cơ bản được mô tả như Hình2.3, gồm nămphần tử là Users, Roles, Permissions, Objects và Operations Trong đó, Usersđược hiểu đơn giản là những người tham gia vào hệ thống Roles đại diện chocác vị trí công việc trong tổ chức nhằm phản ánh trách nhiệm, bổn phận củangười dùng Permissions mô tả các quyền tương ứng của các vai trò trong hệthống Mỗi Permission chỉ ra hành động (Operation) được thực hiện trên tàinguyên cần bảo vệ (Object )

Trang 30

Permission Assignment

User Assignment

Permissions Operations Objects

Role Hierarchy

Hình 2.3: Mô hình RBAC cơ bản

Khái niệm trọng tâm của mô hình RBAC là vai trò Các mối quan hệ cơ bảncủa mô hình là Permission Assignment, User Assignment và Role Hierarchy.Trong mô hình này, một người dùng có thể được gán với nhiều vai trò và mộtvai trò có thể có một số người dùng Mỗi vai trò được gán với một số quyền, vàđược định nghĩa phụ thuộc vào các chính sách của tổ chức Hai nguyên tắc cơbản của RBAC là cấp quyền tối thiểu và phân chia nhiệm vụ Những nguyêntắc này giúp người dùng trong mô hình RBAC chỉ có vừa đủ các vai trò và cácquyền để thực hiện chức trách của họ Sự thừa kế giữa các vai trò được mô tảtrong Role Hierarchy Vai tròr1 thừa kế vai tròr2 nếu vai tròr1 chứa tất cả cácquyền của r2 Trong mô hình RBAC cơ bản, các thành phần và các mối liên hệgiữa chúng được mô tả hình thức như Định nghĩa 2.1 [34]

Định nghĩa 2.1 Mô hình RBAC cơ bản là một bộ có tám thành phần được

ký hiệu là MRBAC = <Users, Roles, Permissions, Operations, Objects, UserAssignment, Permission Assignment, Role Hierarchy> Trong đó:

ˆ Users, Roles, P ermissions, Operations, vàObjectslần lượt là tập những ngườidùng, vai trò, quyền, phép toán, và đối tượng có trong hệ thống

ˆ UserAssignment (UA) ⊆ Users × Roles là phép gán nhiều - nhiều giữa ngườidùng và vai trò

assigned_users(r) = {u ∈ U sers | (u, r) ∈ U A)} là ánh xạ từ một vai trò

r ∈ Roles đến những người dùng của vai trò đó

ˆ P ermissions = 2 Operations×Objects là tập các quyền

ˆ P ermissionAssignment (P A) ⊆ Roles × P ermissions là phép gán nhiều nhiều giữa quyền và vai trò

-assigned_permissions(r) = {p ∈ P ermissions | (r, p) ∈ P A} là ánh xạ từ

một vai trò r ∈ Roles đến các quyền của vai trò đó

Trang 31

ˆ RoleHierarchy (RH) ⊆ Roles × Roles định nghĩa một mối quan hệ thừa kếgiữa các vai trò Vai trò r1 thừa kế (được ký hiệu bởi ) vai trò r2 nếu vaitrò r1 có tất cả các quyền của r2.

r1  r2 → authorized_permissions(r2) ⊆ authorized_permissions(r1) authorized_permissions(r) = {p ∈ P ermissions | (r0 r, (p, r0) ∈ P A} làánh xạ từ vai trò r đến tập quyền của vai trò đó trong phân cấp vai trò.Trong mô hình RBAC, người dùng không được thực hiện các hành động mộtcách trực tiếp đến các tài nguyên của hệ thống mà phải gián tiếp thông qua cácvai trò, để được cấp quyền thực hiện Vì thế một vị trí công việc của người dùnghoặc các quy định của tổ chức có sự thay đổi thì người quản trị hệ thống có thể

dễ dàng thay đổi các vai trò, quyền bằng cách bổ sung hoặc loại bỏ chúng Điềunày làm tăng tính linh hoạt trong việc quản lý chính sách điều khiển truy cậpcủa hệ thống [33, 34]

Ví dụ: Giả sử một hệ thống quản lý hồ sơ y tế (hệ thống này sẽ được sửdụng trong phần thực nghiệm của Chương 3) có ba người dùng là Ann, Tom

và Bob Mỗi người dùng trong hệ thống có thể có các vai trò Bác sĩ (Doctor),

Lễ tân (Receptionist) hoặc Y tá (Nurse) Theo phân công nhiệm vụ của bệnhviện, Tom là y tá, Bob là bác sĩ và Ann là lễ tân Trong hệ thống, Bác sĩ có cácquyền đọc (Read) và cập nhật (Update) các hồ sơ y tế (MedicalRecord), Y tá cóquyền đọc (Read) các hồ sơ y tế và Lễ tân có quyền tạo (Create) các hồ sơ y tế.Khi đó, mô hình RBAC của hệ thống bệnh viện này được định nghĩa hình thức:

MRBAC = <U, R, Prm, Op, Ob, UA, PA, RH>, trong đó:

ˆ U = {Bob, Tom, Ann}

ˆ R = {Doctor, Receptionist, Nurse}

ˆ Op ={Read, Update, Create}

ˆ Ob = {MedicalRecord }

ˆ P rm ={(Read, MedicalRecord ), (Update, MedicalRecord ), (Create, Record )}

Medical-ˆ UA = {(Tom, Nurse), (Bob, Doctor ), (Ann, Receptionist )}

ˆ P A = {(Nurse, (Read, MedicalRecord )),(Doctor, (Read, MedicalRecord )),(Doctor, (Update, MedicalRecord )), (Receptionist, (Create, MedicalRecord ))}

ˆ RH ={∅}

Trang 32

Tuy nhiên, khi bài toán cấp quyền không chỉ phụ thuộc vào vai trò của ngườidùng trong hệ thống mà việc cấp quyền cho người dùng còn phải được thỏa mãnbởi một số ràng buộc khác như thời gian thực hiện, quyền sở hữu tài nguyên thìviệc biểu diễn ràng buộc trong chính sách truy cập của hệ thống với mô hìnhRBAC gặp khó khăn vì mô hình chưa có thành phần để biểu diễn ràng buộccấp quyền Khi đó, chính sách truy cập của hệ thống biểu diễn bằng ngôn ngữ

mô hình hóa chính sách an ninh thống nhất sẽ đầy đủ và hiệu quả

2.2.2 Ngôn ngữ mô hình hóa chính sách an ninh thống nhất

Siêu mô hình SecureUML được mô tả như Hình 2.4, là một ngôn ngữ mô hìnhhóa được kết hợp từ siêu mô hình UML (Unified Modeling Language) và môhình điều khiển truy cập theo vai trò (RBAC) [14, 57,63] Đặc biệt, SecureUMLcung cấp các định nghĩa từ vựng hỗ trợ cho việc đặc tả các ràng buộc cấp quyềntheo các khía cạnh khác nhau của điều khiển truy cập theo vai trò Trong đó,các kiểu siêu mô hình mới U ser, Role, P ermission và các mối liên hệ giữa chúngđược hiểu tương tự như trong mô hình RBAC Các siêu khái niệm khác trong

mô hình được mô tả như sau:

RoleAssignment PermissionAssignment ProtectedObject

0 *

0 1 Containment

0 *

1

1 Inheritance

Hình 2.4: Siêu mô hình SecureUML

ˆ ResourceSetđại diện cho một tập người dùng đã định nghĩa của các phần tử

mô hình được dùng để định nghĩa các quyền và các ràng buộc cấp quyền Bêncạnh đó, các tài nguyên cần bảo vệ được tổng quát hóa thànhM odelElement

ˆ MộtP ermissionkết nối một vai trò và mộtM odelElementhoặcResourceSet

ActionT ype được sử dụng để phân loại các quyền Mỗi ActionT ype đại diện

Trang 33

cho một lớp các phép toán liên quan đến an ninh trên một kiểu tài nguyên

cụ thể cần bảo vệ Ví dụ như một phương thức với các hành động liên quanđến an ninh Execute hay một thuộc tính với hành động Change và Read.Các kiểu hành động cũng có thể đại diện cho các lớp phép toán mang tínhkhái niệm ở một mức trừu tượng cao hơn Một lớp có thể chứa các phươngthức và các thuộc tính ActionT ype được sử dụng để mô tả ngữ nghĩa vàphân loại P ermission

ˆ Một ResourceT ype định nghĩa tất cả các kiểu hành động sẵn có cho mộtkiểu siêu mô hình cụ thể Tập các kiểu tài nguyên, các kiểu hành động và

sự định nghĩa ngữ nghĩa của chúng trên một nền tảng cụ thể xác định môhình kiểu tài nguyên cho nền tảng

ˆ Một AuthorizationConstraint là một phần của chính sách điều khiển truycập của một ứng dụng Nó diễn tả một tiền điều điện cần được thỏa mãntrước khi gọi đến phép toán cho một tài nguyên cụ thể Nó thường phụthuộc vào trạng thái động của tài nguyên, lời gọi hiện tại hoặc môi trường

AuthorizationConstraint xuất phát từ kiểu nòng cốt Constraint của UML.Một ràng buộc được đính kèm trực tiếp hoặc gián tiếp thông qua một quyềnđến một phần tử mô hình cụ thể đại diện cho một tài nguyên được bảo vệ

Ví dụ: Giả sử trong một hệ thống quản lý hồ sơ y tế của một bệnh viện (hệthống này sẽ được sử dụng trong phần thực nghiệm của Chương4), có ba vai tròtrong hệ thống là Doctor, P atient và Receptionist Người dùng trong hệ thốngthao tác với tài nguyên (PatientRecord) thông qua vai trò của họ theo quy tắc:Bệnh nhân chỉ đọc hồ sơ y tế của họ, Bác sĩ có quyền đọc và cập nhật hồ sơbệnh nhân của những bệnh nhân được họ điều trị (một bác sĩ có thể điều trị chonhiều bệnh nhân), Nhân viên lễ tân có quyền tạo hồ sơ y tế Chính sách truycập theo vai trò và các ràng buộc cấp quyền của hệ thống này được mô tả trựcquan như trong Hình 2.5

Dễ thấy rằng, với SecureUML chính sách điều khiển truy cập theo vai trò đãđược mở rộng hơn khi được bổ sung các ràng buộc cấp quyền Tuy nhiên, vớicác hệ thống phần mềm, khi mà tiêu chí cấp quyền cho người dùng không chỉphụ thuộc vào vai trò của họ mà còn phụ thuộc vào các thông tin khác như trình

độ chuyên môn hay địa chỉ vật lý mạng của người dùng, thì việc biểu diễn chínhsách truy cập của hệ thống với SecureUML rất cồng kềnh và phức tạp Hoặc vớinhững hệ thống lớn, có sự liên kết giữa nhiều tổ chức, thì mô hình RBAC khôngthể diễn tả được chính sách điều khiển truy cập của hệ thống Bởi vì, những

Trang 34

- mrID: String

- pID: String

- dID: String

- contents: String

+ getMrID() + getPID() + getDID() + getContents() + setContents()

người dùng của tổ chức liên kết sẽ không truy cập được tới tài nguyên hệ thống

vì họ không có vai trò trong tổ chức đó Trong những trường hợp này, mô hìnhđiều khiển truy cập theo thuộc tính sẽ biểu diễn chính sách điều khiển truy cậpcủa hệ thống hiệu quả và linh hoạt hơn

2.2.3 Điều khiển truy cập theo thuộc tính

Điều khiển truy cập theo thuộc tính (ABAC) [41, 42, 45] là mô hình điềukhiển truy cập rất linh hoạt và hiệu quả Trong đó, quyết định truy cập đốivới tài nguyên của hệ thống được thực hiện dựa trên các thuộc tính của ngườidùng, thuộc tính của đối tượng và thuộc tính của môi trường được yêu cầu.NIST (National Institute of Standards and Technology) định nghĩa ABAC làmột phương thức điều khiển truy cập, trong đó chủ thể yêu cầu thực hiện cácthao tác trên các đối tượng được cấp quyền hoặc từ chối dựa trên các thuộc tínhđược gán của chủ thể, các thuộc tính được gán của đối tượng, các điều kiện môitrường và một bộ chính sách được xác định đối với các thuộc tính và điều kiệnđó

ˆ Các thuộc tính là các thông tin về các đặc điểm của chủ thể, đối tượng hoặcđiều kiện môi trường Chúng được cung cấp bởi một cặp tên - giá trị

Trang 35

ˆ Chủ thể là người dùng hoặc thực thể không phải là người (ví dụ như mộtthiết bị) đưa ra các yêu cầu truy cập để thực hiện các thao tác trên các đốitượng Các chủ thể được gán một hoặc nhiều thuộc tính Đối với nghiêncứu này này, chủ thể và người dùng được hiểu đồng nghĩa.

ˆ Đối tượng được hiểu là các tài nguyên của hệ thống Ví dụ như thiết bị, tệp,bản ghi, bảng, quy trình, chương trình, mạng hoặc miền chứa/nhận thôngtin Nó có thể là thực thể được yêu cầu, cũng như mọi thứ mà một hoạtđộng có thể được thực hiện bởi một chủ thể bao gồm dữ liệu, ứng dụng,dịch vụ, thiết bị và mạng

ˆ Một phép toán là việc thực hiện một hoạt động nào đó theo yêu cầu củamột chủ thể trên một đối tượng Các hoạt động thường bao gồm đọc, viết,chỉnh sửa, xóa, sao chép, thực hiện và sửa đổi

ˆ Chính sách là sự thể hiện của các quy tắc hoặc các mối quan hệ giúp xácđịnh một yêu cầu truy cập có nên được phép hay không, với các giá trị củacác thuộc tính của chủ thể, đối tượng và có thể cả các điều kiện môi trường

ˆ Điều kiện môi trường là bối cảnh hoạt động hoặc tình huống, trong đó yêucầu truy cập xảy ra Điều kiện môi trường là đặc điểm môi trường độc lậpvới chủ thể, đối tượng và có thể bao gồm thời gian hiện tại, ngày trongtuần, vị trí của người dùng hoặc mức độ đe dọa hiện tại

Cơ chế ABAC được mô tả trong Hình 2.6 Trong đó: điểm thực thi chính sách(Policy Enforcement Point - PEP ) là nơi thực thi quyết định ủy quyền để đáp

(PDP)

Subject Attribute

Object Attribute Object

Hình 2.6: Cơ chế điều khiển truy cập theo thuộc tính

Trang 36

ứng các yêu cầu từ các chủ thể; điểm quyết định chính sách (Policy DecisionPoint - PDP ) chịu trách nhiệm đánh giá các yêu cầu của các chủ thể theo cácthuộc tính của chủ thể, các thuộc tính của đối tượng và điều kiện môi trườngcùng chính sách hiện hành để đưa ra quyết định cấp phép hoặc từ chối yêu cầucủa chủ thể Các thành phần và chính sách cấp quyền trong mô hình ABACđược mô tả hình thức như Định nghĩa 2.2.

Định nghĩa 2.2 Mô hình ABAC là một bộ có tám thành phần MABAC =

hS,RS,E,As,Ars,Ae,OP,Pi Trong đó:

1 S, RS và E là tập các chủ thể, tài nguyên và môi trường

2 OP là tập các phép toán có thể được thực hiện trên tài nguyên bởi các chủthể như: create, read, modif y, delete

3 As, Ars, Ae là tập các thuộc tính của chủ thể s, tài nguyên rs và môi trườnge

4 Một quy tắc truy cập R là một hàm Boolean trên tập các thuộc tính của chủthểs ∈ S, phép toánop ∈OP, và tài nguyên rs ∈RS trong môi trườnge ∈E

Lễ tân có quyền tạo hồ sơ y tế cho những bệnh nhân trong bệnh viện của họ

Mỗi bệnh viện thường có nhiều chuyên khoa để điều trị cho nhiều đối tượngbệnh nhân khác nhau như khoa tim mạch, khoa thần kinh, khoa tai mũi họng,v.v Các bác sĩ thường làm việc cho một bệnh viện và chịu trách nhiệm điều trịcho một số bệnh nhân trong khoa họ làm việc Bên cạnh đó, giữa một số bệnh

Trang 37

viện thường có sự kết hợp trong khám và điều trị y khoa bằng các thỏa thuậntrong việc chia sẻ hồ sơ y tế.

Giả sử rằng, mỗi bệnh nhân trong hệ thống chăm sóc sức khỏe này chỉ có một

mã định danh và có thể khám nhiều lần tại cùng hoặc khác bệnh viện trong hệthống liên kết ở các thời điểm khác nhau Tuy nhiên tại một thời điểm, một bệnhnhân chỉ có một hồ sơ bệnh án và được điều trị tại một bệnh viện Các thôngtin liên quan đến bệnh nhân được mô tả trong hồ sơ bệnh nhân (tài nguyên của

hệ thống) Mỗi bác sĩ chỉ làm việc cho một khoa trong một bệnh viện và mộtbác sĩ có thể điều trị cho nhiều bệnh nhân Tất cả người dùng tham gia vào hệthống ứng dụng trong các cơ sở y tế phải tuân thủ chính sách truy cập này Bêncạnh đó, hệ thống ứng dụng minh họa cho bài toán này có sự kết hợp của haibệnh viện A và B Họ có một thỏa thuận hợp tác trong việc chia sẻ thông tin y

tế là “Các bác sĩ có thể đọc các hồ sơ y tế của bệnh nhân mà họ đang điều trị ởcác bệnh viện liên kết (nếu có)”

Áp dụng Định nghĩa2.2, mô hình chính sách ABAC của hệ thống quản lý hồ

sơ y tế M = hS,RS,E,As ,Ars ,Ae ,OP,Pi được trình bày như sau:

ˆ S= {P atients, Doctors, N urses, Receptionists}

ˆ RS= {P atientRecords};

ˆ E= {∅};

ˆ OP= {Create, Read, U pdate, Delete}.

ˆ As = {id, role, department, hospital}

ˆ Ars = {mrId, pId, dId, department, hospital}.

Trang 38

R 5 = (s.role = 0N urse0) ∧ (op = 0Read0) ∧ (rs = 0P atientRecords0) ∧ (s.department = rs.department) ∧ (s.hospital = rs.hospital),

R6 = (s.role = 0Receptionist0) ∧ (op =0Create0) ∧ (rs =0P atientRecords0) ∧ (s.hospital = rs.hospital)

Điều khiển truy cập theo thuộc tính (ABAC) là một thế hệ kỹ thuật điềukhiển truy cập mới, được ra đời trong những năm gần đây Mô hình này chophép điều khiển truy cập tài nguyên một cách chi tiết hơn bằng cách sử dụngcác thuộc tính khác nhau của các phần tử ủy quyền, tạo thuận lợi cho sự hợptác chính sách trong một doanh nghiệp lớn hoặc giữa nhiều tổ chức, đồng thờicũng cho phép tách rời các chính sách điều khiển truy cập khỏi lôgic ứng dụng

Do đó, mô hình ABAC đặc biệt hiệu quả và phù hợp với các hệ thống ứng dụnglớn, phức tạp

2.3 Triển khai chính sách điều khiển truy cập trong JavaEEPhương pháp và kiến trúc được sử dụng để triển khai chính sách điều khiểntruy cập đã đặc tả vào các ứng dụng web đóng vai trò quan trọng trong việc

rà soát mã nguồn để phát hiện các sai sót Bởi vì, chúng quyết định vị trí vàngữ nghĩa của các mã an ninh truy cập Bên cạnh đó, có rất nhiều ngôn ngữ lậptrình, kiến trúc thiết kế và thư viện hỗ trợ để lập trình các hệ thống web Tuynhiên, với ưu thế đa nền tảng (multi platform), Java được sử dụng phổ biến đểtạo các ứng dụng desktop, mobile và web Java có khối lượng thư viện hỗ trợlớn giúp việc lập trình trở nên dễ dàng hơn Trong một số thống kê, ngôn ngữlập trình Java là một trong những ngôn ngữ phổ biến nhất để phát triển cácsản phẩm phần mềm [21] Do đó, mục này sẽ trình bày về phương pháp an ninhlập trình và an ninh khai báo, kiến trúc MVC và Spring Security được sử dụngtrong các đề xuất của luận án

2.3.1 An ninh truy cập trong JavaEE

Các tài nguyên cần được bảo vệ của các hệ thống phần mềm thường đượclưu trữ trong các hệ thống cơ sở dữ liệu Vì thế, có ba yếu tố đe dọa đến sự antoàn của hệ thống cơ sở dữ liệu là sự không an toàn của nơi đặt cơ sở dữ liệu,

sử dụng trái phép các chức năng của ứng dụng để thực hiện các thao tác với cơ

sở dữ liệu nhằm sao chép, thay đổi các tài nguyên trong cơ sở dữ liệu và điểmyếu của hệ quản trị cơ sở dữ liệu [59] Để bảo vệ hệ thống cơ sở dữ liệu khỏi cácmối đe dọa trên, các nhà phát triển có thể sử dụng các phương pháp như chọn

Trang 39

nơi an toàn để đặt hệ thống cơ sở dữ liệu, dùng mã (code) để điều khiển truycập đến cơ sở dữ liệu, hoặc mã hóa dữ liệu để tránh rò rỉ thông tin.

An ninh với mã truy cập (code access security) là một giải pháp quan trọngtrong các hệ thống cơ sở dữ liệu Bởi vì, một số vấn đề có thể xảy ra khi ngườidùng ở máy khách đăng nhập hệ thống bằng cách sử dụng mã được ủy quyền

là mã nguồn phía máy khách có thể không đáng tin cậy, có lỗi hoặc bao gồm

mã độc Với giải pháp này, chính sách an ninh của các ứng dụng JavaEE có thểđược triển khai theo hai phương pháp là An ninh khai báo, An ninh lập trìnhhoặc cả hai

ˆ An ninh khai báo (Declarative Security): thể hiện các yêu cầu an ninhcủa một thành phần ứng dụng bằng các chú thích (annotation) hoặc mãtriển khai (deployment descriptor ) Mã triển khai có thể được biểu diễntrong tệp *.xml ở bên ngoài ứng dụng để đại diện cho cấu trúc an ninh củaứng dụng Cấu trúc này bao gồm các thông tin an ninh như vai trò, điềukhiển truy cập và các yêu cầu xác thực Các chú thích được sử dụng để xácđịnh thông tin an ninh trong một tệp tin chứa lớp (file class) Chúng có thểđược sử dụng hoặc ghi đè (overwritten) bởi các mã triển khai Để triển khaitheo cách này, người lập trình thường sử dụng các khung làm việc được tíchhợp thêm trong các ngôn ngữ lập trình Các khung làm việc này đã đượcxác minh về tính chính xác, đúng đắn và dễ sử dụng Tuy nhiên nó khônggiải quyết được tất cả mọi nhu cầu về an ninh thực tế Với nền tảng Java,Spring Security là một trong những khung làm việc cung cấp các tính năngxác thực, ủy quyền và các tính năng an ninh khác cho các ứng dụng doanhnghiệp

ˆ An ninh lập trình (Programmatic Security): được nhúng trong một ứngdụng và được sử dụng để đưa ra quyết định an ninh trong trường hợp anninh khai báo không đủ để mô tả các mô hình chính sách an ninh của hệthống Phương pháp này được sử dụng thông qua ngữ nghĩa của ngôn ngữlập trình Tuy nhiên, cách triển khai này thường phức tạp hơn việc sử dụngcác chú thích như trong an ninh khai báo nhưng nó đáp ứng được mọi yêucầu về an ninh

2.3.2 Một số kiến trúc thiết kế phần mềm trong JavaEE

Hiện có nhiều ngôn ngữ lập trình khác nhau được sử dụng để triển khai cácứng dụng web cho các tổ chức như Java, PHP, HTML, v.v Trong thực tế, Java

Trang 40

là một ngôn ngữ mang lại nhiều lợi ích cho các nhà phát triển Một trong nhữngtính năng quan trọng là tính độc lập nền tảng giúp tiết kiệm nhiều thời gian

và công sức Các ứng dụng được viết bởi Java có thể chạy tự động và linh hoạttrên nhiều hệ điều hành hoặc các thiết bị Ngoài ra, ngôn ngữ Java còn có mức

độ bảo mật cao và được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau [12].Thêm vào đó là có nhiều thư viện bên thứ ba cung cấp các dịch vụ hữu hiệutrong quá trình xây dựng, phát triển và phân tích phần mềm

2.3.2.1 Kiến trúc Model-View-Controller

Model-View-Controller (MVC) được giới thiệu lần đầu tiên trong Smalltalk’80bởi Krasner và Pope Kiến trúc MVC [77, 90] là một mẫu thiết kế phần mềmđược sử dụng phổ biến khi phát triển các ứng dụng web với nhiều ngôn ngữ khácnhau (Hình 2.7 mô tả kiến trúc MVC với JavaEE) Những ứng dụng được thiết

kế theo kiến trúc MVC có khả năng tái sử dụng mã và phát triển song song mộtcách hiệu quả Mục đích của mẫu thiết kế phần mềm này là đạt được sự phântách giữa ba thành phần Model, View và Controller của một ứng dụng bất kỳ

Hình 2.7: Kiến trúc MVC trong JavaEE

ˆ Model mô tả các bản ghi cơ sở dữ liệu, quản lý dữ liệu ứng dụng Về cơ bản

nó chứa dữ liệu ứng dụng, định nghĩa lôgic, đặc tả chức năng Model có thể

là một đối tượng đơn lẻ hoặc là một số thành phần của các đối tượng quản

lý dữ liệu và cho phép giao tiếp cơ sở dữ liệu Trong các ứng dụng, Model

là các lớp ∗.java chứa các phương thức kết nối với cơ sở dữ liệu và tươngtác với nguồn dữ liệu

ˆ View gồm các mã như là ∗.jsp chịu trách nhiệm hiển thị các kết quả của dữliệu được chứa trong Model dưới dạng giao diện đồ họa của người dùng Nóquy định dạng thức dữ liệu được hiển thị và giao tiếp với Controller Thêmvào đó, nó cũng cung cấp cách thức để tập hợp dữ liệu từ đầu vào

Ngày đăng: 01/04/2021, 16:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Abdallah, A.E., Khayat, E.J.: A formal model for parameterized role-based access control. In: IFIP World Computer Congress, TC 1. pp. 233–246.Springer (2004) Sách, tạp chí
Tiêu đề: A formal model for parameterized role-based access control
Tác giả: Abdallah, A.E., Khayat, E.J
Nhà XB: Springer
Năm: 2004
[3] Alalfi, M.H., Cordy, J.R., Dean, T.R.: A survey of analysis models and methods in website verification and testing. In: International Conference on Web Engineering. pp. 306–311. Springer (2007) Sách, tạp chí
Tiêu đề: A survey of analysis models and methods in website verification and testing
Tác giả: Alalfi, M.H., Cordy, J.R., Dean, T.R
Nhà XB: Springer
Năm: 2007
[4] Alalfi, M.H., Cordy, J.R., Dean, T.R.: A verification framework for access control in dynamic web applications. In: Proceedings of the 2nd Canadian Conference on Computer Science and Software Engineering. pp. 109–113.ACM (2009) Sách, tạp chí
Tiêu đề: A verification framework for access control in dynamic web applications
Tác giả: Alalfi, M.H., Cordy, J.R., Dean, T.R
Nhà XB: ACM
Năm: 2009
[6] Alalfi, M.H., Cordy, J.R., Dean, T.R.: Recovering role-based access control security models from dynamic web applications. In: International Confer- ence on Web Engineering. pp. 121–136. Springer (2012) Sách, tạp chí
Tiêu đề: Recovering role-based access control security models from dynamic web applications
Tác giả: Alalfi, M.H., Cordy, J.R., Dean, T.R
Nhà XB: Springer
Năm: 2012
[9] Anand, P.: Overview of root causes of software vulnerabilities-technical and user-side perspectives. In: 2016 International Conference on Software Se- curity and Assurance (ICSSA). pp. 70–74. IEEE (2016) Sách, tạp chí
Tiêu đề: Overview of root causes of software vulnerabilities-technical and user-side perspectives
Tác giả: P. Anand
Nhà XB: IEEE
Năm: 2016
[10] Andronick, J., Chetali, B., Paulin-Mohring, C.: Formal verification of se- curity properties of smart card embedded source code. FM 3582, 302–317 (2005) Sách, tạp chí
Tiêu đề: Formal verification of security properties of smart card embedded source code
Tác giả: Andronick, J., Chetali, B., Paulin-Mohring, C
Nhà XB: FM
Năm: 2005
[11] Armando, A., Carbone, R., Chekole, E.G., Ranise, S.: Attribute based ac- cess control for APIs in spring security. In: Proceedings of the 19th ACM symposium on Access control models and technologies. pp. 85–88. ACM (2014) Sách, tạp chí
Tiêu đề: Attribute based access control for APIs in spring security
Tác giả: Armando, A., Carbone, R., Chekole, E.G., Ranise, S
Nhà XB: ACM
Năm: 2014
[16] Bisht, P., Sistla, A.P., Venkatakrishnan, V.: Automatically preparing safe SQL queries. In: International Conference on Financial Cryptography and Data Security. pp. 272–288. Springer (2010) Sách, tạp chí
Tiêu đề: Automatically preparing safe SQL queries
Tác giả: Bisht, P., Sistla, A.P., Venkatakrishnan, V
Nhà XB: Springer
Năm: 2010
[17] Biswas, P., Sandhu, R., Krishnan, R.: Attribute transformation for attribute-based access control. In: Proceedings of the 2nd ACM Workshop on Attribute-Based Access Control. pp. 1–8 (2017) Sách, tạp chí
Tiêu đề: Attribute transformation for attribute-based access control
Tác giả: P. Biswas, R. Sandhu, R. Krishnan
Nhà XB: Proceedings of the 2nd ACM Workshop on Attribute-Based Access Control
Năm: 2017
[18] Boadu, E.O., Armah, G.K.: Role-Based Access Control (Rbac) Based In Hospital Management. International Journal of Software Engineering and Knowledge Engineering 3, 53–67 (2014) Sách, tạp chí
Tiêu đề: Role-Based Access Control (Rbac) Based In Hospital Management
Tác giả: Boadu, E.O., Armah, G.K
Nhà XB: International Journal of Software Engineering and Knowledge Engineering
Năm: 2014
[19] Castelluccia, D., Mongiello, M., Ruta, M., Totaro, R.: Waver: A model checking-based tool to verify web application design. Electronic notes in theoretical Computer Science 157(1), 61–76 (2006) Sách, tạp chí
Tiêu đề: Waver: A model checking-based tool to verify web application design
Tác giả: Castelluccia, D., Mongiello, M., Ruta, M., Totaro, R
Nhà XB: Electronic notes in theoretical Computer Science
Năm: 2006
[20] Charles, P., Pfleeger, S.L.: Analyzing Computer Security: A Threat/vul- nerability/countermeasure Approach. Prentice Hall (2012) Sách, tạp chí
Tiêu đề: Analyzing Computer Security: A Threat/vulnerability/countermeasure Approach
Tác giả: Charles, P., Pfleeger, S.L
Nhà XB: Prentice Hall
Năm: 2012
[21] Chatley, R., Donaldson, A., Mycroft, A.: The next 7000 programming lan- guages. In: Computing and Software Science, pp. 250–282. Springer (2019) [22] Chaudhuri, A., Foster, J.S.: Symbolic security analysis of ruby-on-rails web applications. In: Proceedings of the 17th ACM conference on Computer and communications security. pp. 585–594 (2010) Sách, tạp chí
Tiêu đề: The next 7000 programming languages
Tác giả: Chatley, R., Donaldson, A., Mycroft, A
Nhà XB: Springer
Năm: 2019
[23] Chen, H., Wagner, D.: MOPS: an infrastructure for examining security properties of software. In: Proceedings of the 9th ACM conference on Com- puter and communications security. pp. 235–244. ACM (2002) Sách, tạp chí
Tiêu đề: MOPS: an infrastructure for examining security properties of software
Tác giả: H. Chen, D. Wagner
Nhà XB: ACM
Năm: 2002
[24] Choi, E.H., Watanabe, H.: Model checking class specifications for web ap- plications. In: Software Engineering Conference, 2005. APSEC’05. 12th Asia-Pacific. pp. 9–pp. IEEE (2005) Sách, tạp chí
Tiêu đề: Model checking class specifications for web applications
Tác giả: E.H. Choi, H. Watanabe
Nhà XB: IEEE
Năm: 2005
[25] Chong, S., Vikram, K., Myers, A.C., et al.: SIF: Enforcing Confidentiality and Integrity in Web Applications. In: USENIX Security Symposium. pp.1–16 (2007) Sách, tạp chí
Tiêu đề: SIF: Enforcing Confidentiality and Integrity in Web Applications
Tác giả: Chong, S., Vikram, K., Myers, A.C
Nhà XB: USENIX Security Symposium
Năm: 2007
[26] Di Sciascio, E., Donini, F.M., Mongiello, M., Piscitelli, G.: AnWeb: a sys- tem for automatic support to web application verification. In: Proceedings of the 14th international conference on Software engineering and knowledge engineering. pp. 609–616. ACM (2002) Sách, tạp chí
Tiêu đề: Proceedings of the 14th international conference on Software engineering and knowledge engineering
Tác giả: Di Sciascio, E., Donini, F.M., Mongiello, M., Piscitelli, G
Nhà XB: ACM
Năm: 2002
[30] D’Souza, D., Kim, Y.P., Kral, T., Ranade, T., Sasalatti, S.: Tool evaluation report: Fortify (2014) Sách, tạp chí
Tiêu đề: Tool evaluation report: Fortify
Tác giả: D’Souza, D., Kim, Y.P., Kral, T., Ranade, T., Sasalatti, S
Năm: 2014
[31] Evans, D., Larochelle, D.: Improving security using extensible lightweight static analysis. IEEE software 19(1), 42–51 (2002) Sách, tạp chí
Tiêu đề: Improving security using extensible lightweight static analysis
Tác giả: D. Evans, D. Larochelle
Nhà XB: IEEE Software
Năm: 2002
[37] Gouglidis, A., Hu, V.C., Busby, J.S., Hutchison, D.: Verification of re- silience policies that assist attribute based access control. In: Proceedings of the 2nd ACM Workshop on Attribute-Based Access Control. pp. 43–52 (2017) Sách, tạp chí
Tiêu đề: Verification of resilience policies that assist attribute based access control
Tác giả: Gouglidis, A., Hu, V.C., Busby, J.S., Hutchison, D
Nhà XB: Proceedings of the 2nd ACM Workshop on Attribute-Based Access Control
Năm: 2017

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w