Bài 15: Bảo mật và an toàn hệ cơ sở dữ liệu – Lý thuyết

I. Lý thuyết trọng tâm

1. Bảo mật hệ CSDL

Mỗi hệ CSDL đều được xây dựng với mục đích xác định nhằm phục vụ một hệ thống quản lí (bán vé máy bay, đặt chỗ khách sạn, quản lí bệnh án, quản lí kết quả học tập, website mạng xã hội,…). Thực tế đã xảy ra nhiều vụ dữ liệu bị đánh cắp, tài khoản người dùng mạng xã hội bị gán những phát biểu sai trái,… một phần do các hệ CSDL liên quan chưa được bảo vệ đủ tốt.

a) Phân quyền người dùng

Công việc đầu tiên khi xây dựng chính sách bảo mật CSDL là lập danh sách và xác định quyền hạn các nhóm người dùng đối với hệ CSDL.

Xét ví dụ website âm nhạc (CSDL music), có thể phân thành bốn nhóm người dùng với quyền hạn khác nhau:

Nhóm Đặc điểm Tài khoản truy xuất CSDL Quyền hạn
Nhóm 1 Không cần khai báo, đăng nhập guest Chỉ được tìm kiếm, xem dữ liệu (SELECT)
Nhóm 2 Người dùng có quyền thêm dữ liệu moderator SELECT, INSERT – được thêm bản nhạc mới, nhạc sĩ, ca sĩ mới nhưng không được xoá, sửa
Nhóm 3 Người dùng có quyền xoá, sửa dữ liệu master_mod SELECT, INSERT, UPDATE, DELETE đối với tất cả các bảng nhưng không được thay đổi cấu trúc bảng, không được xoá bảng
Nhóm 4 Người dùng có toàn quyền admin Toàn quyền đối với tất cả các bảng trong CSDL, bao gồm cả quyền tạo lập các bảng

Lưu ý quan trọng: ngay cả người dùng có quyền cao nhất ở nhóm 4 (admin) cũng không thể can thiệp vào các CSDL khác được quản trị trong cùng hệ QTCSDL. Mỗi CSDL có hệ thống phân quyền riêng biệt.

b) Ý thức và trách nhiệm của người dùng

Việc đảm bảo an ninh CSDL còn phụ thuộc vào chính ý thức của người dùng. Nếu những người dùng thuộc nhóm 2, 3, 4 không bảo vệ quyền của mình, để lộ hay để người khác chiếm được tài khoản, thì các giải pháp bảo mật theo hình thức phân quyền sẽ hạn chế tác dụng. Mở rộng ra, đối với những CSDL cần bảo mật cao như CSDL ngân hàng, chứng khoán,… nếu người dùng tiết lộ thông tin truy cập thì dữ liệu cũng không còn được bảo mật.

c) Giám sát hoạt động hệ thống

Khi một ứng dụng CSDL hoạt động, nó có thể trở thành hệ thống phục vụ hàng nghìn, hàng trăm nghìn, thậm chí hàng triệu người truy cập đồng thời. Người quản trị không thể biết hết mọi hoạt động của người dùng và tình trạng bên trong hệ thống. Vì vậy, cần có kế hoạch cụ thể để tổ chức giám sát trạng thái hoạt động của hệ thống: số người truy cập, tình trạng thiết bị, máy móc,…

Những truy xuất của người dùng cần được lưu lại dưới dạng biên bản (thường gọi là log file) để khi cần có thể kiểm tra, phân tích. Đồng thời phải xây dựng kế hoạch xử lí các tình huống dự tính có thể xảy ra.

d) An ninh mạng

Khi hệ thống máy tính chứa CSDL được kết nối vào mạng, cần phải có kế hoạch cụ thể về các giải pháp an ninh mạng (cả về phần cứng và phần mềm) để chống lại các cuộc tấn công qua mạng.

e) Tóm tắt chính sách bảo mật toàn diện

