1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c

50 3 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Mục tiêu đặt ra khi thực hiện đề tài: - Hiểu rõ các cơ chế an toàn trong oracle như xác thực, mã hóa dữ liệu, ủy quyền, kiểm toán … - Minh họa các bước triển khai các tính năng và công cụ bảo mật của Oracle 21c thông qua các kịch bản cụ thể, tương ứng với các cơ chế an toàn.Mục tiêu đặt ra khi thực hiện đề tài: - Hiểu rõ các cơ chế an toàn trong oracle như xác thực, mã hóa dữ liệu, ủy quyền, kiểm toán … - Minh họa các bước triển khai các tính năng và công cụ bảo mật của Oracle 21c thông qua các kịch bản cụ thể, tương ứng với các cơ chế an toàn.

Trang 1

Nhóm sinh viên thực hiện:

Lê Minh Châu - AT180207

Văn Thị Thùy Dương - AT180214 Hoàng Hà Giang - AT180215 Bùi Ngọc Mai - AT180232

Người hướng dẫn :

TS Trần Thị Lượng

Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2024

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, nhóm chúng em xin chân thành gửi lời cảm ơn đến cô Trần Thị Lượng – giảng viên khoa An toàn thông tin trường Học viện Kỹ thuật Mật Mã Trong thời gian tham gia lớp học phần, cô đã tạo điều kiện học tập, cung cấp đầy đủ các kiến thức cũng như học liệu của môn học, giúp chúng em nắm vững được nền tảng cơ bản và mục tiêu của học phần Đồng thời, cô cũng đã tận tình hướng dẫn, giúp đỡ, đưa ra những lời khuyên cần thiết để chúng em có thể hoàn thành đề tài này

Chúng em xin chân thành cảm ơn!

Hà Nội, tháng 6 năm 2024 Nhóm sinh viên thực hiện

Lê Minh Châu Văn Thị Thùy Dương

Bùi Ngọc Mai Hoàng Hà Giang

Trang 3

2 Mục tiêu thực hiện đề tài vi

CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ORACLE 21C VÀ CÁC CƠ CHẾ AN TOÀN 1

1.1 Giới thiệu về Oracle 21c 1

1.1.1 Tổng quan về Oracle 1

1.1.2 Kiến trúc của Oracle Database 1

1.1.3 Oracle 21c 2

1.2 Các cơ chế an toàn trong an toàn thông tin 3

CHƯƠNG 2 CÁC CƠ CHẾ AN TOÀN TRONG ORACLE 21C 4

2.1 Cơ chế xác thực 4

2.1.1 Cơ chế xác thực bởi hệ điều hành 4

2.1.2 Cơ chế xác thực bởi database 5

2.1.3 Cơ chế xác thực bởi mạng hoặc bên thứ ba 6

2.2 Cơ chế mã hóa dữ liệu 8

2.2.1 Tổng quan về TDE 8

2.2.2 Các loại mã hóa TDE 9

2.2.3 Các thuật toán mã hóa và toàn vẹn được hỗ trợ 11

2.3 Cơ chế ủy quyền 12

2.4 Cơ chế kiểm toán 17

2.4.1 Kiểm toán trong Oracle 18

2.4.2 Các loại kiểm toán trong Oracle 18

2.4.3 Các công cụ kiểm toán trong Oracle 19

2.5 Virtual Private Database (VPD) 21

3.4 Kiểm toán đăng nhập, đăng xuất 34

3.5 Virtual Private Database (VPD) 37

3.5.1 Chính sách VPD mức cột 37

3.5.2 Column masking 39

KẾT LUẬN 40

Trang 4

ii

TÀI LIỆU THAM KHẢO 41 BẢNG PHÂN CÔNG 42

Trang 5

iii

DANH MỤC BẢNG

Bảng 2 1 Thông số khi tạo user với cơ chế xác nhận bởi database 6 Bảng 2 2 Bảng các chức danh trong data dictionary 17 Bảng 2 3 Các giá trị của tham số AUDIT_TRAIL 18

Trang 6

iv

DANH MỤC HÌNH ẢNH

Hình 2 1 Minh họa máy chủ xác thực 7

Hình 2 2 Quá trình mã hóa cột TDE 9

Hình 2 3 Quá trình mã hóa tablespace 10

Hình 3 1 Tạo người dùng tại Computer Management 26

Hình 3 2 Giá trị của tham số os_authent_prefix 26

Hình 3 3 Tạo user kết hợp với giá trị của tham số os_authent_prefix 26

Hình 3 4 Kết quả xác thực mức hệ điều hành 27

Hình 3 5 Tạo thư mục wallet 27

Hình 3 6 Cấu hình cho thư mục wallet 28

Hình 3 7 Kiểm tra trạng thái wallet 28

Hình 3 8 Tạo tablespace encrypted_ts 28

Hình 3 9 Kiểm tra trạng thái mã hóa của tablespace 29

Hình 3 10 Tạo user test và cấp quyền cho user test 29

Hình 3 11 Tạo bảng sinhvien thành công 29

Hình 3 12 Dữ liệu ở bảng sinhvien sau khi thêm 30

Hình 3 13 File encrypted_ts01.dbf sau khi mã hóa tablespace 30

Hình 3 14 Tạo user1 và gán quyền cho user1 31

Hình 3 15 Thực hiện select bằng user1 khi chưa được cấp quyền 31

Hình 3 16 Thực hiện select bằng user1 khi đã được cấp quyền 31

Hình 3 17 Tạo user2 và cấp quyền cho user2 32

