Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên oracle
Trang 1KHOA AN TOÀN THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
Đề tài :
TÌM HIỂU VỀ AN TOÀN DỰA VÀO NHÃN (OLS)
VÀ CƠ SỞ DỮ LIỆU RIÊNG ẢO (VPD)
Trang 2MỤC LỤC
DANH MỤC BẢNG iv
DANH MỤC HÌNH VẼ vi
DANH MỤC TỪ VIẾT TẮT ix
LỜI NÓI ĐẦU x
CHƯƠNG I: TỔNG QUAN VỀ ORACLE 12
1.1 Cơ sở dữ liệu và tầm quan trọng của cơ sở dữ liệu 12
1.1.1 Định nghĩa cơ sở dữ liệu 12
1.1.2 Định nghĩa hệ quản trị cơ sở dữ liệu 12
1.1.3 Tầm quan trọng của cơ sở dữ liệu 13
1.2 Hệ quản trị cơ sở dữ liệu Oracle 13
1.2.1 Giới thiệu chung 13
1.2.2 Đặc điểm của hệ quản trị cơ sở dữ liệu Oracle 14
1.2.3 Các cơ chế an toàn trong Oracle 14
CHƯƠNG II: CƠ SỞ DỮ LIỆU RIÊNG ẢO (VPD) TRONG ORACLE 18
2.1 Tổng quan về VPD 18
2.1.1 Khái niệm chung về VPD 18
2.1.2 Các ưu điểm của VPD 19
2.2 Một số ngữ cảnh ứng dụng VPD 19
2.2.1 Ngữ cảnh mặc định USERENV 20
2.2.2 Ngữ cảnh cục bộ (Local Context) 21
2.2.3 Ngữ cảnh toàn cục (Global Context) 23
2.3 Các thành phần của chính sách VPD 24
2.3.1 Khởi tạo một chức năng để đưa ra các mệnh đề WHERE linh hoạt24 2.3.2 Thiết lập chính sách để đính kèm chức năng vào đối tượng cần bảo vệ 25
Trang 32.4 Cấu hình một chính sách VPD 25
2.4.1 Giới thiệu về chính sách VPD 25
2.4.2 Gắn một chính sách vào một bảng cơ sở dữ liệu 26
2.4.3 Thực thi các chính sách trên mệnh đề cụ thể kiểu SQL 26
2.4.4 Kiểm soát việc hiển thị các cột dữ liệu với chính sách 27
CHƯƠNG III: AN TOÀN DỰA VÀO NHÃN TRONG ORACLE (OLS) 32
3.1 Tổng quan về OLS 32
3.1.1 Kiến trúc OLS 33
3.1.2 Các tính năng của OLS 33
3.2 Tìm hiểu về nhãn dữ liệu và nhãn người dùng 38
3.2.1 Giới thiệu về an toàn dựa vào nhãn 38
3.2.2 Các thành phần của nhãn 39
3.2.3 Cú pháp nhãn và các kiểu nhãn 46
3.2.4 Kết hợp nhãn dữ liệu và nhãn người dùng 47
3.2.5 Quản lý nhãn 49
3.3 Tìm hiểu về kiểm soát truy cập và các đặc quyền 50
3.3.1 Giới thiệu về dàn xếp truy cập: 50
3.3.2 Tìm hiểu về nhãn phiên và nhãn hàng 51
3.3.3 Tìm hiểu về xác thực người dùng 52
3.3.4 Đánh giá việc dàn xếp truy cập 56
3.3.5 Sử dụng đặc quyền OLS 61
3.3.6 Làm việc với nhiều chính sách OLS 68
3.4 So sánh OLS và VPD 69
3.5 Sử dụng VPD để thi hành chính sách OLS 70
CHƯƠNG IV: TRIỂN KHAI OLS VÀ VPD TRÊN CƠ SỞ DỮ LIỆU ORACLE 72
Trang 44.1 Mô tả bài toán 72
4.2 Sử dụng OLS và VPD trên bảng cơ sở dữ liệu NHANSU 74
4.2.1 Tạo chính sách OLS 74
4.2.2 Định nghĩa các thành phần của nhãn 75
4.2.3 Tạo nhãn dữ liệu và gán nhãn dữ liệu cho các hàng 77
4.2.4 Áp dụng chính sách lên bảng NHANSU 81
4.2.5 Ủy quyền chính sách cho người dùng 83
4.2.6 Sử dụng VPD với chính sách COMPANY để phân quyền trên cột THUONG trong bảng NHANSU 91
4.2.6 Kết quả 93
KẾT LUẬN 98
TÀI LIỆU THAM KHẢO 99
Trang 5DANH MỤC BẢNG
Bảng 3.1 Một chính sách OLS kiểm soát truy cập dữ liệu dựa trên 3
thành phần 39
Bảng 3.2 Thành phần nhãn nhạy cảm 39
Bảng 3.3 Ví dụ về level 41
Bảng 3.4 Các hình thức xác định level 41
Bảng 3.5 Ví dụ về compartment 42
Bảng 3.6 Các định dạng của compartment 42
Bảng 3.7 Ví dụ group 44
Bảng 3.8 Các hình thức xác định của các group 45
Bảng 3.9 Các loại level, compartment, và các group theo ngành 46
Bảng 3.10 Level cho phép theo quy định của quản trị 52
Bảng 3.11 Ví dụ, trong Oracle Enterprise Manager, người quản trị có thể thiết lập mức ủy quyền sau đây cho người dùng ABC 53
Bảng 3.12 Ví dụ, trong Oracle Enterprise Manager, người quản trị có thể thiết lập ủy quyền thành phần sau đây cho người dùng Joe 53
Bảng 3.13 Các thiết lập khi tạo group trong Oracle Enterprise Manager 54
Bảng 3.14 Tính toán nhãn phiên 55
Bảng 3.15 Đặc quyền OLS 62
Bảng 3.16 Các loại đặc quyền 66
Bảng 3.17 So sánh OLS và VPD 70
Bảng 4.1 Các trường trong bảng cơ sở dữ liệu nhân sự công ty Sao Việt73 Bảng 4.2 Bảng cơ sở dữ liệu nhân sự công ty Sao Việt 73
Trang 6Bảng 4.3 Mô tả các nhãn dữ liệu cần tạo 77 Bảng 4.4 Người dùng và nhãn tương ứng 85
Trang 7DANH MỤC HÌNH VẼ
Hình 2.1 Ngữ cảnh ứng dụng lưu trữ thông tin 20
Hình 2.2 Ứng dụng của ngữ cảnh toàn cục trong việc kết hợp ngữ cảnh và kiểm soát dữ liệu trong môi trường bảo mật 23
Hình 3.1 Kiến trúc OLS 33
Hình 3.2 An toàn dựa vào nhãn 34
Hình 3.3 Phân loại dữ liệu với level, compartment và group 40
Hình 3.4 Ma trận nhãn 43
Hình 3.5 Ví dụ group 44
Hình 3.6 Ví dụ về Nhãn dữ liệu và nhãn người dùng 48
Hình 3.7 Tương tác giữa các Compartment trong nhãn 49
Hình 3.8 Mối quan hệ giữa người dùng, dữ liệu, và nhãn 50
Hình 3.9 Thiết lập cấp được ủy quyền trong quản lý doanh nghiệp 53
Hình 3.10 Thiết lập thành phần ủy quyền trong quản lý doanh nghiệp 54 Hình 3.11 Thiết lập group ủy quyền trong quản lý doanh nghiệp 55
Hình 3.12 Thừa kế phân nhóm truy cập đọc / ghi 57
Hình 3.13 Quá trình đánh giá cho truy cập đọc của nhãn 58
Hình 3.14 Quá trình đánh giá truy cập ghi của nhãn 60
Hình 3.15 Quá trình đánh giá nhãn cho truy cập đọc với đặc quyền COMPACCESS 63
Hình 3.16 Quy trình đánh giá nhãn cho truy cập ghi với đặc quyền COMPACCESS 64
Hình 4.1 Giao diện tạo chính sách OLS khi login bằng user LBACSYS 75 Hình 4.2 Tạo chính sách COMPANY với cột rowlabel chứa nhãn trong bảng 75
Hình 4.3 Định nghĩa các level tương ứng với chức vụ của nhân viên 76
Trang 8Hình 4.4 Các thành phần của compartment 76
Hình 4.5 Các thành phần của ba group 76
Hình 4.6 Giao diện tạo nhãn dữ liệu, nhấn Add để tạo nhãn mới 78
Hình 4.7 Các thông tin cần thiết để tạo nhãn: Numeric Tag, Level, Compartments, Groups 78
Hình 4.8 Chọn level tương ứng cho nhãn 78
Hình 4.9 Chọn Compartments 79
Hình 4.10 Chọn Group 79
Hình 4.11 Điền Numeric Tag Nhấn OK để hoàn tất việc tạo nhãn dữ liệu 79
Hình 4.12 Lặp lại quá trình để tạo tất cả nhãn cần thiết 80
Hình 4.13 Áp dụng chính sách lên bảng 81
Hình 4.14 Chọn bảng NHANSU 82
Hình 4.15 Tùy chọn áp dụng chính sách lên bảng và không ẩn cột chính sách 82
Hình 4.16 Áp dụng thành công chính sách lên bảng NHANSU 83
Hình 4.17 Tạo người dùng cơ sở dữ liệu 83
Hình 4.18 Cấp quyền trên bảng NHANSU cho Giám đốc Giám đốc sẽ có quyền Đọc, ghi, sửa, xóa trên bảng 84
Hình 4.19 Cấp quyền trên bảng NHANSU cho Trưởng phòng Trưởng phòng sẽ có quyền Đọc, ghi, sửa trên bảng 84
Hình 4.20 Cấp quyền trên bảng NHANSU cho Nhân viên Nhân viên sẽ có quyền Đọc trên bảng 84
Hình 4.21 Chính sách COMPANY hiện chưa được ủy quyền cho người dùng 85
Hình 4.22 Chọn người dùng để ủy quyền chính sách 86
Hình 4.23 Hoàn thành chọn người dùng Bước này có thể chọn nhiều người dùng cùng lúc để ủy quyền 86
Trang 9Hình 4.24 Cấu hình các thành phần 87
Hình 4.25 Chọn level 87
Hình 4.26 Chọn compartment 87
Hình 4.27 Chọn group 88
Hình 4.28 Hoàn tất chọn bốn level và compartment, group cho user 88
Hình 4.29 Chọn đặc quyền cho người dùng 89
Hình 4.30 Cấu hình tính năng kiểm toán 89
Hình 4.31 Kiểm tra lại các thiết lập, kết thúc quy trình ủy quyền 90
Hình 4.32 Lặp lại quá trình đối với tất cả các user cần thiết 90
Hình 4.33 Select toàn bảng NHANSU bằng user ledinhchinh (Tổng giám đốc) 94
Hình 4.34 Select toàn bảng NHANSU bằng user lyminhnhat (Nhân viên phòng Kế hoạch chi nhánh Phía Nam) 94
Hình 4.35 Khi chưa đăng nhập 95
Hình 4.36 Đăng nhập bằng user ledinhchinh (Tổng giám đốc) 95
Hình 4.37 Đăng nhập bằng user hoanhkhoa (Giám đốc chi nhánh phía Bắc 96
Hình 4.38 Đăng nhập bằng user ngothihoa (trưởng phòng Kế hoạch chi nhánh phía Nam) 96
Hình 4.39 Đăng nhập bằng user duongvanla (nhân viên phòng Kế hoạch chi nhánh Phía Nam) 97
Trang 10DANH MỤC TỪ VIẾT TẮT
Trang 11LỜI NÓI ĐẦU
Khi nói đến nghề quản trị trong lĩnh vực Công nghệ thông tin tại ViệtNam, chúng ta thường liên tưởng đến nghề quản trị Mạng, chỉ khoảng gầnnăm năm trở lại đây thì tại Việt Nam mới hình thành nên một nghề mới, đó lànghề quản trị hệ thống cơ sở dữ liệu, thường gọi là DBA (DatabaseAdministrator) Hiện nay chúng ta có thể đánh giá Oracle là hệ quản trị cơ sở
dữ liệu được các doanh nghiệp ứng dụng nhiều nhất trên thế giới
Đối với một số doanh nghiệp, hiệu quả kinh doanh phụ thuộc hoàn toànvào giá trị thông tin cho nên vấn đề an toàn thông tin được đặt trọng tâm hàngđầu Hiện nay, các doanh nghiệp thường gặp khó khăn hoặc không thể trả lờicác câu hỏi như: Ai đã truy cập đến dữ liệu quan trọng này và vào thời giannào? Ai đã chỉnh sửa thông tin nhạy cảm của khách hàng? Tại sao dữ liệu nàylại bị thay đổi? Hệ thống dữ liệu hiện có bị xâm nhập trái phép hay không?
Để trả lời các câu hỏi này, doanh nghiệp cần thiết phải trang bị giải pháp giámsát đầy đủ và chính xác, đồng thời giải pháp phải đảm bảo không tăng tải vàlàm chậm hệ thống hiện tại Trong một số lĩnh vực kinh doanh nhạy cảm, tính
bí mật của thông cần được bảo đảm tuyệt đối Thông tin cần được giữ bí mật
và nguyên vẹn ngay khi được lưu trên đĩa cứng, và khi được trao đổi vào ratrong mạng cũng phải được đảm bảo an toàn
Điều đó cho thấy tầm quan trọng của việc bảo vệ cơ sở dữ liệu trongmột hệ quản trị cơ sở dữ liệu Dựa trên những lí do đó, em đã chọn đề tài
“Tìm hiểu về an toàn dựa vào nhãn (OLS) và cơ sở dữ liệu riêng ảo (VPD) trên Oracle” cho đồ án của mình
Nội dung đồ án bao gồm bốn chương:
- Chương I: Tổng quan về Oracle
Trong chương này, đồ án nêu lên những khái niệm cơ bản về cơ sở dữliệu và tầm quan trọng của cơ sở dữ liệu Sau đó là phần giới thiệu chung về
hệ quản trị cơ sở dữ liệu Oracle và một vài cơ chế an toàn tiêu biểu
- Chương II: Cơ sở dữ liệu riêng ảo (VPD) trong Oracle
Trang 12Chương thứ hai trình bày tính năng VPD trong cơ sở dữ liệu Oracle.VPD cho phép ta tạo các chính sách bảo mật để điều khiển việc truy cập ởmức hàng, cột VPD mang lại rất nhiều lợi ích trong việc bảo mật sơ sở dữliệu trong hệ quản trị cơ sở dữ liệu Oracle
- Chương III: An toàn dựa vào nhãn (OLS) trong Oracle
OLS được xây dựng trên công nghệ VPD được chuyển giao trong cácphiên bản hệ quản trị cơ sở dữ liệu Oracle Enterprise OLS cung cấp việckiểm soát truy cập bảo mật mức hàng hoạt động bên ngoài các điều khiển truycập cơ bản của cơ sở dữ liệu Oracle
- Chương IV: Triển khai OLS và VPD trên cơ sở dữ liệu giả định
Trong chương cuối cùng, em đưa ra một cơ sở dữ liệu giả định về nhân
sự của một công ty, sau đó ứng dụng OLS và VPD để triền khai phân quyềncho các nhân viên trong công ty khi truy cập vào cơ sở dữ liệu
Do thời gian và kiến thức hạn chế nên đồ án của em không tránh khỏithiếu sót, em rất mong các Thầy Cô cho nhận xét, góp ý để đồ án của em
được hoàn thiện hơn Em xin gửi lời cảm ơn chân thành tới Thạc sỹ Ninh Thị Thanh Tâm, Thạc sỹ Trần Thị Lượng đã động viên, chỉ ra hướng tìm hiểu
và tận tình hướng dẫn em trong quá trình thực hiện đồ án này
Sinh viên thực hiện
Trang 13CHƯƠNG I: TỔNG QUAN VỀ ORACLE
1.1 Cơ sở dữ liệu và tầm quan trọng của cơ sở dữ liệu
1.1.1 Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu là một tập hợp các dữ liệu về một “tổ chức” nào đó (ví dụ
dữ liệu nhân sự công ty), được lưu giữ trong máy tính, được nhiều người sửdụng và được tổ chức theo mô hình dữ liệu
Các tiêu chuẩn của một cơ sở dữ liệu:
- Phản ánh đúng đắn hoạt động của tổ chức
- Không có sự dư thừa thông tin (cùng một thông tin được lưu trữ ởnhiều nơi và một thông tin mang nhiều tên khác nhau) vì nó làm tốn bộ nhớ
và dễ gây ra các thông tin không đúng khi cập nhật dữ liệu
- Đảm bảo an toàn dữ liệu (vì được nhiều người sử dụng)
- Có sự độc lập giữa cơ sở dữ liệu và các chương trình để đảm bảo choviệc bảo trì
- Hiệu quả sử dụng tốt: khai thác trên các máy khác nhau cho kết quảnhư nhau
1.1.2 Định nghĩa hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu là một phần mềm cho phép mô tả, lưu giữ,thao tác và xử lý các dữ liệu trong cơ sở dữ liệu đồng thời phải đảm bảo sự antoàn và bí mật của dữ liệu
Chức năng của một hệ quản trị cơ sở dữ liệu:
- Cho phép tạo ra các cấu trúc để lưu giữ dữ liệu
- Cho phép nhập, lưu giữ, xem, xóa, sửa đổi, chèn các dữ liệu vào cơ sở
Trang 14- Cung cấp các công cụ đảm bảo sự an toàn dữ liệu
1.1.3 Tầm quan trọng của cơ sở dữ liệu
Hầu hết ứng dụng hay các website đều cần phải có cơ sở dữ liệu, để lưutrữ dữ liệu, xử lý thông tin và đưa ra các báo cáo, hỗ trợ tìm kiếm…
Khi dữ liệu trở thành trung tâm của ứng dụng thì cung cấp các chứcnăng tới người dùng phụ thuộc vào khả năng thao tác dữ liệu, vấn đề màngười thiết kế và người xây dựng ứng dụng quan tâm khi sử dụng dữ liệu là:
- Lưu dữ liệu tập trung
- Đảm bảo toàn vẹn dữ liệu
- Đảm bảo khả năng truy xuất đồng thời của nhiều người dùng trên dữliệu
- Đảm bảo thời gian hồi đáp ngắn cho mỗi người dùng
- Bảo mật dữ liệu
- Trao đổi dữ liệu giữa các hệ thống khác nhau
Những vấn đề này được giải quyết dựa vào khả năng của các hệ quảntrị cơ sở dữ liệu và các phần mềm xử lý dữ liệu do hệ quản trị cơ sở dữ liệucung cấp
1.2 Hệ quản trị cơ sở dữ liệu Oracle
1.2.1 Giới thiệu chung
Hệ quản trị cơ sở dữ liệu Oracle là một hệ quản trị cơ sở dữ liệu mạnh
mẽ, được thiết kế để triển khai cho mọi môi trường doanh nghiệp Hệ quản trị
cơ sở dữ liệu Oracle có thể xếp vào vị trí số 1 trên thế giới hiện nay về cả tínhnăng, khả năng lưu trữ và tốc độ thực hiện Việc cài đặt, quản lý rất dễ dàng,các công cụ để phát triển các ứng dụng một cách hoàn thiện và nhanh chóng
Cơ sở dữ liệu Oracle phù hợp cho mọi loại dữ liệu, các ứng dụng và các môitrường khác nhau bao gồm cả windows và linux với chi phí tối thiểu
1.2.2 Đặc điểm của hệ quản trị cơ sở dữ liệu Oracle
Oracle hỗ trợ việc quản lí dữ liệu có dung lượng hàng trăm Gb
Trang 15 Hỗ trợ mạnh cho các tính năng nhiều user truy xuất cùng đơn vị dữliệu trong cùng thời gian
Có thể làm việc 24/24
Tuân thủ các chuẩn công nghiệp trên các yếu tố: Hệ điều hành,Mạng, Ngôn ngữ truy xuất
Cung cấp cơ chế an toàn và bảo mật tốt
Đảm bảo tạo các ràng buộc toàn vẹn đơn giản và phức tạp trên cơ sở
dữ liệu
Hỗ trợ nhiều thuận lợi cho mô hình Cilent/ Server
Cho phép nhiều chủng loại máy, hệ điều hành khác nhau chia sẻ trên
dữ liệu mạng
Dùng để phát triển ứng dụng và có thể sử dụng trên bất kì hệ thốngnào
1.2.3 Các cơ chế an toàn trong Oracle
Ngoài cơ chế an toàn dựa vào nhãn và cơ sở dữ liệu riêng ảo sẽ đượctrình bày chi tiết trong đồ án, hệ quản trị cơ sở dữ liệu Oracle còn cung cấpcác cơ chế bảo mật như:
- Xác thực bằng mật khẩu
- Phân quyền truy xuất đối tượng
- Sự kiểm toán (Auditting)
- Backup và Restore dữ liệu
Mật khẩu của người dùng có thể được khai báo khi tạo tài khoản củangười dùng và có thể được thay đổi sau khi tạo tài khoản Mật khẩu này được
Trang 16mã hóa và lưu trữ trong từ điển dữ liệu Nếu tài khoản là tài khoản hệ điềuhành thì cơ sở dữ liệu sẽ bỏ qua bước kiểm tra mật khẩu và chỉ dựa vào xácthực quyền trên hệ điều hành
1.2.3.2 Phân quyền truy xuất đối tượng
Quyền truy xuất dùng để hạn chế việc truy xuất dữ liệu trên đối tượng
cơ sở dữ liệu
Nếu user A tạo bảng Nhanvien và thực hiện câu truy vấn
GRANT SELECT ON Nhanvien TO PUBLIC;
thì tất cả các user (PUBLIC) đều có thể truy vấn dữ liệu trong bảng Nhanvien
Để đơn giản hóa việc quản lý phân quyền trên đối tượng, ta có thể dùng Role
Với các ứng dụng có số người dùng lớn, thì role làm giảm số câu lệnh grant
cần thực hiện Để tăng thêm tính bảo mật, chúng ta có thể đặt mật khẩu chocác role và có thể vô hiệu hóa một cách linh hoạt
1.2.3.3 Sự kiểm toán (Auditting)
Oracle cho phép kiểm toán chọn lọc các hành động của người dùng Sựgiám sát có thể được thực hiện ở 3 mức:
- Kiểm tra lệnh: kiểm tra lệnh SQL mà không quan tâm tới các đối tượnglược đồ
- Kiểm tra đặc quyền : kiểm tra các đặc quyền hệ thống quan trọng màkhông quan tâm đến các đối tượng lược đồ
- Kiểm tra các đối tượng lược đồ: Kiểm tra đến sự truy xuất đến một đốitượng lược đồ nhất định mà không quan tâm đến user
1.2.3.4 Backup và Restore dữ liệu
Backup: Trong khi backup, cơ sở dữ liệu vẫn có thể hoạt động, cơ chế
backup cần uyển chuyển Người ta cần backup cơ sở dữ liệu để tránh nhữngrủi ro sau:
- Xóa nhầm dữ liệu
- Thực thi nhầm các câu lệnh: Insert, Update
- Lỗi đĩa cứng
- Mất mát do mất cắp
Trang 17Người ta thường tạo file backup theo hai dạng:
- Full backup: Toàn bộ file tạo cơ sở dữ liệu
- Partial backup: Chỉ backup một phần của dữ liệu
Restore: Là quá trình hồi phục lại cơ sở dữ liệu ban đầu từ cơ sở dữ
liệu được backup
1.2.3.5 Mã hóa dữ liệu
Mã hóa để bảo vệ những dữ liệu nhạy cảm trong quá trình truyền vàlưu trữ dữ liệu Oracle đã cung cấp mã hóa mạng giữa các máy trạm cơ sở dữliệu và máy chủ cơ sở dữ liệu từ Oracle 7
Trước thực tế có rất nhiều mối đe dọa bảo mật, ta có thể chọn giải phápbảo mật bổ sung bằng cách mã hóa các dữ liệu nhạy cảm trước khi lưu trong
cơ sở dữ liệu Để giải quyết nhu cầu đó, các bản Oracle sử dụng gói PL/SQL
mã hóa và giải mã dữ liệu được lưu trữ
1.2.3.6 Oracle Advanced Security
Oracle Advanced Security cung cấp các thuật toán mã hóa sau đây đểbảo vệ sự riêng tư của mạng truyền dữ liệu:
- Mã hóa RC4
- Mã hóa DES
- Triple-DES Encryption
- Advanced Encryption Standard (tiêu chuẩn mã hóa nâng cao)
Oracle hỗ trợ ứng dụng Oracle Advanced Security nhằm đảm bảo mãhóa và toàn vẹn dữ liệu Tuy nhiên, do Oracle Advanced Security cần cóOracle Net Services để truyền dữ liệu một cách an toàn, nên Oracle AdvancedSecurity Strong Authentication không được hỗ trợ khi Oracle chạy trên nềnWindows Các phần của sản phẩm có thể sử dụng Oracle Display Managerkhông tận dụng được lợi thế của Oracle Advanced Security, vì Oracle DisplayManager không sử dụng Oracle Net Service
Trang 18CHƯƠNG II: CƠ SỞ DỮ LIỆU RIÊNG ẢO
(VPD) TRONG ORACLE
2.1 Tổng quan về VPD
2.1.1 Khái niệm chung về VPD
VPD cho phép ta tạo các chính sách bảo mật để điều khiển việc truycập ở mức hàng, cột Bản chất thì VPD thêm một mệnh đề WHERE vào câulệnh SQL được đưa ra đối với table, view hoặc synonym
VPD tăng việc bảo mật (tới mức mịn) trực tiếp trên các table, view,synonym Bởi vì nó gán trực tiếp các chính sách bảo mật lên các đối tượng cơ
sở dữ liệu, và các chính sách sẽ tự động được thực hiện mỗi khi có một ngườidùng truy cập dữ liệu
Khi người dùng trực tiếp hoặc gián tiếp truy nhập tới table, view haysynonym được bảo vệ bởi chính sách VPD thì Oracle Database sẽ sửa lại câulệnh SQL của người dùng bằng cách thêm vào một mệnh đề WHERE Việcnày trong suốt với người dùng Chính sách VPD có thể áp dụng trên cách lệnhSELECT, INSERT, UPDATE, INDEX, and DELETE VPD không hỗ trợ cácngôn ngữ định nghĩa dữ liệu như: TRUNCATE hoặc ALTER TABLE
Ví dụ:
Giả sử người dùng thực hiện câu truy vấn sau:
SELECT * FROM NHANVIEN;
VPD sẽ tự động gắn thêm vào câu truy vấn trên một mệnh đề WHERE:
SELECT * FROM NHANVIEN WHERE NV_ID = 19;
Lúc này user chỉ có thể view được dữ liệu có NV_ID là 19
Trang 192.1.2 Các ưu điểm của VPD
VPD mang lại rất nhiều lợi ích trong việc bảo mật sơ sở dữ liệu trong
hệ quản trị cơ sở dữ liệu Oracle Và dưới đây là một số lợi ích của VPD mà ta
có thể nhận thấy dễ dàng đó là:
- Chi phí thấp: các tổ chức có thể tiết kiệm được một khoản chi phí rấtlớn bằng cách xây dựng một hệ thống bảo mật cho máy chủ dữ liệu, thay vìphải thực thi các chính bảo mật giống nhau cho mỗi ứng dụng khi có truy cập
dữ liệu
- Trong suốt với người dùng: Người dùng có thể truy cập dữ liệu thôngqua một câu truy vấn hay một ứng dụng mà không hề biết tới các chính sáchbảo mật được áp dụng như thế nào Bởi các chính sách bảo mật được đínhkèm với cơ sở dữ liệu và được thực thi một cách tự động trên máy chủ cơ sở
dữ liệu
- Cơ hội kinh doanh: Trong quá khứ, các công ty không thể cho kháchhàng, đối tác truy cập trực tiếp vào hệ thống sản xuất của họ bởi họ chưa cócách nào để làm an toàn dữ liệu của họ Các công ty mẹ thì không thể có đượctất cả dữ liệu của các công ty con trên máy chủ dữ liệu, bởi các công ty con sẽ
có những dữ liệu nhạy cảm không thể tiết lộ Ngày nay, tất cả những khókhăn ấy đã được giải quyết, bằng cách kiểm soát truy cập mức mịn, dữ liệu sẽđược bảo mật trên máy chủ, và việc truy cập
2.2 Một số ngữ cảnh ứng dụng VPD
Ngữ cảnh ứng dụng (Application context) là một tập các cặp tên – giátrị, được lưu trong bộ nhớ, nó được xác định, thiết lập và lấy ra bởi ngườidùng và các ứng dụng Các giá trị liên quan được nhóm lại thành một nhómđược truy cập theo không gian tên miền (namespace) hay tên của nó Bằngcách lưu trữ các giá trị và các thuộc tính trong bộ nhớ, sau đó chia sẻ chúngdựa trên ngữ cảnh, sẽ giúp việc truy xuất các giá trị nhanh chóng hơn
Trang 20Hình 2.1 Ngữ cảnh ứng dụng lưu trữ thông tin
Thông thường các ngữ cảnh ứng dụng chứa một số thuộc tính chẳnghạn như một số ứng dụng, tên một người dùng, một tổ chức, một quy tắc, haymột tiêu đề Các chính sách bảo mật có thể được tham chiếu tới các thuộc tínhnày khi người dùng đang kiểm soát truy nhập Việc lưu trữ các giá trị trong bộnhớ, với các câu truy vấn giống nhau, hệ thống sẽ lấy cùng một giá trị trongngữ cảnh ứng dụng, như vậy sẽ tiết kiệm được thời gian Vì vậy mà trong tàiliệu bảo mật thường chứa các ngữ cảnh ứng dụng Tuy nhiên không phải tất
cả ngữ cảnh ứng dụng được sử dụng trong việc thực thi bảo mật, hay sử dụngbảo mật trong một ngữ cảnh ứng dụng
2.2.1 Ngữ cảnh mặc định USERENV
Hệ quản trị cơ sở dữ liệu Oracle cung cấp một context mặc định chomỗi phiên sử dụng cơ sở dữ liệu Nó có không gian tên là “USERNV” Hầuhết các thuộc tính trong USRENV được định sẵn bởi cơ sở dữ liệu Khônggian tên này là sự thay thế cho các chức năng USERENV cung cấp trong cácphiên bản trước đây của hệ quản trị cơ sở dữ liệu Oracle
Nếu ta sử dụng các context của ứng dụng thì vấn đề trở nên đơn giản vàsáng sủa hơn Bởi USERENV cung cấp rất nhiều thuộc tính hữu ích chẳnghạn như giúp cung cấp thông tin về môi trường người dùng USERENV cungcấp nhiều chi tiết quan trọng về phiên dùng cơ sở dữ liệu như địa chỉ IP củamáy khách, các thuộc tính của phiên làm việc, tên người dùng ủy quyền, giaothức được sử dụng để kết nối với cơ sở dữ liệu
USERENV còn có nhiều thuộc tính dùng trong việc thực thi các chínhsách bảo mật cơ sở dữ liêu Ví dụ, địa chỉ IP của một máy khách và chế độxác thực là có sẵn và được sử dụng để chi phối những gì người dùng đã truycập vào Định danh người dùng cũng là thuộc tính của mặc định trong ngữ
Trang 21cảnh, nó có thể được thiết lập bởi một ứng dụng và nó là giá trị ngữ cảnh duynhất được kiểm toán
Như vậy, thông qua context USERENV, ta có thể lấy được thông tin vềphiên làm việc của người dùng, như: username, IP, Protocol, xác thực củamáy khách, giao thức kết nối cơ sở dữ liệu…
Tất cả thuộc tính của ngữ cảnh ứng dụng đều được tham chiếu thôngqua function SYS_CONTEXT Hàm SYS_CONTEXT có không gian têngiống như tham số đầu và tên thuộc tính giống như tham số thứ hai và trả vềgiá trị của một thuộc tính liên quan
Kỹ thuật thường dùng để hiển thị tất cả các thuộc tính đang sử dụng làtạo một khung nhìn bao gồm kết quả của hàm SYS_CONTEXT Điều này sẽlàm giảm bớt các thao tác khi kiểm tra nhiều giá trị và thuận tiện khi mô tảmột list các thuộc tính Và để lấy được thông tin từ context USERENV, ta cầnthông qua hàm SYS_CONTEXT
2.2.2 Ngữ cảnh cục bộ (Local Context)
Khác với USERENV định danh người dùng và thuộc tính khách hàngđều được thiết lập bởi người dùng Thì với ngữ cảnh cục bộ các thuộc tínhđược thiết lập riêng cho từng phiên làm việc, bởi ngữ cảnh cục bộ làm việcdựa trên đặc tính của cơ sở dữ liệu là hỗ trợ khả năng xác định không gian tênriêng dựa trên các thuộc tính bổ sung Vì vậy mà ngữ cảnh cục bộ có thể được
sử dụng trong bất kỳ phiên làm việc nào
Trong khi các giá trị trong USERENV được tự động thiết lập bởi cơ
sở dữ liệu thì các giá trị trong ngữ cảnh cục bộ được thiết lập thông qua cácchương trình PL/SQL Đó là quy định khi tạo ngữ cảnh ứng dụng
2.2.2.1 Tạo một Ngữ cảnh ứng dụng
Khi tạo một ngữ cảnh ứng dụng, ta cần phải cho nó một cái tên vàliên kết nó với một Package PL/SQL chứa các hàm định nghĩa giá trị của cácthuộc tính Dưới đây là câu lệnh tạo một ngữ cảnh “CTX_EX”
sec_mgr@KNOX10g> CREATE CONTEXT ctx_ex USING sec_mgr ctx_ex_mgr; Context created
Trang 22Khi này chương trình chỉ cho phép thiết lập hoặc xóa các giá trị làCTX_EX_MGR “tin cậy”, nằm trong lược đồ (schema) SEC_MGR Đây làmột user
2.2.2.2 Thiết lập các thuộc tính và các giá trị ngữ cảnh
Các giá trị trong Ngữ cảnh ứng dụng được thiết lập bằng cách gọi thủtục DBMS_SESION SET_CONTEXT từ trình quản lý không gian tên TrongNgữ cảnh ứng dụng, ta tạo một cặp tên- giá trị liên quan tới ứng dụng củachúng ta Bằng cách thực hiện truy vấn một lần sau đó lưu kết quả của chúngtrong Ngữ cảnh ứng dụng, sẽ giúp các bước thực thi bảo mật dữ liệu tiếp theonhanh hơn nhiều so với việc lúc nào cũng gọi một hàm hay một truy vấn Ởđây, các giá trị context sẽ được thực thi trên mỗi hàng trong bảng
Để minh họa điều này, chúng ta tạo một bảng chứa các thông tinngười dùng Giả sử chúng ta muốn hạn chế hồ sơ của một số người dùngtrong tổ chức Chúng ta sử dụng Ngữ cảnh ứng dụng để nắm bắt số ngườidùng và thiết lập thông tin người dùng
Tạo bảng dữ liệu:
sec_mgr@KNOX10g> CREATE TABLE lookup_dept
2 AS SELECT ename username, deptno FROM emp;
Như vậy, các bước thiết lập ngữ cảnh cục bộ bao gồm:
Bước 1: Tạo một Ngữ cảnh ứng dụng
Bước 2: Tạo bảng (table)
Bước 3: Tạo một Package PL/SQL để quản lý Ngữ cảnh ứng dụng trên
Trang 232.2.3 Ngữ cảnh toàn cục (Global Context)
Từ hệ quản trị cơ sở dữ liệu Oracle 9i thì việc sử dụng các ngữ cảnhcủa ứng dụng đã trở nên phổ biến cùng với sự ra đời của ngữ cảnh toàn cục.Giống như tên gọi, khi sử dụng ngữ cảnh toàn cục thì các giá trị được sử dụngbởi mọi người dùng và các phiên làm việc Không giống như ngữ cảnh cục
bộ, các giá trị được lưu trữ bên trong bộ nhớ riêng của người dùng, ngữ cảnhtoàn cục lưu trữ các giá trị trong khu vực bộ nhớ chung Làm cho thuận tiệntruy cập và sử dụng
Ngữ cảnh toàn cục được sử dụng khi chúng muốn chia sẻ các giá trịtrong các phiên làm việc với nhau, hoặc trong trường hợp muốn kết nối cácứng dụng với nhau Khi ấy các giá trị sẽ không được xác nhận cụ thể là củangười nào cũng như việc liệu dữ liệu có tin cậy hay không Với ngữ cảnh toàncục, một giá trị có thể chỉ cần thiết lập một lần, và các phiên làm việc cứ nhưthế truy cập tới giá trị này Vì vậy nếu chúng ta sử dụng ngữ cảnh toàn cục thì
sẽ tiết kiềm được bộ nhớ cũng như sẽ dễ dàng cho việc sử dụng hơn vì ta chỉcần khởi tạo nó một lần
Hình 2.2 Ứng dụng của ngữ cảnh toàn cục trong việc kết hợp ngữ cảnh và
kiểm soát dữ liệu trong môi trường bảo mật
Tuy nhiên, từ góc nhìn bảo mật thì chúng ta không nên sử dụng ngữcảnh toàn cục mà nên sử dụng ngữ cảnh cục bộ bởi các thuộc tính thì đượcthiết lập cho từng phiên và nó là dữ liệu nhạy cảm
Trang 242.3 Các thành phần của chính sách VPD
Để thực hiện các chính sách trong VPD, ta phải tạo ra một hàm đượcsinh bởi mệnh đề WHERE, và một chính sách gắn với hàm này trên các đốitượng mà ta muốn bảo vệ
2.3.1 Khởi tạo một chức năng để đưa ra các mệnh đề WHERE linh hoạt
Để tạo ra một mệnh đề WHERE, ta phải tạo ra một hàm (không phải làmột thủ tục) để định nghĩa các hạn chế mà ta muốn thi hành Thông thường,các SA (security administrator) tạo ra các hàm này trong chính lược đồ của
họ Đối với các xử lý phức tạp hơn, chẳng hạn như bao gồm việc gọi các hàmkhác thêm các kiểm tra để theo dõi các trường hợp không đăng nhập được,tạo ra các hàm này trong một gói
Các chức năng cần phải có :
Nó phải là đối số của một tên lược đồ và một đối tượng đầu vào (bảng,khung nhìn, từ đồng nghĩa) Xác định các thông số đầu vào và giữ lại cácthông tin nhưng không chỉ định các lược đồ và tên đối tượng chính trong chứcnăng Các chính sách được tạo ra với các gói DBMS_RLS cung cấp tên củacác lược đồ, và đối tượng mà chính sách này sẽ được áp dụng Đầu tiên chúng
ta phải tạo ra các tham số cho các lược đồ quan hệ, tiếp theo là các tham sốcho đối tượng
Các giá trị trả về của mệnh đề WHERE sẽ được tạo ra, và nó là kiểu dữliệu VARCHAR2
Mệnh đề WHERE phải được tạo ra chính xác, và giống nhau cho tất cảngười dùng đăng nhập
Nhưng trong nhiều trường hợp, ta muốn tạo các mệnh đề WHERE khácnhau cho từng người dùng, từng nhóm người dùng, hoặc các ứng dụng mà tamuốn bảo vệ khi từng đối tượng truy cập, ví dụ nếu một người quản lý đăngnhập vào, chỉ có người đó mới có thể sử dụng mệnh đề WHERE của riêngmình để quản lý các thông tin
Ta có thể tạo một VPD với chức năng mà không cần sử dụng ngữ cảnhứng dụng, nhưng một ngữ cảnh ứng dụng được tạo ra mạnh hơn chính sách
Trang 25trong VPD, bởi người dùng truy cập một cách an toàn dựa trên các (phiên)seasion và các thuộc tính của người dùng
Ngoài ra, ta có thể nhúng C hoặc Java để gọi tới quyền truy nhập thôngtin hệ điều hành hoặc trả về mệnh đề Where từ một tập tin trong hệ điều hànhhoặc các nguồn khác
Tạo một chính sách và đính kèm các chức năng tới các đối tượng cụ thể
Sự kết hợp của việc tạo ra các chức năng và sau đó áp dụng nó vào mộtbảng, khung nhìn, được gọi là chính sách trong VPD
2.4 Cấu hình một chính sách VPD
2.4.1 Giới thiệu về chính sách VPD
Sau khi ta tạo ra một hàm để định nghĩa các hành động, ta phải kết hợphàm này với table để hành động VPD được thi hành Ta có thể làm việc nàybằng cách cấu hình chính sách VPD Chính sách chính là một kĩ thuật choviệc quản lý hàm VPD Chính sách cũng cho phép ta thêm vào việc kiểm soáttruy cập ở múc mịn, chẳng hạn như xác định các kiểu câu lệnh SQL hoặc cáccột cụ thể mà chính sách ảnh hưởng tới Khi mà người dùng cố truy cập tới dữliệu trong đối tượng cơ sở dữ liệu này, thì chính sách tự động có hiệu lựcSection này mô tả khái quát cách được sử dụng để attaching policies lên các
Trang 26table, view, synonym Để quản lý VPD chính sách chúng ta sử dụng góiDBMS_RLS
2.4.2 Gắn một chính sách vào một bảng cơ sở dữ liệu
Để gắn một chính sách lên table, view, synonym, ta sử dụng procedureDBMS_RLS ADD_POLICY Ta phải chỉ rõ table,view, synonym được addchính sách và tên cho chính sách đó Ta cũng có thể chỉ ra thông tin khácchẳng hạn như kiểu của statements mà chính sách điều khiển (SELECT,INSERT, UPDATE, DELETE, CREATE INDEX, or ALTER INDEX)
Ví dụ: gắn một chính sách VPD có tên là secure_update lên bảng HR.EMPLOYEES, hàm gắn chính sách là check_npdates
BEGIN
DBMS_RLS ADD_POLICY (
objectJschema => ‘hr’, object_iame => ‘employees’, policy_uime => ‘secure_update’
policy_function => ‘check_updates’,Nếu hàm được tạo ra bên trong package thì nó bao gồm cả tên package
policy_function => ‘pkg check_updates’,
2.4.3 Thực thi các chính sách trên mệnh đề cụ thể kiểu SQL
Ta có thể thi hành các chính sách VPD cho các lệnh SECLECT,INSERT, UPDATE, DELETE Nêu không chỉ rõ lệnh nào thì mặc địnhOracle chỉ định lệnh SELECT, INSERT, UPDATE, DELETE, ko có INDEX.Bất kì sự kết hợp câu lệnh nào đều sử dụng tham số statement_types trongDBMS_RLS ADD_POLICY procedure kèm theo là danh sách lệnh được đặttrong dấu ngoặc đơn
Ví dụ: Chỉ định lệnh SELECT và INDEX cho chính sách
BEGIN DBMS_RLS ADD_POLICY (
object_schema => ‘hr’, object_name => ‘employees’, policy_name => ‘securejupdate’,
Trang 27policy_function => ‘check_updates’, statement_types => ‘SELECT,INDEX’);
END;
2.4.4 Kiểm soát việc hiển thị các cột dữ liệu với chính sách
Column level policies có hiệu lực bảo mật mức hàng khi một truy vấntham chiếu một security-relevant column (cột bảo mật thích hợp) Ta có thể
áp dụng chính sách VPD mức cột lên tables, khung nhìn nhưng không ápdụng trên synonyms
Để áp dụng chính sách trên một column, phải chỉ rõ security-relevantcolumm bằng cách sử dụng thuộc tính sec_relevant_cols của thủ tụcDBMS_RLS ADD_POLICY Thuộc tính này được áp dụng mỗi khi columnđược tham chiếu, một cách rõ ràng hoặc không rõ ràng trong truy vấn
Ví dụ: user không thuộc phòng nhân sự chỉ được phép xem SocialSecurity numbers của họ Sales clerk được truy vấn như sau:
SELECT fname, lname, ssn FROM emp;
Hàm thực thi chính sách bảo mật trả lại thuộc tính ssn=‘my_ssn’ OracleDatabase sẽ viết lại câu truy vẫn và thực thi nó:
SELECT fname, lname, ssn FROM emp
WHERE ssn = ‘my_ssn’;
Show một VPD chính sách trong đó user của phòng sales (phòng kinhdoanh) không được xem salaries của của người khác ngồi phòng (số phòng là30) Column thích hợp cho chính sách này là sal và comm
CREATE OR REPLACE FUNCTION hide_sal_comm (
Trang 28sec_relevant_cols => ‘sal_comm’);
END;
/
- Chỉ hiển thị dữ liệu liên quan tới truy vấn
Hành vi mặc định cho column-level Oracle VPD là hạn chế số dòngđược trả lại cho một truy vấn tham chiếu tới cột có chưa thông tin nhạy cảm
Ta chỉ rõ những security-relevant column (cột an toàn liên quan) bằng các sửdụng tham số sec_relevant_columns của thủ tục DBMS_RLS ADD_POLICYnhư sau
Ví dụ, xét nhân viên phòng kinh doanh với quyển SELECT trên bảngemp được bảo vệ với chính sách column-level Oracle VPD được tạo ra trong
ví dụ sau, người sử dụng (Scott) chạy những truy vấn sau:
SELECT ENAME, d dname, JOB, SAL, COMM
FROM emp e, dept d
WHERE d deptno = e deptno;
Oracle trả về kết quả:
Trang 29BLAKE SALES MANAGER 2850
Ví dụ, xét kết quả truy vấn của nhân viên bán hàng, được mô tả trong ví
dụ trước Nếu column-masking được sử dụng, sau đó thay vì chỉ nhìn thấynhững dòng chứa các chi tiết và số an toàn xã hội (SSN) của nhân viên bánhàng, nhân viên bán hàng này sẽ nhìn thấy tất cả các dòng từ bảng EMP,nhưng giá trị SSN sẽ trả lại như giá trị NULL Lưu ý là hành vi này khác nhau
từ tất cả các loại cơ sử dữ liệu VPD, mà chỉ trả về 1 tập con của các hàng
Ngược lại với hành động mặc định của column-level Oracle VPD,column-masking hiển thị tất cả các dòng, nhưng trả về giá trị cột mặc định làNULL Để bao gồm column-masking trong chính sách của ta, ta dùng tham sốsec_relevant_cols_opt của thủ tục DBMS_RLS ADD_POLICY tới dbms_rls.ALL_ROWS
Trong column-masking VPD, sử dụng cùng chính sách VPD như ví dụtrên, nhưng với sec_relevant_cols_opt được chỉ rõ với dbms_rls ALL_ROWS
Ví dụ: Thêm column-masking tới Oracle VPD
Trang 30BEGIN
DBMS_RLS ADD_POLICY(
object_schema => 'scott', object_name => 'emp', policy_name => 'hide_sal_policy', policy_function => 'hide_sal_comm', sec_relevant_cols =>' sal,comm', sec_relevant_cols_opt => dbms_rls ALL_ROWS);
END;
/
Giả sử nhân viên phòng kinh doanh với quyền SELECT trên bảng EMP(như người dùng SCOTT) chạy truy vấn sau:
SELECT ENAME, d dname, job, sal, comm
FROM emp e, dept d WHERE d deptno = e deptno;
Cơ sở dữ liệu trả về tất cả các dòng trong truy vấn, nhưng với giá trị đãbiết được đánh dấu bởi chính sách VPD:
Trang 31BLAKE SALES MANAGER 2850
14 rows selected
Column-masking trả về tất cả các dòng được truy vấn bởi nhân viênkinh doanh, nhưng giá trị trường sal và comm là NULL cho những nhân viênngoài phòng kinh doanh
Trang 32CHƯƠNG III: AN TOÀN DỰA VÀO NHÃN
TRONG ORACLE (OLS)
3.1 Tổng quan về OLS
Kiểm soát truy cập các thông tin nhạy cảm là mối quan tâm đối với cácnhà quản lý, cán bộ thông tin, quản trị viên cơ sở dữ liệu, các nhà phát triểnứng dụng, và nhiều người khác Kiểm soát truy cập có chọn lọc dựa trên cấp
độ của người dùng thông qua cấp độ bảo mật có thể đảm bảo bí mật màkhông hạn chế về cấp độ Mức độ kiểm soát truy cập đảm bảo rằng người sửdụng trái phép không được phép truy cập các thông tin nhạy cảm
Dữ liệu có thể được xem là nhạy cảm vì những lý do khác nhau Ví dụnhư vấn đề cá nhân hoặc thông tin liên lạc, bí mật thương mại, kế hoạch công
ty, tài chính, thông tin quân sự, kế hoạch của chính phủ cho nghiên cứu, muabán, hoặc các hoạt động khác
Nếu những người bất hợp pháp có thể xem hoặc sửa những thông tinnhạy cảm có thể gây lúng túng, gây tổn hại, nguy hiểm cho các cá nhân, tổchức, cơ quan, chính phủ, hoặc quốc gia
Tuy nhiên, những dữ liệu đó thường xen lẫn các thông tin khác, có rất ítthông tin nhạy cảm được phổ biến một cách hợp pháp cho nhiều người dùng.Hạn chế quyền truy cập vào toàn bộ bảng hoặc cách ly dữ liệu nhạy cảm vào
cơ sở dữ liệu riêng biệt có thể tạo ra một môi trường làm việc khó khăn hơn,gây tốn kém về phần cứng, phần mềm, thời gian dùng, và quản trị
OLS xóa bỏ sự cần thiết của các biện pháp này bằng cách cho phépkiểm soát truy cập theo mức hàng, dựa trên công nghệ VPD của OracleDatabase Enterprise Edition Nó kiểm soát truy cập vào các nội dung của mộthàng bằng cách so sánh nhãn của hàng với nhãn của người dùng và những đặcquyền Người quản trị có thể dễ dàng thêm các bộ lọc các hàng hàng - chínhsách hạn chế cơ sở dữ liệu hiện tại bằng giao diện đồ họa thân thiện Ngườiphát triển có thể dễ dàng thêm nhãn – điều khiển truy cập cơ bản tới ứng dụngOracle của họ
Trang 33Nhãn cho phép chúng ta điều khiển truy cập mịn bằng cách dùng dữliệu trong hàng Khi áp dụng chính sách OLS, một cột mới sẽ được thêm vàomỗi hàng dữ liệu Cột này sẽ lưu trữ các nhãn phản ánh sự nhạy cảm của mỗihàng trong cơ sở dữ liệu đó Khi đó có thể xác định cấp độ truy cập của ngườidùng vào cơ sở dữ liệu bằng cách so sánh nhãn của người dùng với nhãn củahàng
3.1.1 Kiến trúc OLS
OLS được xây dựng trên công nghệ VPD được chuyển giao trong cácphiên bản hệ quản trị cơ sở dữ liệu Oracle Enterprise
Hình 3.1 Kiến trúc OLS
3.1.2 Các tính năng của OLS
OLS cung cấp việc kiểm soát truy cập bảo mật mức hàng hoạt độngbên ngoài các điều khiển truy cập cơ bản của cơ sở dữ liệu Oracle
3.1.2.1 Tổng quan về chính sách OLS
Quản trị viên OLS định nghĩa một tập hợp các nhãn cho dữ liệu vàngười dùng, cùng với quyền hạn cho người dùng và các đơn vị chương trình,chi phối truy cập vào đối tượng được bảo vệ Mỗi chính sách là một cái têngắn liền với các nhãn, các quy tắc, và các quyền
Trang 34Ví dụ, giả sử rằng người dùng có quyền SELECT trên một bảng ứngdụng Như minh họa trong hình 3.2, "An toàn dựa vào nhãn", khi người dùngchạy một câu lệnh SELECT, OLS đánh giá mỗi hàng được lựa chọn để xácđịnh xem người dùng có thể truy cập nó Quyết định dựa trên các đặc quyền
và nhãn truy cập được giao cho người dùng bởi người quản trị bảo mật OLS
có thể được cấu hình để thực hiện kiểm tra an toàn trên UPDATE, DELETE,
và INSERT báo cáo là tốt
Hình 3.2 An toàn dựa vào nhãn
- OLS cho phép một bộ phận truy cập, để đảm bảo rằng các nhãn nhạycảm có thể được bảo vệ, tách biệt với các dữ liệu khác chứa trong hàng
- OLS giúp việc thực thi chính sách linh hoạt để xử lý các yêu cầu xử lýđặc biệt Ví dụ như hạn chế thực thi để chỉ xác nhận một loại ngôn ngữ thaotác dữ liệu (Data Manipulation Language - DML), hạn chế người dùng tạo ranhãn, hoặc cho phép nhãn mặc định
- Chính sách có thể bảo vệ các bảng ứng dụng cá nhân Thường thìkhông phải tất cả các bảng trong một ứng dụng cần được bảo vệ Ví dụ, bảngtra cứu như tên nhân viên không cần bảo vệ như vậy
- OLS cho phép các quản trị viên thêm chức năng ghi nhãn đặc biệt vàmệnh đề SQL từ một chính sách, có thể đơn giản hóa các hoạt động của ngườidùng
- Các quản trị viên hoặc các nhà phát triển ứng dụng có thể tạo ra nhiềuchính sách OLS Ví dụ, chính sách nguồn nhân lực có thể tồn tại với chínhsách quốc phòng trong cùng một cơ sở dữ liệu Mỗi chính sách có thể đượccấu hình độc lập, với định nghĩa nhãn riêng của nó và cột riêng cho các nhãn
dữ liệu
Trang 35- Có thể áp dụng cùng một chính sách cho nhiều bảng ứng dụng
3.1.2.2 Phiên bản Oracle Enterprise: Công nghệ VPD
VPD hỗ trợ chính sách - định hướng kiểm soát truy cập Chính sáchVPD thực hiện kiểm soát truy cập đối tượng hoặc bảo mật mức hàng Nócung cấp một giao diện lập trình ứng dụng (API) cho phép áp dụng các chínhsách an toàn vào bảng cơ sở dữ liệu và khung nhìn
3.1.2.3 OLS: Một VPD không giới hạn
OLS cung cấp một chính sách bảo mật tích hợp và cơ sở hạ tầng để cóthể thực hiện thực hiện an toàn mức hàng một cách dễ dàng Giải pháp out-of-the-box này không cần lập trình, do đó làm giảm chi phí sở hữu và thời gian
để quảng bá cho các sản phẩm mới và các ứng dụng
Người quản trị OLS có thể tạo ra chính sách đối với an toàn mức hàngbằng cách cung cấp tên mô tả cho chính sách đó, mà không cần viết bằng PL/SQL Không có cần phải viết mã bổ sung Chỉ cần một bước duy nhất, chúng
ta có thể áp dụng một chính sách bảo mật vào một bảng Điều này rất đơngiản và hiệu quả để thực hiện chính sách an toàn hạt mịn một cách chi tiết vàlinh hoạt mà không thể dễ dàng có được khi triển khai riêng VPD Bằng cáchnày, OLS là một giải pháp tổng quát mà ta có thể sử dụng trong những hoàncảnh khác nhau
3.1.2.4 Tính năng chính sách nhãn
OLS cho biết thêm nhãn kiểm soát truy cập dựa trên hệ thống quản lý
cơ sở dữ liệu Oracle về đối tượng - quan hệ
Ví dụ, hoạt động DML chuẩn (như SELECT) thực hiện trên một hàng
dữ liệu Khi một người dùng với nhãn CONFIDENTIAL truy cập vào mộthàng dữ liệu với nhãn CONFIDENTIAL, OLS xác định rằng có thể truy cập.Nếu nhãn dữ liệu cao hơn, như TOP SECRET, truy cập sẽ bị từ chối
Bằng cách này, ta có thể lưu trữ và quản lý trên một hệ thống duy nhấtcác dữ liệu nhạy cảm khác nhau, hoặc thuộc về các công ty khác nhau trongkhi vẫn bảo đảm an toàn dữ liệu thông qua kiểm soát truy cập Oracle chuẩn.Tương tự như vậy, các ứng dụng của các ngành công nghiệp khác nhau có thểdùng chính sách OLS cung cấp kiểm soát truy cập bổ sung bằng các nhãn, sẽ
Trang 36đạt được kết quả tốt ở bất cứ nơi nào cần thiết, mà không làm ảnh hưởng tới
cơ sở dữ liệu hiện có
có thể xác định các level như CONFIDENTIAL, SENSITIVE, vàHIGHLY_SENSITIVE Một tổ chức thương mại có thể xác định một levelđối với dữ liệu COMPANY_CONFIDENTIAL
Compartment không phân cấp, thường được định nghĩa để tách dữ liệu,chẳng hạn như dữ liệu liên quan đến tách các sáng kiến chiến lược
Các group có phân cấp và được dùng để phản ánh quyền sở hữu Ví dụ,nhóm FINANCE và ENGINEERING có thể được định nghĩa là nhóm con củanhóm CEO, tạo ra một quan hệ sở hữu Hệ thống phân cấp này xác định rằngmột người dùng gắn nhãn ENGINEERING không thể xem dữ liệu được gắnnhãn FINANCE, nhưng một người dùng gắn nhãn CEO có thể xem dữ liệuđược gắn nhãn của một trong hai nhóm trên
Một nhãn có thể là một trong bốn sự kết hợp của các thành phần sauđây:
Một level, không có group hoặc compartment, ví dụ U::
Level và một tập hợp các compartment, không có group, ví dụU:Alpha, Beta:
Một level và một tập hợp các group, không có compartment, ví dụU::FIN, ASIA
Trang 37Một level với cả hai compartment và các group, ví dụ U:Beta,Psi:ASIA, FIN
3.1.2.4.3 Chính sách đặc quyền
Chính sách đặc quyền cho phép một người sử dụng hoặc chương trìnhđược lưu trữ bỏ qua một số khía cạnh của chính sách kiểm soát truy cập dựavào nhãn Ngoài ra, người quản trị có thể ủy quyền cho người sử dụng hoặcchương trình thực hiện hành động cụ thể
Đặc quyền có thể được cấp cho các đơn vị chương trình, cho phép cácthủ tục chứ không phải người dùng, được thực hiện hoạt động đặc quyền Hệthống an toàn nhất khi chỉ các chương trình, và không người dùng cá nhânnào có đặc quyền OLS
3.1.2.4.4 Tùy chọn thực thi chính sách
Trong OLS, các quản trị viên hoặc các nhà phát triển ứng dụng có thể
áp dụng tùy chọn thực hiện chính sách khác nhau với sự linh hoạt một cáchtối đa trong việc kiểm soát các hoạt động DML của người dùng
3.1.2.4.5 Tóm tắt: Bốn khía cạnh của nhãn dựa trên việc truy cập hàng
Đối với một bảng được bảo vệ bởi một chính sách OLS, truy cập vàomột hàng đòi hỏi nhãn của người dùng phải thỏa mãn một số tiêu chuẩn đãđược định nghĩa trước trong chính sách đó Khi kiểm soát truy cập tùy ý đượcthực hiện bởi các nhà phát triển ứng dụng thì kiểm soát truy cập hoạt độngnhư một kiểm tra trung gian
Trang 38Tóm lại, OLS cung cấp bốn khía cạnh của nhãn dựa trên kiểm soát truycập:
Nhãn của người dùng cho thấy các thông tin mà người dùng được phéptruy cập, và xác định các loại hình truy cập (đọc hoặc ghi) mà người dùngđược phép thực hiện
Nhãn của một hàng cho thấy sự nhạy cảm của các thông tin trong hàng
3.2 Tìm hiểu về nhãn dữ liệu và nhãn người dùng
3.2.1 Giới thiệu về an toàn dựa vào nhãn
Nhãn an toàn cơ bản cung cấp khả năng kiểm soát linh hoạt quyền truycập vào dữ liệu nhạy cảm OLS kiểm soát truy cập dữ liệu dựa trên danh tính
và nhãn của người dùng, sự nhạy cảm và nhãn của dữ liệu Nhãn an toàn làmmịn thêm các điều khiển truy cập tùy ý, các điều khiển truy cập tùy ý này xácđịnh hoạt động nào người dùng có thể thực hiện trên dữ liệu trong một đốitượng như bảng hoặc khung nhìn
Nhãn dữ liệu
Nhãn dữ liệu cho thấy mức độ và tính chất nhạy cảm của dữliệu trong hàng và quy định các tiêu chí bổ sung mà một ngườidùng phải đáp ứng để được truy cập vào hàng đó
Nhãn người
dùng
Nhãn người dùng thể hiện mức độ nhạy cảm của người dùngcộng với các compartment và các group để hạn chế truy cậpcủa người dùng trên dữ liệu được gắn nhãn Mỗi người dùngđược gắn một level, compartment, và các nhóm, và mỗi phiên
có thể hoạt động trong phạm vi truy cập dữ liệu đó
Chính sách
đặc quyền
Người dùng có thể có đặc quyền để thực hiện các hoạt độngđặc biệt hoặc để truy cập dữ liệu vượt quá ủy quyền nhãn củahọ
Trang 39Bảng 3.1 Một chính sách OLS kiểm soát truy cập dữ liệu dựa trên 3 thành phần
Khi áp dụng một chính sách OLS cho một bảng cơ sở dữ liệu, một cộtđược thêm vào bảng, cột này chứa nhãn của mỗi hàng Các quản trị viên cóthể chọn để hiển thị hoặc ẩn cột này
3.2.2 Các thành phần của nhãn
3.2.2.1 Định nghĩa các thành phần nhãn và ký tự hợp lệ
Một nhãn nhạy cảm có một thuộc tính duy nhất với nhiều thành phần.Tất cả các nhãn dữ liệu phải chứa một thành phần đó là level, nhưngcompartment và group là tùy chọn Một quản trị viên phải xác định được cácthành phần của nhãn trước khi tạo nhãn
Level Thể hiện level của dữ liệu
CONFIDENTIAL (1),SENSITIVE (2),HIGHLY_SENSITIVE (3)
Compartmen
Không hoặc nhiều danh mụcliên quan đến các dữ liệu đượcdán nhãn
FINANCIAL,STRATEGIC,NUCLEAR
Group
Không hoặc nhiều định danhcho tổ chức sở hữu hoặc truycập vào dữ liệu
EASTERN_REGION, WESTERN_REGION
Bảng 3.2 Thành phần nhãn nhạy cảm
Ký tự hợp lệ để xác định tất cả các thành phần nhãn bao gồm ký tự chữ
số, gạch dưới, và khoảng trống (Khoảng trống ở đầu và cuối được bỏ qua)
Hình 3.3 minh họa ba chiều, trong đó dữ liệu có thể được phân loại hợp
lý, dùng các level, compartment, và các group
Trang 40Hình 3.3 Phân loại dữ liệu với level, compartment và group
Ví dụ, có thể định nghĩa một tập hợp các mức như sau: