Tải bản đầy đủ (.pdf) (137 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.68 MB, 137 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜ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


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜ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


Lời cam đoan
Tôi xin cam đoan 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” là cơng trình
nghiê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ình
nà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ên
quan ở trong nước và quốc tế. Ngoại trừ các tài liệu tham khảo này, luận
án hồn tồ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 hồ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ọc
Công nghệ, Đại học Quốc gia Hà Nội.

Tác giả:

Hà Nội:

i


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ời
gian 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 ích
cho 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à Ban
Giám hiệu trường Đại học Công nghệ đã tạo điều kiện thuận lợi cho tơi trong
suốt q 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ên
quan 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ệp
trong Bộ môn Tin học, Trường Đại học Y Dược Hải Phòng đã giúp đỡ, động
viên và sát cánh bên tơi trong suốt q 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ên
cứ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ôi
luô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

ii


Tóm tắt
Các hệ thống phần mềm hiện được sử dụng sâu rộng trong hầu hết mọi lĩnh
vực. Bên cạnh những lợi ích mà phần mềm mang lại cho con người thì các vấn
đề vi phạm an ninh phần mềm cũng xuất hiện ngày càng đa dạng và phức tạp,
đặc biệt là với các hệ thống web. Trong thực tế, điều khiển truy cập là một trong

những biện pháp hiệu quả để thực thi chính sách an ninh của các hệ thống phần
mềm nhằm ngăn chặn các vi phạm truy cập. Tuy nhiên, q trình triển khai
chính sách điều khiển truy cập của các hệ thống ứng dụng luôn tiềm ẩn các
lỗi, nhất là ở giai đoạn lập trình. Nếu những lỗi này được phát hiện càng muộn
thì chi phí sửa chữa hệ thống càng lớn và hậu quả càng phức tạp. Đây cũng là
vấn đề luôn được quan tâm bởi cả cộng đồng phát triển phần mềm. Chính vì
thế, trong quá trình xây dựng và phát triển phần mềm, việc kiểm chứng từ mã
nguồn của ứng dụng để đảm bảo chính sách điều khiển truy cập được triển khai
chính xác ở giai đoạn lập trình sẽ mang lại hiệu quả kinh tế và gia tăng chất
lượng của phần mềm.
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ựng
bở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ập
theo thuộc tính được triển khai theo phương pháp an ninh lập trình, an ninh
khai 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 vai
trị triển khai theo phương pháp an ninh lập trình. Chính sách điều khiển
truy cập theo vai trò của ứng dụng web được trích rút thơng qua việc phân
tí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 sốt truy cập tài ngun
theo vai trị được giới thiệu để biểu diễn các quy tắc truy cập của hệ thống
web. Từ đó, luận án đề xuất thuật tốn kiểm tra sự phù hợp giữa ma trận
kiể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ình
kiểm chứng theo phương pháp đã đề xuất.
iii



(ii) Đề xuất phương pháp kiểm chứng chính sách điều khiển truy cập theo vai
trò 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. 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ến
hà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ép
gán thứ hai, các quy tắc truy cập của hệ thống web được phân tích và biểu
diễn thành cây phân tích quy tắc truy cập tài ngun theo vai trị. Sau đó,
các thuật tố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ển
khai 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ộc
tí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ếp
theo, 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 tốn
kiểm tra tính bảo mật, tính tồn vẹn và tính sẵn sàng chính sách truy cập
củ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.
Ngồi ra, các cơng cụ phát triển từ các phương pháp đề xuất cũng đã được
tiế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ần
mềm, phân tích tĩnh.

iv


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 . . . . . . . . . . . . . . . . . . . . . . .

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

10
13

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ò . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Ngơn ngữ mơ hình hóa chính sách an ninh thống nhất . . . . . . . . .
2.2.3. Điều khiển truy cập theo thuộc tính . . . . . . . . . . . . . . . . . . . . . . . . . . .

14
14
17
19

2.3. Triển khai chính sách điều khiển truy cập trong JavaEE . . . . . . . . . . .
2.3.1. An ninh truy cập trong JavaEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Một số kiến trúc thiết kế phần mềm trong JavaEE . . . . . . . . . . . . .

23
23
24

2.4. Phân tích và biểu diễn chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Phân tích chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2. Một số phương pháp biểu diễn chương trình . . . . . . . . . . . . . . . . . . .

29
30
34


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

38

v


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 số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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1. Giao diện công cụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2. Thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55
55
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ò . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2. Kiểm tra phép gán vai trò - quyền . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68
71

4.4. Công cụ kiểm chứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1. Kiến trúc của công cụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.2. Giao diện đồ họa của công cụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.3. Thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76
76
77
78

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

81

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

83

vi


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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1. Chính sách ABAC đặc tả của hệ thống . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2. Chính sách ABAC triển khai trong ứng dụng . . . . . . . . . . . . . . . . . .
5.3.3. Các thuật tốn kiểm chứng chính sách ABAC . . . . . . . . . . . . . . . . . .

89
90
91
92

5.4. Công cụ kiểm chứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1. Xây dựng công cụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2. Thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

97
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


vii


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

Từ gốc

Giải nghĩa - Tạm dịch

ABAC

Attribute-Based
Control

Access Điều khiển truy cập dựa trên thuộc
tính

API

Application
Interface

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- Điều khiển truy cập tùy ý
trol

FSA

Finite State Automata

HTML

Hypertext
guage

IEC

International Electrotechni- Uỷ ban kỹ thuật điện quốc tế
cal Commission

ISO

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


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ển

NIST

National Institute of Stan- Viện Tiêu chuẩn và Kĩ thuật Quốc

Programming Giao diện lập trình ứng dụng

Markup

Ơtơmat hữu hạn trạng thái
Lan- Ngôn ngữ đánh dấu siêu văn bản

dards and Technology

gia 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ình

PHP

Hypertext Preprocessor

Mộ xử lý siêu văn bản - một ngơn
ngữ lập trình kịch bản

RBAC

Role-Based Access Control


Điều khiển truy cập dựa trên vai trò

OASIS

Organization for the Ad- Tổ chức cải tiến các tiêu chuẩn
vancement of Structured In- thông tin có cấu trúc
formation Standards

viii


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úc

SSL

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ất

URL

Uniform Resource Locator

Định vị tài nguyên thống nhất

XACML


eXtensible Access Control Ngôn ngữ đánh dấu kiểm sốt truy
Markup Language
cập mở rộng

XML

Extensible
guage

Markup

Lan- Ngơn ngữ đánh dấu mở rộng

ix


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

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

2.1
2.2
2.3

Một số tính chất an ninh của phần mềm. . . . . . . . . . . . . . . . . 11
Điều khiển truy cập và một số dịch vụ an ninh. . . . . . . . . . . . . . 13
Mơ hình RBAC cơ bản. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4

2.5

Siêu mô hình SecureUML. . . . . . . . . . . . . . . . . . . . . . .
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. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cơ chế điều khiển truy cập theo thuộc tính. . . . . . . . . . . . .
Kiến trúc MVC trong JavaEE. . . . . . . . . . . . . . . . . . . .
Kiến trúc tổng quát của Spring Security. . . . . . . . . . . . . . .
Kiến trúc Spring triển khai ABAC trong JavaEE. . . . . . . . .
Các hoạt động đảm bảo chính sách an ninh phần mềm. . . . . .
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. . . . . . . . . . . . . . . . . . . . . . . . .
Minh họa đồ thị gọi một chương trình phần mềm. . . . . . . . .
Một số ví dụ đồ thị luồng điều khiển. . . . . . . . . . . . . . . . .

2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13

. . . 17
.
.
.
.
.

.

.
.
.
.
.
.

.
.
.
.
.
.

19
20
25
27
27
29

. . . 35
. . . 37
. . . 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
3.2

3.3
3.4
3.5

4.1
4.2
4.3

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
Giao diện của cơng cụ kiểm chứng chính sách RBAC. . . . . . . . . . 55
Mơ hình triển khai chính sách RBAC trong hệ thống quản lý hồ
sơ y tế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Đồ thị khai thác tài nguyên của hệ thống quản lý hồ sơ y tế. . . . . . 59
Ma trận kiểm sốt truy cập theo vai trị của hệ thống quản lý hồ
sơ y tế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
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
Cấu trúc cây phân tích truy cập theo vai trò. . . . . . . . . . . . . . . 71
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

x


4.4
4.5

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

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
4.7

Cơ sở dữ liệu của phép gán vai trò - người dùng. . . . . . . . . . . . . 79
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
5.2
5.3

Quy trình kiểm chứng chính sách điều khiển truy cập theo thuộc tính.90
Giao diện đồ họa của công cụ APVer. . . . . . . . . . . . . . . . . . . 98
Kết quả kiểm chứng tính bảo mật khi lễ tân có thêm quyền đọc

5.4
5.5

hồ sơ y tế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Kết quả kiểm chứng tính tồn vẹn khi y tá có thêm quyền cập
nhật hồ sơ y tế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Kết quả kiểm chứng tính sẵn sàng khi lễ tân thiếu quyền tạo hồ
sơ y tế. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

xi


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

3.1
3.2

Xây dựng ma trận kiểm soát truy cập theo vai trò. . . . . . . . . . . . 51
Kiểm tra ma trận kiểm sốt truy cập theo vai trị và chính sách
RBAC đã đặc tả. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.1
4.2

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

5.1
5.2

Kiểm tra tính bảo mật chính sách truy cập. . . . . . . . . . . . . . . . 94
Kiểm tra tính tồ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

xii


Danh mục các đặc tả
2.1
2.2
3.1

3.2
4.1
4.2
5.1
5.2
5.3
5.4

Mã nguồn của hàm hasPermission . . . . . . . . . . . . . . . . .
Mã nguồn của hàm checkPermission . . . . . . . . . . . . . . . .
Cấu trúc tệp đặc tả chính sách RBAC của hệ thống . . . . . . .
Đặc tả chính sách RBAC của hệ thống quản lý hồ sơ y tế . . . .
Cấu trúc của một quy tắc truy cập đặc tả chính sách hệ thống.
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ế . . . . . . . . . . . . . . . .
Cấu trúc tệp đặc tả chính sách ABAC của hệ thống . . . . . . .
Đoạn mã biểu diễn chính sách ABAC đã đặc tả. . . . . . . . . .
Chính sách ABAC được triển khai. . . . . . . . . . . . . . . . . .
Lễ tân có thể đọc hồ sơ bệnh nhân. . . . . . . . . . . . . . . . . .

5.5

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

xiii

.
.
.
.

.

.
.
.
.
.

.
.
.
.
.

27
28
45
56
74

.
.
.
.
.

.
.
.
.

.

.
.
.
.
.

79
90
99
100
101


Chương 1
GIỚI THIỆU
1.1. Đặt vấn đề
Các hệ thống phần mềm hiện đang được tích hợp sâu rộng trong nhiều lĩnh
vực của đời sống xã hội. Một số lĩnh vực quan trọng như quân sự, kinh tế, y tế,
giáo dục, v.v cũng đều sử dụng phần mềm trong các công việc của họ. Vì vậy,
chất lượng của phần mềm có ảnh hưởng trực tiếp hoặc gián tiếp đến người dùng
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ần
mề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ên

tắ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 ba
nhó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ổng
tiềm ẩn nào tồn tại trong các ứng dụng [11, 25, 51, 81, 82, 105]. Do đó, tài
nguyên của hệ thống được bảo vệ và không bị khai thác trái phép. Những
nghiên cứu này thường xây dựng các ngơn ngữ lập trình hoặc khung làm
việc mới với cơ chế bảo mật, tự động thực thi các tính chất an ninh mong
muố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ụng
web 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ướng
nghiê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
1


(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). Tuy
nhiên, phân tích tĩnh có khả năng trong việc xác định tất cả các lỗ hổng
tiề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 trong
hướ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ác
bằng cách xây dựng một mơi trường thực thi an tồn [16, 55, 71, 85]. Các
nghiê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ái
web, hoặc thiết đặt các thành phần cơ sở hạ tầng (thời gian chạy, trình

duyệt web, v.v.) để giám sát hành vi của nó và xác định/cơ lập các khai
thá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ình
hoặc nền tảng, do đó có thể mở rộng quy mơ tốt. Tuy nhiên, chi phí hiệu
suấ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ường
phả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 đến
các tài nguyên của hệ thống; truyền thơng an tồn để bảo vệ thơng tin trước
các nguy cơ đánh chặn hoặc thay thế làm rò rỉ hoặc sai lệch thơng tin trong q
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 được
thực hiện để đảm bảo tính bảo mật, tính tồ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 truy
cập ở mỗi giai đoạn phát triển phần mềm ln 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ơng
tn 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 ngồi
mong đợ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

/>
2


việc người lập trình hiểu khơng đầy đủ các 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ông

tuâ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, q 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 truy
cậ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ụ quan
trọ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ức
tạ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ính
sách điều khiển truy cập ở nhiều giai đoạn trong tiến trình phát triển phần
mềm [6, 19, 24, 26, 27, 28, 37, 62, 78, 88]. Ngoài ra, một số phương pháp cũng
xâ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ước
khi phần mềm được phát hành [23, 30, 31, 48, 106]. Với bài tốn kiểm chứng
chí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ên
cứu [11, 28, 37, 51] đã tập trung đặc tả, triển khai, kiểm thử chính sách điều
khiển truy cập của các hệ thống ứng dụng trong thực tế với khung làm việc
Spring 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 tồ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 tố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ác

cơng cụ để hỗ trợ q 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ó
3


trong đặc tả và (ii) một số quy tắc truy cập đã đặc tả nhưng không được triển
khai 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ới
quy đị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ưởng
nghiêm trọng đến tài nguyên của hệ thống. Bởi vì, khi đó tính bảo mật, tính
tồ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 hồn thành được các cơng việc được giao theo
quy đị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 tốn này, luận án giả sử rằng chính sách điều khiển truy
cậ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. Ngồ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ển
khai 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ực
hiệ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ính
bảo mật, tính tồ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 số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
4


điều khiển truy cập này được triển khai trong các hệ thống ứng dụng ở giai đoạn
lập trình ln 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 khai
các chính sách điều khiển truy cập được an tồ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 theo
phươ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ệc
Spring Security. Để hoàn thành các mục tiêu đã đề ra, luận án tập trung nghiên
cứ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ình
hóa chính sách an ninh thống nhất (SecureUML), điều khiển truy cập theo
thuộ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ển
khai chính sách RBAC, ABAC của các hệ thống web theo mơ hình kiến
trú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ều
khiể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ều
khiể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ợ q trình
kiểm chứng tự động.

1.3. Đóng góp của luận án
Sau q trình giải quyết bài tốn với mục tiêu, đối tượng và phương pháp
nghiên cứu đã đề ra, luận án có các đóng góp chính sau đây:
(i) Đề xuất 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. Các phương thức khai thác tài nguyên trong ứng
dụng web được trích rút thành danh sách quyền truy cập tài nguyên. Sau
đó kết hợp với thành phần Controller và V iew để xây dựng đồ thị khai
5


thác tài ngun. 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 sốt truy cập theo
vai trị. Một thuật tốn được giới thiệu nhằm phát hiện những quy tắc
truy 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 theo
phươ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ấp
quyền triển khai theo phương pháp an ninh khai báo. Chính sách truy cập
củ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ân
tích truy cập theo vai trò được đề xuất để biểu diễn các quy tắc cấp quyền
theo 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
để 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ộc
tính. Các quy tắc truy cập của ứng dụng web được phân tích, tổng hợp
và biểu diễn bằng ngơn ngữ biểu thức Spring (SpEL). Thơng qua các định
nghĩa hình thức và các thuật tốn kiểm tra tính bảo mật, tính tồn vẹn và
tính sẵn sàng của chính sách truy cập, sự phù hợp của chính sách ABAC
được triển khai trong ứng web và đặc tả của nó được thực hiện để phát
hiện các quy tắc truy cập được triển khai khơng chính xác. Một cơng cụ
kiểm chứng với tên là APVer đã được phát triển từ phương pháp đã đề
xuất.
Các kết quả nghiên cứu của luận án góp phần bổ sung và hồn thiện các
phươ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 truy
cập của các hệ thống web. Bên cạnh đó, các cơng cụ kiểm chứng tự động được
phá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ết
quả 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ập
cho hệ thống phần mềm” bao gồm 6 chương. Trong đó, Chương 1 Giới thiệu
6



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 2:
Kiến thức cơ sở
Đề xuất các phương pháp kiểm chứng:
Chương 3:
- Chính sách RBAC,
- Triển khai theo
phương pháp an ninh
lập trình,
- Kiến trúc MVC.
Mục tiêu: Phát hiện
các quy tắc truy cập
được triển khai khơng
chính xác.

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 5:

- Chính sách ABAC,
- Triển khai theo phương pháp an
ninh khai báo, an ninh lập trình,
- Kiến trúc Spring Security +
ngơn ngữ biểu thức Spring.
Mục tiêu: Phát hiện các tính chất
an ninh bị vi phạm và các quy tắc
truy cập được triển khai khơng
chính xác.

Chương 6:
Kết luận

Hình 1.1: Cấu trúc của luận án.
Chương 2 Kiến thức cơ sở trình bày về các kiến thức nền tảng được sử dụng
trong các chương tiếp theo. Mở đầu của chương là một số tính chất an ninh của
phầ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ển
truy cập của các hệ thống phần mềm. Các phương pháp triển khai mã an ninh
truy cập và một số kiến trúc thiết kế phần mềm trong JavaEE được mô tả trong
Mục 2.3. Cuối cùng, Mục 2.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ương
phá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ân
tí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 sốt truy cập theo vai trị của các ứng dụng web. Tiếp theo, hai
thuậ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ển
truy 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
7



là CheckingRBAC được xây dựng theo phương pháp đề xuất và tiến hành thực
nghiệ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ấp
quyền triển khai theo phương pháp an ninh khai báo tập trung đề xuất các
phươ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ích
các quy tắc truy cập theo vai trò được giới thiệu để biểu diễn chính sách cấp
quyền theo vai trị trong ứng dụng web. Sau đó, hai thuật tố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 theo
phương pháp đề xuất. Một số thực nghiệm của công cụ đã được tiến hành với
chính sách điều khiển truy cập của hệ thống quản lý hồ sơ y tế.
Chương 5 Phương pháp kiểm chứng chính sách điều khiển truy cập theo thuộc
tí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 truy
cậ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ình
thức và thuật tốn để kiểm tra tính bảo mật, tính tồ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ứng
APVer và thực nghiệm với các kịch bản vi phạm tính bảo mật, tính tồ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ương
pháp nghiên cứu liên quan. Từ đó, luận án thảo luận về các hướng nghiên cứu
tiếp theo trong tương lai.

8



Chương 2
KIẾN THỨC CƠ SỞ
Trong chương này, luận án sẽ trình bày về những kiến thức cơ sở được sử
dụng trong các chương tiếp theo. Ở mục đầu tiên của chương, luận án trình bày
về một số tính chất an ninh và chính sách điều khiển truy cập của các hệ thống
phần mềm. Tiếp theo, Mục 2.2 sẽ giới thiệu về một số mơ hình biểu diễn chính
sách điều khiển truy cập của các hệ thống phần mềm như điều khiển truy cập
theo vai trị (RBAC), ngơn ngữ mơ hình hóa chính sách an ninh thống nhất
(SecureUML) và điều khiển truy cập theo thuộc tính (ABAC). Trong mục tiếp
theo, luận án trình bày về phương pháp triển khai chính sách điều khiển truy
cập trong JavaEE và một số kiến trúc được sử dụng trong quá trình thiết kế
các hệ thống web. Cuối cùng, Mục 2.4 nêu một số phương pháp, cơng cụ hiện
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ễn
chươ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ếp
hoặ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 mang
lạ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 thốt hoặc làm sai
lệ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áy
tí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ạm

mạng PlayStation của Sony vào năm 2011 đã ảnh hưởng đến khoảng 100 triệu
tà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à
9


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ác
cô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ách
hàng) hay Ransomware (ngăn chặn người dùng truy cập và sử dụng tài nguyên
của họ). Trong đó, chiếm đến 56% là các vụ tấn cơng web. Bên cạnh đó, các
nghiê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ực
như 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ọng
trong việc đánh giá các hệ thống phần mềm trong giai đoạn hiện nay. Để hạn
chế 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ứu
xem xét ở nhiều khía cạnh theo từng quan điểm và thời điểm nghiên cứu khác
nhau. Tuy nhiên, các tính chất an ninh phổ biến nhất được nhắc đến là bộ ba
C-I-A (Confidentiality - Integrity - Availability) [20, 74]. Ba tính chất này xuất
hiện sớm nhất năm 1972 trong tài liệu của James P.Anderson’s và được thảo
1
2

/> />
10


×