Hình 3 18 Cấp quyền select từ user1 cho user2 32

Hình 3 19 Cấp quyền cho user2 sau khi được phân lại quyền 32

Hình 3 20 Kết quả khi thực hiện select bằng user2 33

Hình 3 21 Thu hồi quyền của user1 bằng quyền sysdba 33

Hình 3 22 Kết quả lệnh select sau khi thu hồi quyền của 2 user 34

Hình 3 23 USER1 và USER2 sau khi được gán quyền thành công 34

Hình 3 24 Bảng lưu kết quả kiểm toán 35

Hình 3 25 Trigger kiểm toán đăng nhập tạo thành công 35

Hình 3 26 Trigger kiểm toán đăng xuất tạo thành công 36

Trang 7

v

Hình 3 27 Thực hiện hành động đăng nhập, đăng xuất với 2 user 36

Hình 3 28 Kết quả kiểm toán sau khi đăng nhập, đăng xuất 36

Hình 3 29 Cấp quyền cho người dùng scott 37

Hình 3 30 Tạo policy hạn chế truy cập thành công 37

Hình 3 31 Gán policy cho bảng emp thành công 38

Hình 3 32 Dữ liệu bảng EMP trước khi áp dụng chính sách VPD mức cột 38

Hình 3 33 Dữ liệu bảng EMP sau khi áp dụng chính sách VPD mức cột 38

Hình 3 34 Dữ liệu bảng EMP khi triển khai column masking 39

Trang 8

2 Mục tiêu thực hiện đề tài

Tên đề tài: “Tìm hiểu các cơ chế an toàn cơ bản trong Oracle 21c”

Mục tiêu đặt ra khi thực hiện đề tài:

- Hiểu rõ các cơ chế an toàn trong oracle như xác thực, mã hóa dữ liệu, ủy quyền, kiểm toán …

- Minh họa các bước triển khai các tính năng và công cụ bảo mật của Oracle 21c thông qua các kịch bản cụ thể, tương ứng với các cơ chế an toàn

Trang 9

Oracle Database cung cấp một nền tảng để lưu trữ, quản lý và truy vấn dữ liệu Hệ thống này sử dụng ngôn ngữ truy vấn SQL (Structured Query Language) để tương tác với cơ sở dữ liệu

1.1.2 Kiến trúc của Oracle Database

Tương tự như nhiều hệ quản trị cơ sở dữ liệu quan hệ phổ biến khác, Oracle Database cũng được xây dựng dựa trên ngôn ngữ truy vấn SQL, tiêu chuẩn hóa cho việc quản lý và truy vấn dữ liệu trên máy chủ một cách hiệu quả

Đặc biệt, Oracle đã áp dụng công nghệ PL/SQL, một phần mở rộng của SQL, để phát triển các tính năng độc quyền cho ngôn ngữ truy vấn này Bên cạnh đó, Oracle Database còn hỗ trợ lập trình bằng Java và cho phép sử dụng các ngôn ngữ và chương trình khác

Không khác các nền tảng cơ sở dữ liệu khác, Oracle Database kết nối các phần tử dữ liệu thông qua cấu trúc bảng, tạo ra các lưu trữ khác nhau để hỗ trợ việc xử lý dữ liệu một cách dễ dàng

Các mô hình kiến trúc của công nghệ này bao gồm một tập hợp các ràng buộc ACID, nhằm đảm bảo độ chính xác và độ tin cậy của dữ liệu Nguyên tắc ACID bao gồm độ nguyên tử, tính thống nhất, tính độc lập và độ bền của dữ liệu

Kiến trúc của Oracle Database thể hiện qua các phần sau:

Trang 10

2

• Cấu trúc lưu trữ vật lý: Các tệp dữ liệu, tệp điều khiển chứa thông tin quản lý cơ sở dữ liệu, và các tệp nhật ký để ghi lại các thay đổi dữ liệu Mỗi cơ sở dữ liệu và phiên bản của nó sẽ quản lý các tệp này

• Cấu trúc lưu trữ logic: Bao gồm khối dữ liệu, một tập hợp các khối liền kề, extents (nhóm khối liền kề), phân đoạn (nhóm extents) và không gian bảng (lưu trữ phân đoạn)

Mỗi phiên bản của Oracle Database được tạo dựng trên nền một bộ nhớ cache

được gọi là System Global Area (SGA) chứa nhóm các bộ nhớ chia sẻ Các phiên

bản cũng bao gồm các tiến trình chạy ngầm để quản lý I/O và giám sát hoạt động cơ sở dữ liệu, với mục tiêu tối ưu hoá hiệu suất và độ tin cậy

Trong mô hình tương tác của Oracle, các tiến trình máy khách kết nối với phiên bản cơ sở dữ liệu thích hợp để thực thi mã ứng dụng Các tiến trình máy chủ, được kết nối với vùng bộ nhớ riêng biệt gọi là khu vực chương trình chung (khác với SGA), quản lý tương tác giữa các tiến trình máy khách và cơ sở dữ liệu

1.1.3 Oracle 21c

Phiên bản mới nhất của cơ sở dữ liệu phổ biến nhất thế giới, Oracle Database 21c, được phát hành theo tiêu chí ưu tiên cho điện toán đám mây – “cloud first” Phiên bản chạy trên nền tảng Cloud của Oracle được ra mắt vào Tháng Mười Hai 2020, và bản hoạt động trên máy chủ on-premise được phát hành muộn hơn, vào tháng 8 năm 2021