Công tác bảo mật CSDL cần được thực hiện với một chính sách bảo mật toàn diện bao gồm:

  • Quy định liên quan đến ý thức và trách nhiệm của người dùng đối với tài khoản của mình và dữ liệu trong CSDL.
  • Quy định về tổ chức đảm bảo an ninh mạng cùng với hệ thống phần cứng và phần mềm cụ thể.
  • Danh sách các nhóm người dùng và danh sách tài khoản truy xuất CSDL với quyền hạn tương ứng.
  • Biện pháp giám sát trạng thái hoạt động của hệ thống, người dùng. Có những quy định về làm biên bản lưu trữ hoạt động của hệ thống và kế hoạch xử lí những tình huống có thể xảy ra.

2. Bảo đảm an toàn dữ liệu

Bảo đảm an toàn dữ liệu là việc đảm bảo dữ liệu trong CSDL không bị sai lệch, mất mát khi hệ thống phần cứng, phần mềm gặp sự cố rủi ro. Cần xây dựng chính sách an toàn dữ liệu cùng kế hoạch xử lí các sự cố có thể xảy ra.

a) Sự cố về nguồn điện

Đây là loại sự cố phổ biến có thể gây mất mát hoặc hỏng dữ liệu:

  • Hệ thống cấp điện không đủ công suất. Giải pháp: Xây dựng hệ thống cấp điện đủ công suất cho toàn bộ hệ thống.
  • Hệ thống cấp điện bị quá tải do nhu cầu sử dụng điện tăng đột biến. Giải pháp: Thường xuyên kiểm tra hệ thống cấp điện, đặc biệt trong những thời gian nhu cầu sử dụng điện tăng vọt.
  • Hệ thống cấp điện ngừng đột ngột vì những lí do khác. Giải pháp: Dùng bộ lưu điện (UPS) để cấp điện ngay cho hệ thống máy tính quản trị CSDL khi mất điện đột ngột, đảm bảo hệ thống có thời gian lưu dữ liệu và tắt an toàn.

b) Sự cố hư hỏng thiết bị lưu trữ

Các thiết bị lưu trữ (ví dụ ổ đĩa cứng) có khả năng gặp sự cố. Khi đó, nói chung rất khó lấy lại được toàn bộ và chính xác dữ liệu trong thiết bị lưu trữ bị hỏng.

  • Thiết bị lưu trữ bị hư hỏng vì quá tuổi thọ. Giải pháp: Quản lí thời gian sử dụng của thiết bị lưu trữ, thay thế trước khi thiết bị đến giai đoạn thường bị hư hỏng.
  • Thiết bị lưu trữ bị hư hỏng vì các lí do khác. Giải pháp: Sao lưu dữ liệu định kì. Tất cả các hệ QTCSDL đều hỗ trợ khả năng sao lưu toàn bộ dữ liệu ra thiết bị dự phòng. Ngoài ra, có thể dùng giải pháp thiết bị lưu trữ hỗ trợ bảo vệ dữ liệu (các hãng sản xuất cung cấp giải pháp lưu trữ hai phiên bản dữ liệu, kiểm tra chéo để đảm bảo tính chính xác).

c) Tóm tắt chính sách an toàn dữ liệu

Tuỳ theo yêu cầu cụ thể của mỗi tổ chức, đặc điểm về CSDL, cần xây dựng chính sách đảm bảo an toàn dữ liệu bao gồm:

  • Kế hoạch xử lí các sự cố có thể xảy ra và giải pháp hạn chế, khắc phục.
  • Quy định về ý thức, trách nhiệm đối với người dùng và người vận hành hệ thống.
  • Các hệ QTCSDL đều hỗ trợ chức năng sao lưu định kìphục hồi dữ liệu từ bản sao lưu gần nhất.

Sao lưu dữ liệu định kì rất quan trọng vì nếu xảy ra sự cố (hỏng thiết bị, mất điện đột ngột, tấn công mạng,…), dữ liệu có thể được khôi phục từ bản sao lưu gần nhất, giảm thiểu tối đa tổn thất.

II. Phương pháp giải các dạng bài tập

Dạng: Phân tích vai trò ý thức người dùng và xây dựng mô hình phân quyền truy cập CSDL

Phương pháp:

Bước 1 – Xác định các nhóm người dùng: Từ đề bài, phân loại người dùng theo mức độ quyền hạn cần thiết (chỉ xem, thêm dữ liệu, sửa/xoá, toàn quyền).

