CHƯƠNG 1. BÀI TOÁN BẢO MẬT CƠ SỞ DỮ LIỆU TRỰC TUYẾN 1. Yêu cầu đối với bài toán bảo mật Cơ sở dữ liệu 1. Hệ quản trị CSDL Trên thực tế, các hệ quản trị CSDL ngày nay thường được chia thành hai dạng chính: CSDL quan hệ (Relational database): Một số hệ quản trị CSDL quan hệ điển hình là SQL Server, Oracle, DB2, MySQL, … CSDL không quan hệ (Non-relational database hay NoSQL): Một số hệ quản trị CSDL NoSQL điển hình là MongoDB, Cassandra, Hbase, Redis, … Trên hình 6 mô tả một số hệ quản trị CSDL dạng SQL và NoSQL điển hình.
Một số hệ quản trị CSDL dạng SQL và NoSQL điển hình Thị phần trên thị trường của các hệ quản trị CSDL được mô tả trên hình 7 Hình 7. Thị phần hệ quản trị CSDL quan hệ, Hadoop & NoSQL và các CSDL không quan hệ khác Dễ dàng nhận thấy rằng, trên thực tế các hệ quản trị CSDL quan hệ được sử dụng nhiều nhất trên thực tế. Trên hình 8, mô tả thị phần trên thị trường của các hệ quản trị CSDL thương mại. 15 Luan van Hình 8.
Thị phần của các hệ quản trị CSDL thương mại năm 2016 Có thể thấy rằng hai hệ quản trị CSDL chiếm thị phần lớn nhất trên thực tế là Oracle và Microsoft SQL Server. Vấn đề an toàn CSDL Trong phần này sẽ trình bày về phạm vi của an toàn CSDL và cũng xác định các loại đe dọa và các hậu quả của chúng trên các hệ thống máy tính. An toàn CSDL (Database security): Là việc bảo vệ CSDL chống lại các đe dọa vô tình hay cố ý sử dụng các kiểm soát dựa trên máy tính và không dựa trên máy tính. Nó liên quan đến việc sử dụng một loạt các biện pháp kiểm soát an ninh thông tin để bảo vệ CSDL (bao gồm dữ liệu, các ứng dụng CSDL hoặc các chức năng được lưu trữ, các hệ thống CSDL, các máy chủ CSDL và các liên kết mạng liên quan) để chống lại các nguy cơ xâm phạm đến tính bí mật, tính toàn vẹn và tính sẵn sàng.
Nó bao gồm nhiều biện pháp kiểm soát, như kỹ thuật, thủ tục/hành chính và vật lý. Việc nghiên cứu độ an toàn không chỉ được áp dụng cho CSDL được lưu trong CSDL. Các lỗ hổng của sự an toàn có thể ảnh hưởng đến các phần khác trên hệ thống mà quay lại ảnh hưởng đến CSDL. Dẫn đến, an toàn CSDL bao gồm phần cứng, phần mềm, con người và dữ liệu.
Để áp dụng hiệu quả việc an toàn đòi hỏi các kiểm soát thích hợp được xác định trong các điều khoản của một chính sách phù hợp với yêu cầu của hệ thống. Nguyên nhân của các yêu cầu này là do sự gia tăng nhanh của các dữ liệu quan trọng được lưu trên máy tính và mất mát hay không sẵn sàng của dữ liệu này dẫn đến thảm họa không thể dự đoán được. Trong thực tế, tồn tại nhiều lớp và các biện pháp kiểm soát an ninh thông tin dành cho CSDL, bao gồm: Kiểm soát truy nhập (Access control). Kiểm soát tính toàn vẹn (Integrity controls).
Đối với CSDL thường tồn tại các nguy cơ rủi ro như sau: Nguy cơ 1: Bị mất trộm hệ thống CSDL hoặc phương tiện lưu trữ. 16 Luan van Nguy cơ 2: Bị mất trộm hoặc làm mất thiết bị sao lưu CSDL. Nguy cơ 3: Khai thác quyền truy cập trực tiếp CSDL. Nguy cơ 4: Làm tổn thương hoặc lộ CSDL.
Nguy cơ 5: Làm tổn thương hoặc lộ tài khoản người quản trị CSDL. Nguy cơ 6: Làm tổn thương hoặc lộ tài khoản người sử dụng CSDL hoặc ứng dụng. Nguy cơ 7: Làm tổn thương hệ điều hành hoặc ứng dụng. Nguy cơ 8: Khai thác ứng dụng với tài khoản giới hạn hoặc không giới hạn.
Các nhóm giải pháp mà các hệ quản trị CSDL thường hỗ trợ để bảo đảm an toàn CSDL: Điều khiển truy nhập (Access Control). Kiểm toán và giám sát (Auditing and Monitoring). Chặn và truy nhập (Blocking and Logging). Một trong những phương pháp hiệu quả nhất để bảo đảm an toàn CSDL đó chính là sử dụng kỹ thuật mã hóa.
Đây chính là hàng rào bảo vệ cuối cùng và cung cấp giải pháp an toàn nhất để bảo vệ an toàn CSDL. Một số biện pháp an toàn trong môi trường máy tính Các biện pháp đối phó với các nguy cơ rủi ro tới hệ thống máy tính có phạm vi từ các kiểm tra phần cứng đến các thủ tục quản trị. Trong phần này trình bày các kiểm tra an toàn trong môi trường các hệ thống máy tính đa người sử dụng. Các kiểm tra bao gồm: Cấp phép: Việc cấp phép là cấp các quyền hạn cho phép chủ thể có thể truy nhập hợp pháp tới hệ thống hoặc đối tượng của hệ thống.
View: View là kết quả động của một hay nhiều thao tác quan hệ thực hiện trên cơ sở các quan hệ để sinh ra các quan hệ khác. View là một quan hệ ảo (virtual relation) mà không thực sự tồn tại trong CSDL nhưng được sinh ra trên yêu cầu của người sử dụng riêng biệt tại thời điểm yêu cầu. Sao lưu và khôi phục: Sao dự phòng là quá trình thực hiện việc sao chép có định kỳ CSDL và file nhật ký (và các chương trình có thể) lên các thiết bị ghi không trực tuyến. Toàn vẹn: Việc kiểm soát tính toàn vẹn cũng góp phần để quản lý hệ thống CSDL an toàn bằng việc ngăn ngừa dữ liệu không bị sai, mà làm cho kết quả bị sai lệnh hoặc không chính xác.
Mã hóa: Mã hóa là sử dụng các thuật toán đặc biệt để mã hóa dữ liệu làm cho dữ liệu không thể đọc được bằng bất cứ chương trình nào mà không có khóa giải mã. Các thủ tục liên quan: 17 Luan van Mặc dù có các kỹ thuật để bảo vệ dữ liệu trong HQTCSDL nhưng chúng có thể không hiệu quả nếu chúng không được sử dụng và kiểm soát một cách hợp lý. Vì vậy phải có các thủ tục cần phải được sử dụng kết hợp với các kỹ thuật này. Các biện pháp an toàn ngoài môi trường máy tính Mục tiêu chính của đề tài không tập trung nghiên cứu các biện pháp này nên ở đây chúng tôi chỉ liệt kê ra một số biện pháp quan trọng đối với vấn đề an toàn của CSDL mà không dựa vào môi trường máy tính.
Các biện pháp đó là: Chính sách an toàn và các kế hoạch đối phó với các tình huống bất ngờ. Kiểm soát con người. Vị trí an toàn của thiết bị. Các hợp đồng thỏa thuận.
Các hợp đồng duy trì bảo dưỡng. Các kiểm soát truy cập vật lý. Bảo mật CSDL bằng mật mã Các giải pháp mã hóa CSDL có thể được thực hiện theo các phương pháp sau [27]: Sử dụng các kỹ thuật mã hóa tại các mức khác nhau: Hình 9. Các phương pháp mã hóa bảo mật CSDL – a.
Mã hóa mức ứng dụng. Sử dụng phương pháp bảo mật CSDL dựa trên các module tin cậy: Trên thực tế có thể sử dụng phương pháp bảo mật CSDL dựa trên các module tin cậy (trusted modules), với giả định là không thể tiếp cận được bởi kẻ tấn công. Các module này có thể nằm ở phía đầu cuối hoặc trên máy chủ. Các giải pháp bảo mật CSDL sử dụng các module tin cậy 18 Luan van Các hệ quản trị CSDL (CSDL) thường được phát triển theo hai hướng: Hướng thứ nhất: các hệ quản trị CSDL mã nguồn mở: MySQL, PostgresSQL, … Hướng thứ hai: các hệ quản trị CSDL thương mại: Oracle, SQL Server, DB2, … Đối với các hệ quản trị CSDL mã nguồn mở, thì bài toán bảo mật CSDL có thể được giải quyết một cách khá hiệu quả.
Ví dụ, hệ quản trị MySQL đã được phát triển thành hệ quản trị có bảo mật để giải quyết được các bài toán chính: 1) bảo mật dữ liệu lưu trữ; 2) bảo mật dữ liệu trên đường truyền; 3) bảo mật dữ liệu trong quá trình sao lưu; 4) xác thực và phân phối khóa cho người sử dụng; 5) hỗ trợ giao diện có hỗ trợ mật mã. Giải pháp này cho phép thực hiện mã/giải mã dữ liệu bên trong hệ quản trị CSDL. Đối với các hệ quản trị CSDL thương mại (không có mã nguồn mở) lại không áp dụng việc mã hóa dữ liệu (bên trong hệ quản trị) như một chức năng cơ bản của hệ quản trị. Việc bảo vệ CSDL thường được dựa vào các cơ chế bảo vệ của các hệ điều hành và các hệ quản trị.
Trên thực tế, một số hệ quản trị CSDL thương mại có hỗ trợ các công cụ hỗ trợ cho chức năng mã/giải mã trong CSDL. Ví dụ hệ quản trị Oracle hỗ trợ gói công cụ DBMS_OBFUSCATION_TOOLKIT, nó cho phép sử dụng các thuật toán DES, 3DES (2 khóa hoặc 3 khóa) để thực hiện các thủ tục mã hóa và giải mã. Vì vậy, người phát triển sản phẩm có thể xây dựng các giải pháp bảo mật CSDL cho các ứng dụng cụ thể. Để bảo mật CSDL, luôn cần phải giải quyết ba bài toàn: 1) dữ liệu được mã/giải mã ở đâu? 2) các khóa mã được lưu trữ ở đâu? 3) phân quyền truy nhập tới các khóa mã.
Đối với bài toán thứ nhất, chức năng mã/giải mã dữ liệu có thể được thực hiện: Bảo mật CSDL được thực hiện bên trong hệ quản trị CSDL. Bảo mật CSDL được thực hiện bên ngoài hệ quản trị CSDL. Bảo mật CSDL dựa trên khả năng mở rộng của từng hệ quản trị CSDL cụ thể. Đánh giá ưu, nhược điểm của các giải pháp bảo mật CSDL: Bảo mật CSDL được thực hiện bên trong hệ quản trị: Giải pháp này chỉ thực hiện được trong quá trình xây dựng hệ quản trị.
Các thành phần mật mã là các thành phần cơ sở của hệ quản trị: bảo mật dữ liệu tại chỗ; bảo mật dữ liệu trên đường truyền giữa client và sever; bảo mật dữ liệu trên đường truyền trong quá trình đồng bộ, xác thực và trao đổi khóa. Ứng dụng DBMS Bộ xử lý dữ liệu Bộ quản lý file Mã hóa/ giải mã CSDL được mã hóa CSDL khóa Hình 11. Mô hình giải pháp bảo mật được thực hiện bên trong hệ quản trị 19 Luan van Ưu điểm: • Trong suốt đối với người phát triển ứng dụng, người sử dụng. • Không ảnh hưởng đến các ứng dụng đã có sẵn.
• Giải quyết được hầu hết vấn đề trong bài toán bảo mật CSDL. • Các chức năng mật mã được cung cấp ngay trong các sản phẩm CSDL. • Đơn giản đối với người sử dụng. Nhược điểm: • Không áp dụng được với các hệ quản trị thương mại.