Oracle đã nhất quán áp dụng phương pháp lưu trữ và quản lý dữ liệu trong một CSDL hội tụ, thay vì chia nhỏ thành nhiều thành phần chức năng đơn dụng Hay nói cách khác, CSDL hội tụ của Oracle là CSDL đa mô hình (multi-model), phục vụ nhiều đối tượng (multi-tenant) và nhiều loại công việc khác nhau (multi-workload) Cơ sở dữ liệu Oracle hỗ trợ đầy đủ nhiều mô hình dữ liệu và phương pháp truy cập, đơn giản hóa việc hợp nhất trong khi đảm bảo tính cô lập và vượt trội trong các trường hợp sử dụng khối lượng công việc cơ sở dữ liệu điển hình – cả hoạt động và phân tích

Dưới đây là một số tính năng mới của CSDL Oracle phiên bản 21c

Trang 11

3 • Mảng Blockchain

• Kiểu dữ liệu Native JSON: Thực thi JavaScript bên trong Oracle Database • SQL Macros

• Cải tiến tính năng CSDL trên bộ nhớ (In-Memory)

1.2 Các cơ chế an toàn trong an toàn thông tin

Các cơ chế an toàn trong an toàn thông tin là các phương pháp và kỹ thuật được sử dụng để bảo vệ thông tin khỏi các mối đe dọa bảo mật Các cơ chế này bao gồm:

• Mã hóa: Mã hóa là quá trình biến đổi thông tin ban đầu thành dạng mã hóa, đảm bảo tính bảo mật của thông tin khi truyền qua các kênh mạng Có nhiều phương pháp mã hóa như mã hóa đối xứng, mã hóa bất đối xứng và mã hóa mã nguồn mở

• Xác thực: Xác thực là quá trình xác định tính hợp lệ của một người dùng, một thiết bị hay một ứng dụng Các kỹ thuật xác thực bao gồm xác thực bằng mật khẩu, xác thực bằng vân tay, xác thực bằng thẻ, xác thực bằng chứng chỉ, …… • Phân quyền: Phân quyền là quá trình xác định quyền truy cập cho các người dùng đến các tài nguyên khác nhau trên hệ thống quyền truy cập được cấp phép dựa trên vai trò của người dùng hoặc các nhóm người dùng

• Quản lý rủi ro: Quản lý rủi ro là quá trình đánh giá và quản lý các rủi ro bảo mật trong hệ thống thông tin Các biện pháp quản lý rủi ro bao gồm đánh giá rủi ro, phân loại và ưu tiên các rủi ro, áp dụng các biện phòng ngừa và giảm thiểu rủi roi

• Kiểm soát truy cập: Kiểm soát truy cập là quá trình kiểm soát việc truy cập của vào các tài nguyên hệ thống thông tin, đảm bảo rằng chỉ có những người dùng được phép truy cập vào các tài nguyên đó

Trang 12

2.1.1 Cơ chế xác thực bởi hệ điều hành

Xác thực bởi hệ điều hành có nghĩa là nếu có thể đăng nhập vào máy chủ cơ sở dữ liệu thông qua một tài khoản hệ điều hành được ủy quyền, người dùng sẽ được phép kết nối vào cơ sở dữ liệu mà không cần yêu cầu mật khẩu bổ sung Một ví dụ đơn giản minh họa khái niệm này

$ sqlplus bad/notgood as sysdba

3 Xác minh rằng kết nối đã được thiết lập với quyền SYS Dùng lệnh show

SYS@orcl> show user USER is "SYS"

Ví dụ trên cho thấy dù nhập tên người dùng và mật khẩu không hợp lệ thì người dùng vẫn có thể kết nối đến Oracle Kết nối này hoạt động vì Oracle bỏ qua tên người dùng/mật khẩu được cung cấp, do người dùng đã được xác thực trước đó

qua hệ điều hành Trong ví dụ này, người dùng OS oracle thuộc nhóm OS dba, do

Trang 13

5

đó được phép kết nối cục bộ vào cơ sở dữ liệu với quyền SYSDBA mà không cần cung cấp tên người dùng và mật khẩu chính xác

2.1.2 Cơ chế xác thực bởi database

Oracle có thể xác thực người dùng đang cố gắng kết nối với cơ sở dữ liệu bằng cách sử dụng thông tin được lưu trữ trong cơ sở dữ liệu đó

Để thiết lập Oracle sử dụng xác thực cơ sở dữ liệu, mỗi người dùng mới được tạo một mật khẩu để sử dụng trong quá trình thiết lập kết nối đến database Quá trình này ngăn chặn việc sử dụng cơ sở dữ liệu trái phép vì kết nối sẽ bị từ chối nếu người dùng cung cấp mật khẩu không chính xác Oracle lưu trữ mật khẩu của người dùng trong từ điển dữ liệu (data dictionary) ở dạng được mã hóa để ngăn chặn sự thay đổi trái phép, nhưng người dùng có thể thay đổi mật khẩu của mình bất kỳ lúc nào

Để thiết lập giao thức xác thực khác được máy khách hoặc cơ sở dữ liệu cho phép, DBA có thể điều chỉnh tham số SQLNET.ALLOWED_LOGON_VERSION

trong tệp sqlnet.ora của máy chủ Sau đó, mỗi lần thực hiện kết nối, nếu máy khách

hoặc máy chủ không đáp ứng phiên bản tối thiểu do đối tác chỉ định thì quá trình xác thực sẽ không thành công với lỗi ORA-28040 Tham số này có thể lấy các giá trị là 10, 9 hoặc 8, đại diện cho các phiên bản máy chủ cơ sở dữ liệu Oracle khuyến nghị giá trị 10

Cơ chế này tương ứng với các tài khoản được tạo bằng lệnh CREATE USER Mật khẩu của mỗi user sẽ được Oracle server lưu trữ ngay trong data dictionary và nó có thể kiểm tra rất dễ dàng mỗi khi User kết nối đến database.

Cú pháp:

CREAT USER user IDENTIFIED BY password [PASSWORD EXPIRE] [ACCOUNT {LOCK | UNLOCK}]

Trang 14

PASSWORD EXPIRE

Bắt buộc user phải chỉ rõ mật khẩu mỗi khi user thực hiện kết nối tới database thông qua SQL*PLUS ACCOUNT

LOCK/UNLOCK

Sử dụng tùy chọn này để lock/ unlock đối với mỗi user một cách tường minh ( mặc định là UNLOCK)

Bảng 2 1 Thông số khi tạo user với cơ chế xác nhận bởi database

Lưu ý: Khi thiết lập tùy chọn PASSWORD EXPIRE trong lệnh tạo user, khi user sử dụng SQL*PLUS để kết nối tới database, mỗi lần kết nối user lại phải nạp mới mật khẩu Việc truy cập thường sẽ nhận được thông báo:

ERROR:

ORA-28001: the password has expired Changing password for new_user Old password:

New password:

Retype new password: Password changed

2.1.3 Cơ chế xác thực bởi mạng hoặc bên thứ ba

Oracle cung cấp các giao diện (được gọi là adapters) cho một loạt các dịch vụ bảo mật của bên thứ ba để xác thực người dùng Có thể cấu hình các dịch vụ này để người dùng chỉ cần sử dụng một mật khẩu duy nhất để kết nối với bất kỳ cơ sở dữ liệu nào trong mạng của người dùng Kiến trúc đăng nhập một lần (single sign-on) hoạt động bằng cách lưu trữ thông tin tên người dùng và mật khẩu trong cơ sở dữ liệu hoặc hệ thống tệp nằm trên một máy chủ duy nhất, được gọi là máy chủ xác thực

Các dịch vụ xác thực hỗ trợ bao gồm:

• Kerberos

• ICL Access Manager/SESAME

Trang 15

7 • CyberSAFE Challenger

• Bull ISM • SecurID

• DCE Security Service (GSSAPI) • Banyan

• Biometric (Identix)

Kiến Trúc Máy Chủ Xác Thực

Máy chủ xác thực hoạt động như một trung gian giữa các máy tính khách và máy chủ cơ sở dữ liệu, như mô tả trong hình dưới:

Hình 2 1 Minh họa máy chủ xác thực

1 Khi một người dùng trên máy khách khởi tạo kết nối cơ sở dữ liệu, máy khách sẽ yêu cầu thông tin xác thực từ máy chủ xác thực Thông tin này thường ở dạng một khóa được mã hóa

2 Máy chủ xác thực xác minh máy khách và gửi lại thông tin xác thực cần thiết 3 Máy khách thực hiện yêu cầu kết nối tới máy chủ cơ sở dữ liệu, sử dụng thông

tin xác thực nhận được từ máy chủ xác thực

4 Máy chủ cơ sở dữ liệu gửi thông tin xác thực tới máy chủ xác thực để xác thực

Trang 16

dụng như một khóa để mã hóa và giải mã thông tin trong quá trình đăng nhập • Người dùng có thể sử dụng cùng một mật khẩu cho mọi cơ sở dữ liệu mà họ

truy cập, với ít rủi ro rằng mật khẩu này bị xâm phạm

• Bên cạnh việc liên kết mật khẩu với người dùng, cũng có thể liên kết tên người dùng với máy khách để một người dùng cụ thể chỉ có thể kết nối từ một máy khách cụ thể

2.2 Cơ chế mã hóa dữ liệu 2.2.1 Tổng quan về TDE

TDE (Transparent Data Encryption) là tính năng mã hóa dữ liệu trong suốt

của Oracle Database Nó cho phép người dùng mã hóa dữ liệu nhạy cảm được lưu trữ trong bảng, tablespace hoặc toàn bộ database để đảm bảo an toàn dữ liệu ngay cả khi phương tiện lưu trữ bị đánh cắp hoặc bị truy cập trái phép Sau khi dữ liệu được mã hóa, dữ liệu này sẽ được giải mã một cách minh bạch cho người dùng hoặc ứng dụng được ủy quyền khi họ truy cập dữ liệu TDE giúp bảo vệ dữ liệu được lưu trữ trên phương tiện (còn gọi là dữ liệu ở trạng thái nghỉ) trong trường hợp phương tiện lưu trữ hoặc tệp dữ liệu bị đánh cắp Ngoài ra, để ngăn chặn việc giải mã trái phép, TDE lưu trữ các khóa mã hóa trong mô-đun bảo mật bên ngoài cơ sở dữ liệu, được gọi là keystore (kho khóa)

Những điểm cần lưu ý khi sử dụng TDE:

• TDE chỉ mã hóa dữ liệu ở mức File, dữ liệu khi lưu trong File sẽ ở dạng mã hóa Cách này giúp File dữ liệu bị đánh cắp nếu không có khóa thì không xem được

Trang 17

• Khóa chính (Master Key): Khóa DEK được mã hóa bằng một khóa chính (Master Key) được lưu trữ an toàn trong Oracle Wallet

• Truy cập dữ liệu: Khi người dùng hoặc ứng dụng được cấp quyền truy cập dữ liệu, Oracle Database sử dụng Master Key để giải mã khóa DEK và sau đó sử dụng khóa DEK được giải mã để giải mã dữ liệu

2.2.2 Các loại mã hóa TDE

2.2.2.1 Mã hóa theo cột

Mã hóa cột TDE được sử dụng để bảo vệ dữ liệu nhạy cảm, chẳng hạn như thẻ tín dụng và số an sinh xã hội, được lưu trữ trong các cột của bảng Loại mã hóa này sử dụng kiến trúc dựa trên khóa hai tầng để mã hóa và giải mã các cột bảng nhạy cảm Trong đó, khóa mã hóa chính (Master encryption key) được sử dụng để mã hóa và giải mã dữ liệu trong cột của bảng Khóa mã hóa chính được lưu trữ trong một mô-đun an toàn bên ngoài, có thể là ví (Wallet) hoặc Oracle Key Vault,

Hình 2 2 Quá trình mã hóa cột TDE

Trang 18

10

Việc lưu trữ theo cách này sẽ ngăn việc sử dụng trái phép các khóa mật và tách biệt các chức năng chương trình thông thường khỏi các hoạt động mã hóa, giúp phân chia nhiệm vụ giữa người quản trị CSDL và quản trị an toàn, tăng cường khả năng bảo mật Mỗi bảng chứa cột mã hóa có một khóa bảng duy nhất, mỗi khóa bảng được mã hóa riêng bằng Master Key và được lưu trữ dưới dạng bản mã

2.2.2.2 Mã hóa theo tablespace

Mã hóa không gian bảng TDE cho phép mã hóa toàn bộ vùng bảng Tất cả các đối tượng được tạo trong tablespace sẽ được mã hóa tự động Mã hóa tablespace TDE rất hữu ích nếu trong trường hợp muốn bảo vệ dữ liệu nhạy cảm trong các bảng Trường hợp này, không cần thực hiện phân tích chi tiết từng cột trong bảng để xác định các cột cần mã hóa Ngoài ra, mã hóa tablespace TDE tận dụng mã hóa hàng loạt và bộ đệm để cung cấp hiệu suất nâng cao Mặc dù tác động hiệu suất thực tế trên các ứng dụng có thể khác nhau, nhưng chi phí hiệu năng được ước tính trong khoảng từ 5% đến 8%

Hình 2 3 Quá trình mã hóa tablespace

Mã hóa tablespace TDE mã hóa tất cả dữ liệu trong một vùng bảng, việc này có thể thay thế cho mã hóa cột nếu cần mã hóa nhiều cột trong một bảng Loại mã hóa này mã hóa tất cả dữ liệu được lưu trữ trong một vùng bảng và dữ liệu làm lại (redo) tương ứng của nó Mã hóa không gian bảng TDE không mã hóa dữ liệu được

Trang 19

11

lưu trữ bên ngoài vùng bảng Ví dụ, dữ liệu BFILE không được mã hóa vì nó được lưu trữ bên ngoài CSDL Nếu tạo một bảng có cột BFILE trong không gian bảng được mã hóa, thì cột cụ thể này sẽ không được mã hóa

Tất cả dữ liệu trong một vùng bảng được mã hóa sẽ được lưu trữ ở định dạng mã hóa trên đĩa Dữ liệu được giải mã trong suốt cho người dùng được ủy quyền có các đặc quyền cần thiết để được xem hoặc sửa đổi dữ liệu Người dùng hoặc ứng dụng CSDL không cần biết liệu dữ liệu trong một bảng cụ thể có được mã hóa trên đĩa hay không Trong trường hợp các tệp dữ liệu trên đĩa hoặc phương tiện sao lưu bị đánh cắp, dữ liệu sẽ không bị xâm phạm

Mã hóa tablespace TDE sử dụng kiến trúc hai tầng, dựa trên khóa để mã hóa trong suốt và giải mã không gian bảng Khóa chính TDE cũng có chức năng và cách thức lưu trữ như mã hóa cột TDE Mã hóa tablespace TDE cũng cho phép phạm vi chỉ mục quét dữ liệu trong không gian bảng được mã hóa Điều này là không thể với mã hóa cột TDE

Lưu ý, dữ liệu mã hóa được bảo vệ trong các hoạt động như JOIN và SORT Điều này có nghĩa là dữ liệu được an toàn khi nó được di chuyển đến các vùng bảng tạm thời Dữ liệu trong nhật ký hoàn tác (undo) và làm lại (redo) cũng được bảo vệ

2.2.3 Các thuật toán mã hóa và toàn vẹn được hỗ trợ

Các khóa mật mã Tiêu chuẩn mã hóa nâng cao (Advanced Encryption Standard cipher key) được hỗ trợ, bao gồm các khóa mã hóa tablespace và cơ sở dữ liệu, có thể dài 128, 192 hoặc 256 bit Mã hóa tablespace và cơ sở dữ liệu sử dụng khóa mật mã có độ dài 128 bit

Đối với mã hóa cột TDE, theo mặc định, salt được thêm vào văn bản gốc trước khi mã hóa Không thể thêm salt vào các cột được lập chỉ mục mà muốn mã hóa Đối với các cột được lập chỉ mục, hãy chọn tham số NO SALT cho mệnh đề SQL ENCRYPT

Đối với mã hóa tablespace và mã hóa cơ sở dữ liệu TDE, mặc định là sử dụng Tiêu chuẩn mã hóa nâng cao với khóa mật mã có độ dài 128 bit (AES128) Theo