Bước 2 – Gán tài khoản và quyền cụ thể: Mỗi nhóm có một tài khoản truy xuất CSDL với quyền hạn tương ứng. Quyền thấp nhất là SELECT (xem), quyền cao dần là INSERT (thêm), UPDATE (sửa), DELETE (xoá), và cao nhất là toàn quyền bao gồm cả thay đổi cấu trúc bảng.

Bước 3 – Phân tích vai trò ý thức: Dù hệ thống phân quyền tốt đến đâu, nếu người dùng không bảo vệ tài khoản (để lộ mật khẩu, chia sẻ quyền truy cập trái phép) thì bảo mật sẽ bị vô hiệu hoá. Tương tự, người vận hành hệ thống cần có ý thức trách nhiệm trong giám sát, sao lưu dữ liệu, xử lí sự cố.

Bài 1 (Luyện tập SGK). Tại sao cần phải có những quy định về ý thức và trách nhiệm của người dùng đối với tài khoản của mình và dữ liệu trong CSDL?

Lời giải:

Cần có quy định về ý thức và trách nhiệm của người dùng vì:

  • Giải pháp bảo mật bằng phân quyền chỉ phát huy tác dụng khi mỗi người dùng tự bảo vệ tài khoản của mình. Nếu người dùng để lộ hoặc để người khác chiếm được tài khoản (chia sẻ mật khẩu, đăng nhập trên máy công cộng không đăng xuất,…), kẻ xấu có thể lợi dụng quyền hạn của tài khoản đó để truy cập, sửa đổi hoặc xoá dữ liệu trái phép.
  • Đối với những CSDL yêu cầu bảo mật cao (ngân hàng, chứng khoán,…), nếu người dùng tiết lộ thông tin truy cập thì toàn bộ dữ liệu trong CSDL đều có nguy cơ bị xâm phạm, dù hệ thống kỹ thuật có an toàn đến đâu.
  • Ngoài ra, người dùng cũng cần có ý thức không thao tác sai trên dữ liệu (nhập sai, xoá nhầm,…) vì điều này ảnh hưởng đến tính chính xác và toàn vẹn của CSDL.

Bài 2 (Luyện tập SGK). Tại sao cần có những quy định về ý thức trách nhiệm của những người vận hành hệ thống?

Lời giải:

Cần có quy định về ý thức trách nhiệm của người vận hành hệ thống vì:

  • Người vận hành hệ thống chịu trách nhiệm giám sát trạng thái hoạt động của hệ thống (số người truy cập, tình trạng thiết bị, dấu hiệu bất thường,…). Nếu thiếu ý thức trách nhiệm, các sự cố hoặc nguy cơ bảo mật có thể không được phát hiện kịp thời.
  • Người vận hành cần thực hiện đúng quy trình sao lưu dữ liệu định kì, kiểm tra biên bản hoạt động (log file), đảm bảo hệ thống luôn sẵn sàng phục hồi khi có sự cố.
  • Hệ thống có thể phục vụ hàng nghìn đến hàng triệu người truy cập đồng thời. Người vận hành phải có kế hoạch xử lí các tình huống bất ngờ (quá tải, tấn công mạng, hỏng thiết bị,…). Nếu thiếu trách nhiệm, hậu quả có thể rất lớn: mất dữ liệu, gián đoạn dịch vụ, lộ thông tin người dùng.

Bài 3 (Vận dụng SGK). Ở một trung tâm dạy tiếng Anh, có bốn giáo viên dạy bốn kĩ năng là luyện nghe, luyện nói, luyện đọc, luyện viết. CSDL quản lí điểm học tập của học viên có các bảng là diemnghe, diemnoi, diemdoc, diemviet. Các học viên được quyền chỉ xem các bảng điểm, các giáo viên được quyền thêm mới, cập nhật, xoá các bản ghi trong bảng điểm môn học mình dạy, chỉ một người dùng có toàn quyền đối với tất cả các bảng trong CSDL. Hãy xây dựng mô hình phân nhóm người dùng truy cập CSDL nói trên.

Lời giải:

Phân thành sáu nhóm người dùng như sau:

Nhóm Đối tượng Tài khoản Quyền hạn
Nhóm 1 Các học viên hocvien SELECT đối với tất cả 4 bảng (diemnghe, diemnoi, diemdoc, diemviet) – chỉ được xem điểm
Nhóm 2 Giáo viên dạy Nghe gv_nghe SELECT trên tất cả 4 bảng; SELECT, INSERT, UPDATE, DELETE trên bảng diemnghe
Nhóm 3 Giáo viên dạy Nói gv_noi SELECT trên tất cả 4 bảng; SELECT, INSERT, UPDATE, DELETE trên bảng diemnoi
Nhóm 4 Giáo viên dạy Đọc gv_doc SELECT trên tất cả 4 bảng; SELECT, INSERT, UPDATE, DELETE trên bảng diemdoc
Nhóm 5 Giáo viên dạy Viết gv_viet SELECT trên tất cả 4 bảng; SELECT, INSERT, UPDATE, DELETE trên bảng diemviet
Nhóm 6 Người quản trị admin Toàn quyền đối với tất cả các bảng trong CSDL

Mỗi giáo viên chỉ được thao tác (thêm, sửa, xoá) trên đúng bảng điểm môn mình phụ trách, nhưng được xem tất cả các bảng điểm. Chỉ duy nhất tài khoản admin có toàn quyền bao gồm cả thay đổi cấu trúc bảng và quản lí tài khoản.

III. Sơ đồ tư duy

BẢO MẬT VÀ AN TOÀN HỆ CƠ SỞ DỮ LIỆU
│
├── 1. BẢO MẬT HỆ CSDL
│   ├── Phân quyền người dùng
│   │   ├── Nhóm 1 (guest): chỉ xem (SELECT)
│   │   ├── Nhóm 2 (moderator): xem + thêm (INSERT)
│   │   ├── Nhóm 3 (master_mod): xem + thêm + sửa + xoá
│   │   └── Nhóm 4 (admin): toàn quyền (kể cả tạo bảng)
│   │
│   ├── Ý thức & trách nhiệm người dùng
│   │   ├── Bảo vệ tài khoản cá nhân
│   │   ├── Không để lộ mật khẩu, quyền truy cập
│   │   └── Phân quyền vô hiệu nếu tài khoản bị lộ
│   │
│   ├── Giám sát hoạt động hệ thống
│   │   ├── Theo dõi: số người truy cập, thiết bị
│   │   ├── Lưu biên bản hoạt động (log file)
│   │   └── Kế hoạch xử lí tình huống bất ngờ
│   │
│   ├── An ninh mạng
│   │   └── Giải pháp phần cứng + phần mềm
│   │       chống tấn công qua mạng
│   │
│   └── Chính sách bảo mật toàn diện
│       ├── Quy định ý thức, trách nhiệm người dùng
│       ├── Quy định tổ chức an ninh mạng
│       ├── Danh sách nhóm người dùng + quyền hạn
│       └── Biện pháp giám sát + log file + kế hoạch xử lí
│
└── 2. BẢO ĐẢM AN TOÀN DỮ LIỆU
    ├── Sự cố về nguồn điện
    │   ├── Không đủ công suất → xây hệ thống đủ CS
    │   ├── Quá tải → kiểm tra thường xuyên
    │   └── Mất điện đột ngột → dùng bộ lưu điện (UPS)
    │
    ├── Sự cố hư hỏng thiết bị lưu trữ
    │   ├── Quá tuổi thọ → thay thế trước khi hỏng
    │   └── Hư hỏng bất ngờ → sao lưu định kì
    │       + thiết bị lưu trữ dự phòng
    │
    └── Chính sách an toàn dữ liệu
        ├── Kế hoạch xử lí sự cố + giải pháp khắc phục
        ├── Quy định ý thức người dùng & vận hành
        └── Hệ QTCSDL hỗ trợ sao lưu định kì
            & phục hồi từ bản sao lưu gần nhất
Thầy Phạm Thành Danh

Thầy Phạm Thành Danh

(Người kiểm duyệt, ra đề)

Chức vụ: Trưởng ban biên soạn môn Tin Học THPT

Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1

Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa