CHƯƠNG 1 TỔNG QUAN VỀ AN TOÀN CƠ SỞ DỮ LIỆU Việc lưu trữ và quản lý dữ liệu ngày nay hầu hết được thực hiện trên các hệ thống máy tính. Vấn đề đặt ra là phải có phương pháp đảm bảo tính an toàn và toàn vẹn của dữ liệu trên các hệ thống này để phục vụ tốt nhu cầu khai thác dữ liệu của người dùng. Để thể hiện an toàn trong CSDL, thông tin trong CSDL phải đáp ứng các yêu cầu sau[5]: - Tính bí mật (Confidentiality): Bảo đảm rằng chỉ người dùng được phép mới có thể truy cập vào thông tin. - Tính toàn vẹn (Integrity): Bảo đảm tính nhất quán, sự chính xác và ngăn chặn những sửa đổi do vô tình hay cố ý tới thông tin.
- Tính sẵn sàng (Availability): Bảo đảm tính sẵn sàng cung cấp thông tin cho người dùng được cho phép. Có thể hiểu rằng, tính sẵn sàng bảo đảm hệ thống luôn hoạt động hiệu quả, có khả năng khôi phục nhanh chóng, chính xác khi gặp các tấn công từ bên ngoài hoặc bên trong. Một số khái niệm Dữ liệu (Data): là thông tin định lượng hoặc đính tính của các sự vật, hiện tượng trong cuộc sống. Trong tin học, dữ liệu được dùng như một cách biểu diễn hình thức hóa của thông tin về các sự kiện, hiện tượng thích ứng với các yêu cầu truyền nhận, thể hiện và xử lí bằng máy tính[5].
Cơ sở dữ liệu (Database): là một kho dữ liệu được tổ chức theo một nguyên tắc nào đó. Đó là một tập hợp các tập tin có liên quan với nhau, được thiết kế nhằm làm giảm thiểu sự dư thừa dữ liệu, đảm bảo tính tin cậy khi truy xuất dữ liệu. Các tập tin này chứa các thông tin biểu diễn các đối tượng trên một ứng dụng trong thế giới thực[5]. Ví dụ: CSDL lưu giữ thông tin của một trường đại học như: khoa, giảng viên, sinh viên, khóa học,… Hệ quản trị cơ sở dữ liệu (DataBase Management System - DBMS): là hệ thống chương trình, công cụ cho phép quản lý và tương tác với CSDL.
Trên đó người dùng có thể định nghĩa, thao tác, và xử lí dữ liệu trong một CSDL để đưa ra những thông tin có ích[5]. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 Ví dụ: một DBMS có thể quản trị CSDL của một trường đại học cũng như những CSDL có ý nghĩa khác như: CSDL phục vụ bảo hiểm xã hội, CSDL về thông tin du lịch quốc gia,… Các ngôn ngữ dùng trong DBMS bao gồm: - Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL): là ngôn ngữ dùng để định nghĩa cấu trúc của CSDL, bao gồm định nghĩa các hàng, các cột, các bảng dữ liệu, các chỉ số và một số thuộc tính khác liên quan đến CSDL. - Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML): là ngôn ngữ để thao tác dữ liệu, được người dùng đặc biệt sử dụng (ví dụ như các nhà phát triển). Bao gồm các cú pháp cập nhật, xóa, thêm thông tin.
- Ngôn ngữ truy vấn (Query Language - QL): là ngôn ngữ cho phép người sử dụng khai thác dữ liệu, truy vấn thông tin trên CSDL. Hầu hết các hệ quản trị CSDL đều thực hiện các chức năng sau[4]: - Lưu trữ dữ liệu - Tạo và duy trì CSDL - Cho phép nhiều người dùng truy xuất đồng thời - Hỗ trợ tính bảo mật và riêng tư - Cho phép xem và xử lý dữ liệu lưu trữ - Cho phép cập nhật và lưu trữ dữ liệu sau khi cập nhật - Cung cấp một cơ chế chỉ mục hiệu quả để truy cập nhanh các dữ liệu lựa chọn - Cung cấp tính nhất quán giữa các bản ghi khác nhau - Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi (recovery) Một DBMS thông thường bao gồm nhiều modul tương ứng với các chức năng, gồm: - Trình biên dịch DDL - Trình biên dịch ngôn ngữ DML - Bộ xử lý truy vấn - Bộ quản lý CSDL LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 - Bộ quản lý tập tin (file) Tập hợp dữ liệu hỗ trợ các modul này là: - Các bảng mô tả CSDL - Các bảng cấp quyền - Các bảng truy cập đồng thời Hình 1. Kiến trúc của DBMS [4] Hình 1. Mô hình tương tác giữa ứng dụng và CSDL [4] Trong DBMS có các mức mô tả dữ liệu, ở mỗi mức mô tả dữ liệu cung cấp cái nhìn khác nhau về CSDL.
Cụ thể: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 - Lược đồ dữ liệu vật lý: Mức này mô tả cấu trúc lưu trữ dữ liệu trong các tập tin trên bộ nhớ ngoài. Dữ liệu được lưu trữ dưới dạng các bản ghi và các con trỏ trỏ tới bản ghi. - Lược đồ dữ liệu logic: ở mức này, mọi dữ liệu trong CSDL được mô tả bằng mô hình logic của DBMS. Các dữ liệu và quan hệ của chúng được mô tả thông qua DDL của DBMS.
- Khung nhìn logic: phụ thuộc các yêu cầu của mô hình logic và các mục đích của ứng dụng. Khung nhìn logic mô tả một phần lược đồ CSDL logic. Sử dụng DDL để định nghĩa các khung nhìn logic, DML để thao tác trên các khung nhìn này. Các mức mô tả dữ liệu [4] 1.
Vấn đề an toàn CSDL Hiểm họa xảy ra khi một người dùng hoặc nhóm người dùng sử dụng các kỹ thuật đặc biệt để tiếp cận nhằm khám phá, sửa đổi trái phép thông tin quan trọng trong hệ thống. Các vi phạm an toàn CSDL bao gồm: đọc, sửa, xoá dữ liệu trái phép. Hậu quả của việc vi phạm này là: - Khai thác dữ liệu trái phép, làm lộ, mất thông tin. - Sửa đổi dữ liệu trái phép, ngay cả khi người thay đổi có thể không cần biết đến nội dung của dữ liệu.
- Hệ thống từ chối dịch vụ hợp pháp của người dùng vào CSDL. LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Một số nguyên nhân gây mất an toàn CSDL Các nguyên nhân ngẫu nhiên: - Các thảm họa trong thiên nhiên, chẳng hạn như: động đất, hỏa hoạn, lụt lội,. - Các lỗi phần cứng hay phần mềm có thể dẫn đến việc áp dụng các chính sách an toàn không đúng.
- Các sai phạm vô ý do con người gây ra, chẳng hạn như nhập dữ liệu đầu vào không chính xác hay sử dụng các ứng dụng không đúng. Các nguyên nhân do cố ý: Là các nguyên nhân liên quan đến hai lớp người dùng sau: - Người dùng hợp pháp: là người có thể lạm dụng quyền, sử dụng vượt quá quyền hạn được phép của họ. - Người dùng truy cập thông tin trái phép: có thể là những người ở ngoài hay bên trong tổ chức. Họ tiến hành các hành vi phá hoại phần mềm CSDL hay phần cứng của hệ thống, hoặc đọc/ghi dữ liệu trái phép.
Một số biện pháp bảo vệ an toàn CSDL Từ những nguyên nhân gây mất an toàn CSDL do ngẫu nhiên và cố ý nêu trên, dẫn đến yêu cầu các biện pháp để bảo vệ CSDL chống lại những nguyên nhân gây tổn hại đó. Các biện pháp bảo vệ an toàn CSDL bao gồm: - Bảo vệ chống truy cập trái phép: là biện pháp bảo vệ an toàn CSDL được quan tâm nhiều nhất. Nó đảm bảo việc chỉ trao quyền cho những người dùng hợp pháp. Việc kiểm soát truy cập cần được tiến hành trên các đối tượng dữ liệu mức thấp hơn tập tin như: bản ghi, thuộc tính và giá trị.
Và kiểm soát truy cập CSDL phức tạp hơn kiểm soát truy cập tập tin. - Bảo vệ chống suy diễn: Suy diễn là khả năng có được các thông tin bí mật từ những thông tin không bí mật. Bảo vệ chống suy diễn đảm bảo người dùng không được phép dò xét thông tin của các cá thể khác từ các dữ liệu người dùng đó được biết. - Bảo vệ toàn vẹn CSDL: Bảo vệ CSDL khỏi những người dùng không hợp pháp, tránh sửa đổi nội dung dữ liệu trái phép.
DBMS đưa ra các kiểm soát bằng các ràng buộc dữ liệu, thủ tục sao lưu, phục hồi và các thủ tục an toàn đặc biệt. Hệ thống phục hồi của DBMS sử dụng các tập tin nhật ký, ghi lại tất cả các phép toán được thực hiện trên dữ liệu như: đọc, ghi, xóa, chèn. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 - Toàn vẹn dữ liệu thao tác: đảm bảo tính tương thích của dữ liệu khi có nhiều thao tác thực hiện đồng thời. Một thao tác là một loạt các hoạt động xảy ra được xem như một đơn vị công việc (unit of work) nghĩa là hoặc thành công toàn bộ hoặc không làm gì cả (all or nothing).
- Toàn vẹn ngữ nghĩa của dữ liệu: đảm bảo tính tương thích logic của các dữ liệu bị thay đổi, bằng cách kiểm tra các giá trị dữ liệu có nằm trong khoảng cho phép hay không (đó là các ràng buộc toàn vẹn). Ràng buộc là những thuộc tính mà ta áp đặt lên một bảng hay một cột để tránh việc lưu dữ liệu không chính xác vào CSDL. - Khả năng lưu vết và kiểm tra: là khả năng ghi lại mọi truy cập tới dữ liệu (với các phép toán Read và Write). Khả năng kiểm tra và lưu vết đảm bảo tính toàn vẹn dữ liệu vật lý và trợ giúp cho việc phân tích dãy truy cập vào CSDL.
- Xác thực người dùng: biện pháp này để xác định tính duy nhất của người dùng. Định danh người dùng làm cơ sở cho việc trao quyền. Người dùng được phép truy cập dữ liệu, khi hệ thống xác định được người dùng này là hợp pháp. - Bảo vệ dữ liệu nhạy cảm: Dữ liệu nhạy cảm là dữ liệu không được để công khai.
Cần có chế độ kiểm soát người dùng truy cập đến dữ liệu nhạy cảm, chỉ được cấp cho người dùng hợp pháp và hạn chế mức tối đa truy cập không cần thiết. - Bảo vệ nhiều mức: Bao gồm một tập các yêu cầu bảo vệ, dữ liệu được phân loại thành nhiều mức nhạy cảm. Mục đích của bảo vệ nhiều mức là phân loại các mục thông tin khác nhau, đồng thời phân quyền cho các mức truy cập khác nhau vào các mục riêng biệt. Một yêu cầu đối với bảo vệ nhiều mức là khả năng gán mức cho các thông tin.
Thiết kế CSDL an toàn Bảo mật CSDL (Database Security): là một hệ thống quy trình hay thủ tục để bảo vệ CSDL khỏi các tác động ngoài ý muốn như lạm dụng quyền hạn, vô ý hoặc cố ý trong truy cập CSDL.[5] Các cơ chế bảo mật CSDL:[5] - Xác thực (Authentication) - Kiểm soát truy cập (Access controls) - Kiểm tra tính toàn vẹn (Integrity controls) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.