Trang 20

2.3 Cơ chế ủy quyền

Sau khi hệ thống đã xác thực danh tính hay đăng nhập của người dùng, một tập các điều khoản được đưa ra nhằm xác định xem đối tượng có được phép truy cập vào cơ sở dữ liệu hay không

Ủy quyền (Authorization) trong hệ quản trị cơ sở dữ liệu (DBMS) là quá

trình xác định và quản lý quyền truy cập của người dùng đối với các tài nguyên dữ liệu trong cơ sở dữ liệu Các quyền này thường dựa trên vai trò, thuộc tính của người dùng hoặc các tiêu chí khác do các chính sách bảo mật của tổ chức xác định Điều này đảm bảo rằng chỉ những người dùng hoặc hệ thống được phép mới có thể thực hiện các hành động như truy vấn, thêm, sửa đổi, hoặc xóa dữ liệu Nó đóng vai trò quan trọng trong việc bảo vệ dữ liệu nhạy cảm, duy trì tính toàn vẹn của hệ thống và đảm bảo trách nhiệm của người dùng

Cơ chế uỷ quyền trong Oracle 21c

❖ Tạo và quản lý tài khoản người dùng • Tạo tài khoản người dùng

Mỗi tài khoản người dùng có một tên duy nhất, một phương thức xác thực, một tablespace mặc định, một tablespace chứa dữ liệu tạm thời (temp), một profile, một nhóm người dùng khởi tạo (được quản lý bởi Resource Manager), và trạng thái tài khoản

Một schema gồm tập các đối tượng mà người dùng sở hữu, có tên trùng với tài khoản người dùng Trong Oracle Database, khi tạo tài khoản người dùng, sử

dụng câu lệnh CREATE USER Theo mặc định, một người dùng mới được tạo không

có bất kỳ quyền nào trong cơ sở dữ liệu

Ví dụ: tạo một tài khoản tên “username” với mật khẩu “password”:

Trang 21

13

CREATE USER username IDENTIFIED BY password;

• Loại bỏ tài khoản người dùng

Để loại bỏ tài khoản người dùng trong Oracle Database 21c, có thể sử dụng câu lệnh

DROP USER + [username]

Tuy nhiên, cần lưu ý:

- Việc xóa tài khoản người dùng sẽ xóa tất cả các đối tượng được sở hữu bởi người dùng đó, bao gồm bảng, view, procedure, function, package,

- Nếu người dùng sở hữu các đối tượng được sử dụng bởi người dùng khác, cần phải chuyển quyền sở hữu cho người dùng khác trước khi xóa tài khoản - Việc xóa tài khoản người dùng là thao tác không thể đảo ngược Phải đảm bảo

đã sao lưu dữ liệu cần thiết trước khi thực hiện thao tác này

- Ngoài ra, có thể sử dụng tùy chọn CASCADE để tự động xóa các đối tượng được sở hữu bởi người dùng Tùy chọn CASCADE sẽ xóa tất cả các bảng,

view, procedure, function, package, được sở hữu bởi người dùng mà không cần phải chuyển quyền sở hữu cho người dùng khác trước

Để xóa tài khoản người dùng mà không xóa các đối tượng được sở hữu, sử

dụng tùy chọn RESTRICT Tùy chọn RESTRICT sẽ ngăn chặn việc xóa tài khoản

người dùng nếu người dùng sở hữu các đối tượng mà chưa được chuyển quyền sở hữu cho người dùng khác

❖ Đặc quyền người dùng

Hệ thống ủy quyền trong Oracle Database 21c đóng vai trò quan trọng trong việc kiểm soát quyền truy cập dữ liệu và chức năng của người dùng Việc cấp quyền cho phép quản trị viên xác định ai có thể truy cập dữ liệu nào, thực hiện hành động nào và truy cập dữ liệu đó như thế nào

Để cấp đặc quyền cho người dùng, có thể sử dụng câu lệnh GRANT Cú pháp

cơ bản như sau:

GRANT privileges ON object TO [user | role];

Trong đó:

Trang 22

14

privileges: Quyền được cấp, ví dụ như SELECT, INSERT, UPDATE,

DELETE, CREATE, DROP

object: Đối tượng mà quyền được cấp, ví dụ như bảng, view, procedure,

function

user | role: Tên người dùng hoặc nhóm người dùng được cấp quyền

Có hai loại đặc quyền chính trong Oracle Database:

- Đặc quyền hệ thống: Cho phép người dùng thực hiện các hành động quản trị, chẳng hạn như tạo và xóa bảng, cấp quyền cho người dùng khác,

- Đặc quyền đối tượng: Cho phép người dùng truy cập và thao tác với các đối tượng cụ thể trong cơ sở dữ liệu, chẳng hạn như bảng, khung nhìn, thủ tục, hàm, gói tin,

Ngoài ra, có thể sử dụng các tùy chọn bổ sung để tinh chỉnh cách thức gán quyền:

- WITH GRANT OPTION: Cho phép người dùng nhận quyền cấp lại quyền

cho người dùng khác

- WITHOUT GRANT OPTION: Loại bỏ quyền cấp lại khỏi quyền được cấp - WITH ADMIN OPTION: Cho phép người dùng được cấp quyền này có thể

thay đổi quyền của người dùng khác

- AS [user]: Cho phép người dùng thực hiện hành động với tư cách là người

dùng khác

- TO PUBLIC: Gán quyền cho tất cả người dùng trong cơ sở dữ liệu

