Database safety and security
Tags: database, vietnameseblogs
Published: 2022-06-04 08:13:18

Xin chào, tôi là tuấn. Nay tôi sẽ chia sẻ về các Chính sách bảo mật mà tôi đã biết.

#### 1. User authentication: chính sách định danh người dùng
-Được sử dụng với các hệ thống đóng.
-Thường được kết hợp thêm với các chính sách bảo mật khác để tăng tính an toàn.
-Các phương pháp định danh phổ biến:
* Username và password: password thường được lưu ở dạng hash (kết hợp định danh và mã hóa).
* Sinh trắc học (vân tay, mắt, ...)
* RFID: thẻ từ chứa thông tin.
* Token: 1 dạng chìa khóa, thẻ nhận dạng đã được cấp phép đăng nhập vào hệ thống.
* Mã OTP: loại mã được tạo ra và gửi cho người dùng khi có yêu cầu đăng nhập được gửi tới hệ thống, có giá trị trong 1 khoảng thời gian nhất định hoặc có giới hạn số lần sử dụng (thường là 1).
* Cảnh báo truy cập: hệ thống sẽ thông báo cho chủ tài khoản biết rằng có người đã đăng nhập vào tài khoản của mình và đợi sự xác nhận từ chủ tài khoản.

** Ưu điểm: 
-> Dễ dàng cài đặt và sử dụng.
-> Cơ chế đơn giản nhưng hiệu quả, được sử dụng rộng rãi trên nhiều hệ thống vì độ đa dạng của phương pháp.
** Khuyết điểm: 
-> Giá thành không ổn định, có những phương pháp đắt tiền vì cần thêm các trang thiết bị chuyên dụng.
-> Không thể ngăn người dùng lạm quyền một khi người dùng đã vào được hệ thống.

#### 2. Access Control: chính sách điều khiển truy cập.
- DAC (Direct access control): là chính sách cơ bản nhất của việc phân quyền cho người dùng dựa vào tài khoản của chính người dùng đó, có thể phân quyền cho 1 người nhiều lần nhưng chỉ có thể phân quyền cho 1 người trong 1 lúc, có thể trao quyền hạn của mình cho người dùng khác. Thường sẽ được tích hợp chung với các chính sách điều khiển truy cập khác.
- CBAC (Content-based access control): là chính sách có cơ sở là việc tạo và phân chia các khung nhìn (view) cũng như các quyền hạn truy cập và sửa đổi các thuộc tính dữ liệu cho từng tài khoản người dùng.
- RBAC (Role-based access control): là chính sách lấy cơ sở gom nhóm nhiều tài khoản người dùng lại tạo thành 1 nhóm người dùng có cùng quyền hạn đọc, ghi đối với các đối tượng trong cơ sở dữ liệu, các tài khoản người dùng có cùng tính chất, chức vụ trong hệ thống sẽ được trao các quyền hạn giống nhau và có thể trao quyền hạn cho tất cả người dùng có chức vụ đó trong cùng 1 lúc.
- VPD (Virtual private database): một chính sách điều khiển truy cập đặc biệt của riêng Oracle, bằng cách gán các vị từ vào các câu truy vấn bảng khi được gọi dựa vào từng loại người dùng thông qua các policy được cài đặt trước, phương pháp này có thể giúp giảm thiểu số lượng view phải tạo nếu như đứng trước việc quá nhiều loại người dùng.
- OLS (Oracle level security): là hiện thực hóa của mô hình MAC (Mandatory access control), hoạt động dựa theo nguyên lý “no read up, no write down”. Phân quyền không dựa trên loại người dùng mà phân quyền dựa trên các cấp độ của dữ liệu. Được chia ra là 3 loại: Level (độ quan trọng của dữ liệu, cấp bậc chức vụ của người dùng), Compartment (các nhóm chức vụ bao gồm các người dùng có công việc giống nhau) và Group (thường sẽ là vị trí địa lý, các chi nhánh của tổ chức).

** Ưu điểm: 
-> Thích hợp cho các hệ thống lớn, có lượng người dùng và loại người dùng đông đảo.
-> Giá thành cài đặt không cao.
-> Tránh được việc người dùng vượt quyền, làm những việc không liên quan đến phận sự của mình.
** Khuyết điểm: 
-> Một người có thể nắm quá nhiều quyền hạn trong hệ thống (admin).
-> Có thể xảy ra chuyện xung đột khi áp dụng nhiều chính sách điều khiển truy cập lên 1 bảng.
-> Khó kiểm soát được việc người dùng trao quyền.

#### 3. Encryption: phương pháp mã hóa dữ liệu.
-Là phương pháp che dấu dữ liệu, biến dữ liệu từ có nghĩa sang vô nghĩa đối với các kẻ tấn công.
-Là rào cản cuối cùng của việc bảo mật dữ liệu, khi mà các chính sách bảo mật khác đều đã bị vượt qua.
-Lưu ý rằng phương pháp mã hóa chỉ có thể tránh được cuộc tấn công của người chứ không cản được cuộc tấn công của máy tính.
-1 thuật toán mã hóa được gọi là an toàn khi: thời gian giải mã rất dài.
-Các phương pháp mã hóa phổ biến:
- Mã hóa đối xứng: mã hóa và giải mã đều xài chung 1 khóa.
- Mã hóa bất đối xứng: mã hóa bằng một public key nhưng để giải mã thì cần sử dụng 1 private key.
- Mã hóa lai: dùng phương pháp mã hóa bất đối xứng để mã hóa key dùng chung của mã hóa đối xứng.
- Hàm băm mật mã: dùng 1 key ban đầu để giấu dữ liệu.

** Ưu điểm: 
-> Là chính sách có thể nói là an toàn nhất vì có thể giấu được dữ liệu với cả DBA.
-> Thông tin cho dù bị đọc cũng không bị lộ.
** Khuyết điểm: 
-> Mã hóa làm tăng lượng xử lý khi truy cập dữ liệu, tăng dung lượng lưu trữ dữ liệu.
-> Làm hệ quản trị cơ sở dữ liệu không thể áp dụng các phương thức tìm kiếm dữ liệu cơ bản (index,...).
-> Cần một chính sách quản lý và phân phối khóa thích hợp.
-> Tất cả đều dựa vào khóa, vì thuật toán mã hóa được công bố rộng rãi nên nếu mã khóa bị lộ thì có nghĩa là dữ liệu sẽ bị lộ, nếu mất khóa thì xem như mất dữ liệu.

#### 4.Audit: cơ chế ghi nhật ký trong cơ sở dữ liệu.
-Được quản lý bởi admin hệ thống để quan sát và ghi lại các hoạt động cần thiết trong CSDL, tăng tính bảo mật và phục hồi dữ liệu.
-Thông tin được ghi gồm các thành phần: người thực hiện thao tác + thao tác dữ liệu + đối tượng dữ liệu + tình trạng của thao tác.

** Ưu điểm:
-> Hỗ trợ admin hệ thống quản lý hệ thống một cách hiệu quả hơn, giúp quan sát rõ được từng người dùng đang làm gì nếu cần.
-> Giúp ghi lại các hành động đáng ngờ trong hệ thống.
-> Khi hệ thống bị lỗi hoặc mất mát dữ liệu thì nhật ký chính là cơ sở giúp hệ thống khôi phục lại các dữ liệu bị mất.
** Khuyết điểm:
-> Bị sự chi phối của admin.
-> Nếu audit lại tất cả hoạt động của hệ thống một cách không chọn lọc thì khó có thể biết được các thông tin đáng ngờ cũng như làm chậm hiệu suất hệ thống vì tăng thêm 1 việc là ghi nhật ký.