Chương 1 TỔNG QUAN VỀ BẢO MẬT CƠ SỞ DỮ LIỆU TRÊN THIẾT BỊ DI DỘNG 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.
Mô hình tổng quát và các lớp bảo mật cơ sở dữ liệu 1. Bảo mật cơ sở dữ liệu và các yếu tố liên quan An toàn, hay bảo mật cơ sở dữ liệu (Database security) 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 Đồ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 (Risks) và Các lỗ hổng (Vulnerabilities). Các mối đe dọa 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 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 tai họa công nghệ (Technological disasters) và từ tai họa tự nhiên (Natural disasters).
Trong số các mối đe dọa kể 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) 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ế). Các rủi ro bảo mật cơ sở dữ liệu Hình 1. Các lỗ hổng 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.4 cũng nêu 4 loại lỗ hổng bảo mật cơ sở dữ liệu, bao gồm lỗ hổng do lỗi người dùng, lỗ hổng do thiết kế và lập trình, lỗ hổng phần mềm và lỗ hổng do cài đặt và cấu hình. Trong các loại lỗ hổng kể trên, các lỗ hổng do lỗi 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 nhất 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 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 Dựa trên mô hình bảo mật cơ sở dữ liệu tổng quát, Hình 1.12 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 lớp bảo mật cơ sở dữ liệu Mục này mô tả chi tiết các biện pháp cần thực hiện với mỗi lớp bảo mật cơ sở dữ liệu theo mô hình tổng quát đã trình bày ở mục 1.
Lớp bảo mật Con người - Hạn chế truy nhập vật lý đến phần cứng hệ thống và các tài liệu; - Sử dụng các biện pháp nhận dạng và xác thực thông tin nhận dạng của người dùng, như thẻ nhận dạng (ID card), PIN, hoặc mật khẩu, hoặc các đặc điểm sinh trắc học, như vân tay, tròng mắt; - Đào tạo người quản trị, người dùng về tầm quan trọng của bảo mật và các biện pháp bảo vệ tài sản; - Thiết lập các chính sách và thủ tục kiểm soát an ninh. Lớp bảo mật Ứng dụng - Xác thực người dùng truy nhập ứng dụng; - Áp dụng chính xác quy trình xử lý công việc; - Sử dụng cơ chế đăng nhập một lần (Single Sing On) cho máy chủ cơ sở dữ liệu, các ứng dụng, hoặc website có liên kết. Lớp bảo mật Mạng - Sử dụng tường lửa để ngăn chặn xâm nhập trái phép; - Sử dụng VPN để bảo mật thông tin và dữ liệu trên đường truyền; - Sử dụng các biện pháp xác thực. Lớp bảo mật Hệ điều hành - Xác thực người dùng; - Phát hiện xâm nhập; - Áp dụng chính sách quản lý mật khẩu chặt chẽ; - Vấn đề tài khoản người dùng.
Lớp bảo mật File dữ liệu - Quyền truy nhập file; - Giám sát truy nhập file. Lớp bảo mật Dữ liệu - Kiểm tra dữ liệu; - Các ràng buộc dữ liệu; - Mã hóa dữ liệu. Các cơ chế bảo mật cơ sở dữ liệu 1. Xác thực và trao quyền trong cơ sở dữ liệu 1.
Xác thực và trao quyền trong cơ sở dữ liệu Xác thực sử dụng tên người dùng (username) và mật khẩu (password) là phương pháp chủ yếu trong xác thực người dùng cơ sở dữ liệu. Xác thực là thành phần cơ sở của mô hình bảo mật tổng quát. Mô hình bảo mật ứng dụng tổng quát Hầu hết các hệ quản trị cơ sở dữ liệu hỗ trợ lựa chọn phương pháp xác thực phù hợp trong số các phương pháp xác thực sẵn có: - Không xác thực (No authentication) - Xác thực dựa trên hệ điều hành - Xác thực dựa trên hệ quản trị cơ sở dữ liệu - Xác thực hỗn hợp (hệ điều hành hoặc hệ quản trị cơ sở dữ liệu). Nhìn chung, không nên sử dụng phương pháp không xác thực do chúng có độ rủi ro cao.
Nên sử dụng phương pháp xác thực dựa trên hệ điều hành do hệ điều hành có cơ chế quản lý thông tin người dùng tương đối tốt và cơ chế xác thực mạnh. Bảo mật mật khẩu cơ sở dữ liệu Mặc dù có nhiều công nghệ xác thực, nhưng xác thực dựa trên mật khẩu vẫn là phương pháp được sử dụng phổ biến nhất trong xác thực người dùng cơ sở dữ liệu. Lý do cho sự phổ biến của việc sử dụng mật khẩu trong xác thực người dùng cơ sở dữ liệu là đảm bảo được mức an toàn tối thiểu, đơn giản, dễ sử dụng, và chi phí cài đặt, quản lý và vận hành thấp. Tính bảo mật của kỹ thuật điều khiển truy nhập sử dụng mật khẩu dựa trên 2 yếu tố: độ khó đoán của mật khẩu và tuổi thọ của mật khẩu.
Độ khó đoán của mật khẩu lại phụ thuộc vào số loại ký tự được sử dụng và độ dài của mật khẩu. Một mật khẩu tốt, khó đoán cho truy nhập cơ sở dữ liệu từ ứng dụng nên đảm bảo có đủ 4 loại ký tự (chữ thường, hoa, chữ số, ký tự đặc biệt) và độ dài từ 10 ký tự trở lên. Tuổi thọ của mật khẩu là khoảng thời gian một mật khẩu hoạt động. Nhìn chung nên chọn mật khẩu có thời gian sống phù hợp theo chính sách an ninh, an toàn của cơ quan, tổ chức.
Ngoài ra, cũng nên tránh sử dụng các mật khẩu ngắn, dễ đoán, như tên, ngày tháng năm sinh, tên đăng nhập,… hoặc sử dụng một mật khẩu (kể cả mật khẩu tốt) trên nhiều hệ thống do có nguy cơ rò rỉ cao. Sử dụng mã hóa trong cơ sở dữ liệu 1. Giới thiệu về mã hóa cơ sở dữ liệu Các kỹ thuật mã hóa (Cryptographic techniques) có thể được sử dụng để bảo vệ dữ liệu lư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 được sử dụng để bảo vệ thông tin trong cơ sở dữ liệu, gồm: mã hóa (Encryption) và băm (Hashing).
Mã hóa sử dụng các thuật toán mã hóa với khóa (key) để bảo vệ các loại dữ liệu. Thông thường, các thuật toán mã hóa khóa đối xứng được sử dụng như DES, 3DES, AES, RC2, RC4,. do kích thước khóa nhỏ và tốc độ mã hóa nhanh. Khác với phương pháp mã hóa luôn cần có khóa, phương pháp băm sử dụng các thuật toán băm có khóa, hoặc không khóa để chuyển đổi dữ liệu có độ dài bất kỳ thành chuỗi đầu ra có độ dài cố định.