Trong Oracle Database 21c, để thu hồi các đặc quyền đã được cấp trước đó cho người dùng hoặc nhóm người dùng, sử dụng câu lệnh REVOKE Cấu trúc cơ bản của câu lệnh REVOKE:

REVOKE privileges ON object FROM [user | role];

Trong đó:

privileges: Đặc quyền mà bạn muốn thu hồi

object: Tên của đối tượng mà bạn muốn thu hồi quyền

user | role: Tên của người dùng hoặc nhóm người dùng mà bạn muốn

thu hồi quyền

Trang 23

15

Ví dụ: để thu hồi tất cả các quyền cho bảng “table” của nhóm “usergroup”:

REVOKE SELECT, INSERT, UPDATE, DELETE ON table FROM usergroup;

Ngoài ra, có thể sử dụng các tùy chọn bổ sung ở cuối câu lệnh để tinh chỉnh

hành vi của câu lệnh REVOKE:

- CASCADE: Thu hồi quyền theo cấp số nhân cho các đối tượng con - GRANT OPTION: Thu hồi quyền cấp lại cho các đối tượng con - ALL: Thu hồi tất cả các đặc quyền đã được cấp cho đối tượng

Lưu ý:

- Cần có đặc quyền ADMIN hoặc có quyền thực hiện REVOKE để có thể thu hồi quyền từ người dùng khác

- Người dùng chỉ có thể thu hồi quyền mà họ được ủy quyền

- Việc thu hồi quyền có thể ảnh hưởng đến khả năng hoạt động của người dùng hoặc nhóm người dùng Nên cân nhắc kỹ lưỡng trước khi thu hồi quyền

- Nên sử dụng câu lệnh REVOKE một cách cẩn thận và chỉ thu hồi những quyền

không cần thiết nữa

Ngoài câu lệnh REVOKE, có thể sử dụng DENY để ngăn người dùng thực hiện

các hành động cụ thể trên đối tượng Phương pháp này không trực tiếp từ chối việc cấp quyền, nó không linh hoạt như các phương pháp khác và có thể dẫn đến các lỗi truy cập không mong muốn

Ví dụ: để từ chối cấp quyền cho “username” được chèn với đối tượng “bảng”:

DENY INSERT ON table TO username; ❖ Vai trò (Role)

Oracle cung cấp công cụ cho phép quản lý một cách dễ dàng các quyền thông qua việc sử dụng vai trò (Roles)

• Các vai trò có thể được tạo ra bằng việc sử dụng câu lệnh theo cú pháp:

CREATE ROLE role_name [NOT IDENTIFIED | IDENTIFIED {BY password | EXTERNALLY }]

Trong đó:

Trang 24

16

role_name: tên của vai trò

NOT IDENTIFIED: chỉ định không cần kiểm tra vai trò khi enable vai trò BY password: mật khẩu người dùng cần cung cấp khi enable vai trò

EXTERNALLY: chỉ định user phải được xác lập bởi dịch vụ bên ngoài (như

hệ điều hành hay dịch vụ bên thứ ba) trước khi enable vai trò • Để sửa lại vai trò đã tồn tại, sử dụng cú pháp:

ALTER ROLE role_name {NOT IDENTIFIED | IDENTIFIED {BY password | EXTERNALLY }};

• Khi đã có sẵn vai trò, có thể gán quyền cho người dùng qua các vai trò đó qua cú pháp:

GRANT role_name TO {user|role|PUBLIC} [WITH ADMIN OPTION]

Với:

role_name: tên của chức danh gán user: tên của user được gán chức danh role: tên của chức danh được gán

PUBLIC: chỉ định gán chức danh cho tất cả các user

WITH ADMIN OPTION: cho phép user được gán chức danh có thể gán chức

danh cho user khác User tạo chức danh được mặc định gán tuỳ chọn WITH ADMIN OPTION

Thông tin về các chức danh được lấy trong data dictionary Có rất nhiều tables và views chứa thông tin về các quyền được gán cho người dùng

DBA_ROLES Tất cả các chức danh trong database

DBA_ROLE_PRIVS Các chức danh đã được gán quyền cho user hay chức danh khác

ROLE_PRIVS Các chức danh đã được gán quyền cho chức danh khác

DBA_SYS_PRIVS Quyền hệ thống gán cho user hay chức danh

Trang 25

17

ROLE_SYS_PRIVS Quyền hệ thống gán cho chức danh

ROLE_TAB_PRIVS Quyền trên table được gán cho chức danh

SESSION_ROLES Các chức danh được phép của user hiện thời Bảng 2 2 Bảng các chức danh trong data dictionary

2.4 Cơ chế kiểm toán

Kiểm toán (auditing) được hiểu là toàn bộ các hoạt động giám sát và ghi lại những gì xảy ra đối với hệ thống công nghệ thông tin Các thông tin được ghi lại có thể là những thay đổi về trạng thái hoạt động của hệ thống hay các tương tác qua lại giữa hệ thống và người dùng

Dựa trên những bản ghi kiểm toán, quản trị viên cơ sở dữ liệu (DBA) sẽ phát hiện kịp thời những tấn công hay lỗ hổng ảnh hưởng đến cơ sở dữ liệu, từ đó ngăn chặn hành vi phá hoại hay xâm phạm của tin tặc, nhanh chóng sửa đổi những bất thường của hệ thống

Có 5 cơ chế kiểm toán cơ bản trong CSDL bao gồm:

• Kiểm toán bắt buộc (Mandatory Auditing): Là các hoạt động kiểm toán mặc định Dù CSDL kiểm toán có được kích hoạt hay không, thì hệ thống vẫn kiểm tra một số hoạt động liên quan đến CSDL và ghi chúng vào tập tin vận hành hệ thống kiểm toán

• Kiểm toán chuẩn (Standard Database Auditing): Đây là thiết lập kiểm toán ở cấp độ hệ thống bằng cách sử dụng những tham số AUDIT_TRAIL Sau khi kích hoạt tính năng này, cần lựa chọn các đối tượng và đặc quyền muốn kiểm toán

• Kiểm toán dựa trên giá trị (Value-based Auditing): Là cơ chế kiểm toán dựa trên kiểm toán chuẩn, tuy nhiên nó còn kiểm toán dựa trên giá trị thực tế đã được đưa vào, cập nhật, hoặc bị xóa

• Kiểm toán mịn (Fine-grained auditing- FGA): cơ chế này được mở rộng từ kiểm toán chuẩn, ghi lại các câu lệnh SQL đã được thực hiện thay vì chỉ những sự kiện đã xảy ra

Ngày đăng: 06/07/2024, 10:28

HÌNH ẢNH LIÊN QUAN

Hình 2. 1. Minh họa máy chủ xác thực - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 2. 1. Minh họa máy chủ xác thực (Trang 15)
Hình 2. 2. Quá trình mã hóa cột TDE - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 2. 2. Quá trình mã hóa cột TDE (Trang 17)
Hình 2. 3. Quá trình mã hóa tablespace - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 2. 3. Quá trình mã hóa tablespace (Trang 18)
Hình 3. 2. Giá trị của tham số os_authent_prefix - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 2. Giá trị của tham số os_authent_prefix (Trang 34)
Hình 3. 1. Tạo người dùng tại Computer Management - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 1. Tạo người dùng tại Computer Management (Trang 34)
Hình 3. 5. Tạo thư mục wallet - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 5. Tạo thư mục wallet (Trang 35)
Hình 3. 7. Kiểm tra trạng thái wallet - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 7. Kiểm tra trạng thái wallet (Trang 36)
Hình 3. 9. Kiểm tra trạng thái mã hóa của tablespace - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 9. Kiểm tra trạng thái mã hóa của tablespace (Trang 37)
Hình 3. 10. Tạo user test và cấp quyền cho user test  Kiểm tra việc mã hóa bằng cách tạo bảng và chèn các bản ghi vào bảng - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 10. Tạo user test và cấp quyền cho user test Kiểm tra việc mã hóa bằng cách tạo bảng và chèn các bản ghi vào bảng (Trang 37)
Hình 3. 12. Dữ liệu ở bảng sinhvien sau khi thêm  Flush buffer cache để đảm bảo dữ liệu được ghi vào datafile - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 12. Dữ liệu ở bảng sinhvien sau khi thêm Flush buffer cache để đảm bảo dữ liệu được ghi vào datafile (Trang 38)
Hình 3. 15. Thực hiện select bằng user1 khi chưa được cấp quyền - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 15. Thực hiện select bằng user1 khi chưa được cấp quyền (Trang 39)
Hình 3. 20. Kết quả khi thực hiện select bằng user2  Tiếp theo, quay về user SYS, thu hồi quyền đối với USER1 - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 20. Kết quả khi thực hiện select bằng user2 Tiếp theo, quay về user SYS, thu hồi quyền đối với USER1 (Trang 41)
Hình 3. 22. Kết quả lệnh select sau khi thu hồi quyền của 2 user - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 22. Kết quả lệnh select sau khi thu hồi quyền của 2 user (Trang 42)
Hình 3. 23. USER1 và USER2 sau khi được gán quyền thành công  Tạo bảng lưu kết quả kiểm toán - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 23. USER1 và USER2 sau khi được gán quyền thành công Tạo bảng lưu kết quả kiểm toán (Trang 42)
Hình 3. 25. Trigger kiểm toán đăng nhập tạo thành công  Tạo trigger khi đăng xuất - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 25. Trigger kiểm toán đăng nhập tạo thành công Tạo trigger khi đăng xuất (Trang 43)
Hình 3. 24. Bảng lưu kết quả kiểm toán  Tạo trigger khi đăng nhập - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 24. Bảng lưu kết quả kiểm toán Tạo trigger khi đăng nhập (Trang 43)
Hình 3. 26. Trigger kiểm toán đăng xuất tạo thành công  Thực hiện đăng nhập đăng xuất với user vừa tạo ở trên - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 26. Trigger kiểm toán đăng xuất tạo thành công Thực hiện đăng nhập đăng xuất với user vừa tạo ở trên (Trang 44)
Hình 3. 32. Dữ liệu bảng EMP trước khi áp dụng chính sách VPD mức cột - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 32. Dữ liệu bảng EMP trước khi áp dụng chính sách VPD mức cột (Trang 46)
Hình 3. 33. Dữ liệu bảng EMP sau khi áp dụng chính sách VPD mức cột - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 33. Dữ liệu bảng EMP sau khi áp dụng chính sách VPD mức cột (Trang 46)
Hình 3. 31. Gán policy cho bảng emp thành công - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 31. Gán policy cho bảng emp thành công (Trang 46)
Hình 3. 34 . Dữ liệu bảng EMP khi triển khai column masking - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
Hình 3. 34 . Dữ liệu bảng EMP khi triển khai column masking (Trang 47)
BẢNG PHÂN CÔNG - Tìm hiểu các cơ chế an toàn cơ bản trong oracle 21c
BẢNG PHÂN CÔNG (Trang 50)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w