CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU SQLITE 1. Cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu trên thiết bị di động Dữ liệu là các thông tin liên quan đến đối tượng (ví dụ như người, vật, sự việc,. Dữ liệu được mô tả dưới nhiều dạng khác nhau (như ký tự, ký hiệu, hình ảnh, âm thanh. Dữ liệu về đối tượng có thể khác nhau tùy thuộc vào mục đích quản lý.
Ví dụ: Cùng là dữ liệu về đối tượng sinh viên nhưng với mục đích quản lý khác nhau thì sẽ khác nhau, cụ thể như sau: - Với mục đích quản lý điểm, dữ liệu về đối tượng sinh viên sẽ bao gồm: Tên, Mã sinh viên, Điểm môn 1, Điểm môn 2, Điểm môn 3. - Với mục đích quản lý thông tin cá nhân, dữ liệu về đối tượng sinh viên sẽ bao gồm: Tên, Địa chỉ, Ngày sinh, Quê quán, Lớp. Cơ sở dữ liệu trên thiết bị di động là tập hợp dữ liệu được tổ chức một cách có cấu trúc liên quan với nhau và được lưu trữ trên các thiết bị này. Cơ sở dữ liệu được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu.
Tất cả cơ sở dữ liệu của Android được lưu trữ trong thư mục /data/data/<tên package>/databases trong thiết bị hoặc máy ảo. Hệ quản trị cơ sở dữ liệu là một tập các chương trình cho phép người dùng tạo lập và duy trì các cơ sở dữ liệu. Các thao tác cơ sở dữ liệu được hỗ trợ thực hiện gồm: - Định nghĩa: Khai báo các kiểu, cấu trúc và ràng buộc dữ liệu. - Xây dựng: Liên quan đến việc lưu trữ dữ liệu trên các phương tiện lưu trữ do hệ quản trị cơ sở dữ liệu quản lý.
- Xử lý: Cho phép thực hiện các thao tác truy vấn, thêm, sửa, xóa dữ liệu. - Chia sẻ: Cho phép nhiều người dùng cùng truy nhập, chia sẻ dữ liệu. An toàn thông tin trong cơ sở dữ liệu 1 1. Yêu cầu để đảm bảo an toàn cho cơ sở dữ liệu Việc tổ chức, lưu trữ thông tin nói chung có thể được triển khai dưới nhiều hình thức và công nghệ khác nhau, sử dụng các phần mềm và phương tiện lưu trữ khác nhau, trong đó việc sử dụng cơ sở dữ liệu để lưu trữ thông tin là rất phổ biến.
Do vậy, việc đảm bảo an toàn cho cơ sở dữ liệu là vấn đề cấp thiết và phải được xác định ngay từ ban đầu. Bảo mật hay an toàn cho cơ sở dữ liệu (Database Security) là một tập hợp các thủ tục, chuẩn, chính sách và công cụ được sử dụng để bảo vệ dữ liệu nhằm tránh bị trộm cắp, lạm dụng, đột nhập, tấn công, hoặc các hành động không mong muốn khác. Nói cách khác, mục đích của việc bảo mật hay an toàn cho cơ sở dữ liệu là để đảm bảo 3 thuộc tính cơ bản của an toàn cơ sở dữ liệu, bao gồm tính bí mật (Confidentiality), tính toàn vẹn (Integrity) và tính sẵn sàng (Availability). Trong đó: - Tính bí mật: Đảm bảo rằng chỉ có người dùng có thẩm quyền (Authorised Users) mới có thể truy nhập và thực hiện các thao tác trên cơ sở dữ liệu.
Tính bí mật có thể được đảm bảo thông qua các cơ chế kiểm soát truy nhập bao gồm xác thực (Authentication) và trao quyền (Authorisation) vào các đối tượng trong cơ sở dữ liệu. Ngoài ra tính bí mật còn được đảm bảo bởi nhiều biện pháp bảo mật bổ sung, như bảo vệ vật lý, tường lửa, mã hóa,… - Tính toàn vẹn: Đảm bảo rằng dữ liệu có thể được sửa đổi bởi những người dùng có thẩm quyền. Tính toàn vẹn liên quan đến tính hợp lệ (Validity), tính nhất quán (Consistency) và chính xác (Accuracy) của dữ liệu. Dữ liệu được xem là toàn vẹn nếu nó không bị thay đổi, hợp lệ và chính xác.
Tính toàn vẹn có thể được đảm bảo bởi các ràng buộc dữ liệu (Constraints), các phép kiểm tra và các cơ chế xử lý dữ liệu. - Tính sẵn sàng: Đảm bảo rằng cơ sở dữ liệu có thể truy nhập bởi người dùng hợp pháp bất cứ khi nào họ yêu cầu. Tính sẵn sàng có liên quan mật thiết đến hạ tầng mạng và năng lực của các máy chủ cơ sở dữ liệu và có thể được đảm 2 bảo bằng chuỗi máy chủ cơ sở dữ liệu và hệ thống cân bằng tải. Tính sẵn sàng có thể được đo bằng các yếu tố: + Thời gian cung cấp dịch vụ (Uptime); + Thời gian ngừng cung cấp dịch vụ (Downtime); + Tỷ lệ phục vụ: A = (Uptime)/(Uptime + Downtime); + Thời gian trung bình giữa các sự cố; + Thời gian trung bình ngừng để sửa chữa; + Thời gian khôi phục sau sự cố.
Với các yêu cầu về an toàn cơ sở dữ liệu nêu trên, chúng ta dễ dàng nhận thấy các mối đe dọa cho cơ sở dữ liệu như sau: - Sự thất thoát thông tin không hợp lý, điều này đe dọa tính bí mật của dữ liệu. - Thay đổi dữ liệu không hợp lý, điều này đe dọa tính toàn vẹn của dữ liệu. - Từ chối dịch vụ, điều này đe dọa tính sẵn sàng của dữ liệu. Các yếu tố liên quan đến an toàn cơ sở dữ liệu An toàn cơ sở dữ liệu liên quan đến ba yếu tố: Con người (People), Phần mềm (Software) và Dữ liệu (Data).
Bảo mật cơ sở dữ liệu và các yếu tố liên quan 3 Đồng thời, các nhân tố liên quan đến bảo mật cơ sở dữ liệu trong mô hình này bao gồm: Các mối đe dọa (Threats), Các rủi ro (Ricks) và Các lỗ hổng (Vulnerabilities). Các mối đe doạ bảo mật cơ sở dữ liệu Các mối đe dọa đối với bảo mật cơ sở dữ liệu như minh họa của Hình 1.2 bao gồm 4 loại: các đe dọa đến từ con người (People), từ mã độc (Malicious code), từ các thảm họa công nghệ (Technological disasters) và thảm hoạ thiên nhiên (Natural diasters). Trong số các mối de dọa nêu trên, các mối đe dọa đến từ người dùng ác tính, như tin tặc và mã độc có mức nguy hiểm cao nhất. Điều này cũng đúng với thống kê Top 10 mối đe dọa đối với bảo mật cơ sở dữ liệu theo hãng Imperva thực hiện năm 2015: 1.
Excessive and Unused Privileges (Đặc quyền quá mức hoặc không sử dụng) 2. Weak Audit Trail (Log kiểm toán yếu) 6. Storage Media Exposure (Rò rỉ dữ liệu từ phương tiện lưu trữ) 7. Exploitation of Vulnerabilities and Misconfigured Databases (Khai thác lỗi hổng và cấu hình cơ sở dữ liệu sai) 4 8.
Unmanaged Sensitive Data (Các dữ liệu nhạy cảm không được quản lý) 9. Denial of Service (Tấn công từ chối dịch vụ) 10. Limited Security Expertise and Education (Kiến thức chuyên gia và đào tạo về bảo mật hạn chế) Hình 1. Các rủi ro bảo mật cơ sở dữ liệu Hình 1.3 cung cấp 4 nguồn rủi ro đối với bảo mật cơ sở dữ liệu, bao gồm các rủi ro đến từ con người (People), từ dữ liệu (Data), từ phần cứng (Hardware) và từ sự tín nhiệm (Confidence).
Các lỗ hổng bảo mật cơ sở dữ liệu Hình 1.4 nêu 4 loại lỗ hổng bảo mật cơ sở dữ liệu, bao gồm lỗ hổng do người dùng (User mistakes), lỗ hổng do thiết kế và lập trình (Design and 5 implementation), lỗ hổng phần mềm (Software) và lỗ hổng do cài đặt và cấu hình (Installation and configuration). Trong có loại lỗ hổng kể trên, các lỗ hổng do người dùng và lỗ hổng do cài đặt và cấu hình là các loại thường xuyên xảy ra và có mức rủi ro cao nhất. Mô hình bảo mật cơ sở dữ liệu tổng quát: Hình 1. Mô hình bảo mật cơ sở dữ liệu tổng quát Trên nguyên tắc giảm thiểu các yếu tố có thể truy nhập trực tiếp đến dữ liệu và bề mặt tấn công cơ sở dữ liệu, Hình 1.5 mô tả mô hình bảo mật cơ sở dữ liệu tổng quát.
Theo đó, mô hình bảo mật cơ sở dữ liệu gồm 7 lớp: lớp con người (People), lớp ứng dụng (Applications), lớp mạng (Network), lớp hệ điều hành (Operating System), lớp hệ quản trị cơ sở dữ liệu (DBMS), lớp file dữ liệu (Data Files) và lớp dữ liệu (Data). Phương pháp thực hiện bảo mật cơ sở dữ liệu 6 Dựa trên mô hình bảo mật cơ sở dữ liệu tổng quát, Hình 1.6 mô tả phương pháp thực hiện bảo mật cơ sở dữ liệu. Theo đó, các khâu thực hiện bảo mật cơ sở dữ liệu được đưa ra tương ứng với các khâu trong quy trình phát triển phần mềm. Các khâu thực hiện bảo mật cơ sở dữ liệu gồm: Identification (Nhận dạng rủi ro), Assessment (Đánh giá rủi ro), Design (Thiết kế các kiểm soát), Implementation (Áp dụng các kiểm soát), Evaluation (Đánh giá hiệu quả áp dụng) và Auditing (Kiểm toán).
Kết quả khâu kiểm toán được sử dụng làm phản hồi để thực hiện các điều chỉnh phù hợp với các khâu trước đó. Các cơ chế để bảo vệ tính an toàn của cơ sở dữ liệu Dữ liệu và cơ sở dữ liệu có thể được đảm bảo an toàn thông qua việc đảm bảo an toàn cho ứng dụng truy nhập cơ sở dữ liệu. Có nhiều kỹ thuật và cơ chế để bảo vệ tính an toàn của cơ sở dữ liệu. Các kỹ thuật mã hoá có thể được sử dụng để bảo vệ dữ liệu trong cơ sở dữ liệu cũng như để bảo vệ cả cơ sở dữ liệu.
Hai phương pháp phổ biến thường được sử dụng là mã hoá (Encryption) và băm (Hashing). Trong đó: - Mã hoá (Encrypted): Sử dụng các giải thuật mã hoá với khoá (Key) để bảo vệ dữ liệu. Thông thường các giải thuật mã hoá khối đối xứng được sử dụng. Các giải thuật mã hoá thông dụng: DES, 3DES, AES, RC2, RC4,… - Băm (Hashing): Sử dụng các giải thuật băm để chuyển đổi dữ liệu có độ dài bất kỳ thành chuỗi có độ dài cố định.
Với hàm băm một chiều thì không giải mã được. Các giải thuật băm thông dụng: MD4, MD5, MD6, SHA1, SHA2, SHA3,… Băm thường được dùng để mã hoá mật khẩu. Với dữ liệu lưu trữ trong cơ sở dữ liệu có thể sử dụng mã hoá hệ thống tập tin, hoặc mã hoá dữ liệu kiểu trong suốt (TDE). Dữ liệu lưu giữ trong các bảng có thể được mã hoá theo 2 hướng: - Sử dụng các hàm mã hoá và giải mã trong cơ sở dữ liệu để mã hoá và giải mã khi thực hiện các thao tác ghi, đọc.
Các hệ quản trị cơ sở dữ liệu cũ thường không hỗ trợ các hàm mã hoá và giải mã. Các hệ quản trị cơ sở dữ liệu mới hỗ trợ 7 các hàm mã hoá và giải mã ở mức hạn chế.