ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN HỒNG GIANG
NGHIÊN CỨU GIẢI PHÁP BẢO MẬT CƠ SỞ DỮ LIỆU
SQL SERVER 2012 BẰNG PHƯƠNG PHÁP MÃ HÓA
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. Vương Đạo Vy
Hà Nội - 2015
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là do tôi thực hiện, không sao chép của
ai. Các đoạn trích dẫn được sử dụng trong luận văn đều được dẫn nguồn và có
độ chính xác cao nhất trong phạm vi hiểu biết của tôi.
Học viên
Nguyễn Hồng Giang
1.3. Thiết kế CSDL an toàn ........................................................................... 7
1.3.1. Phân tích sơ bộ................................................................................ 8
1.3.2. Xây dựng các yêu cầu và chính sách bảo mật ................................. 9
1.3.3. Xây dựng khái niệm ...................................................................... 11
1.3.4. Thiết kế cấu trúc logic................................................................... 12
1.3.5. Thiết kế cấu trúc vật lý.................................................................. 13
1.3.6. Cài đặt cơ chế an toàn ................................................................... 13
1.3.7. Kiểm tra ........................................................................................ 15
CHƯƠNG 2. TÌNH HÌNH TẤN CÔNG CSDL HIỆN NAY VÀ GIẢI PHÁP
PHÒNG CHỐNG ............................................................................................. 17
2.1. Các mối đe dọa tấn công CSDL hàng đầu ............................................. 17
2.1.1. Lạm dụng các đặc quyền vượt mức và các đặc quyền không còn
được dùng............................................................................................... 18
2.1.2. Lạm dụng đặc quyền ..................................................................... 18
2.1.3. Tấn công Input Injection ............................................................... 19
2.1.4. Mã độc.......................................................................................... 19
2.1.5. Lợi dụng viết kiểm toán yếu ......................................................... 19
2.1.6. Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ ...................... 20
2.1.7. Khai thác các CSDL có điểm yếu và bị lỗi cấu hình ..................... 20
2.1.8. Rò rỉ các dữ liệu nhạy cảm không được quản lý............................ 20
2.1.9. Tấn công từ chối dịch vụ .............................................................. 21
2.1.10. Vấn đề đào tạo và chuyên gia an ninh còn hạn chế ..................... 21
2.2. Các giải pháp phòng chống tấn công CSDL.......................................... 21
2.2.1. Phát hiện và đánh giá .................................................................... 23
2.2.2. Quản lý quyền người dùng............................................................ 24
2.2.3. Giám sát và ngăn chặn .................................................................. 25
2.2.4. Kiểm toán ..................................................................................... 26
2.2.5. Bảo vệ dữ liệu............................................................................... 27
Cơ sở dữ liệu
Database
DBMS
Hệ quản trị cơ sở dữ liệu
DataBase Management System
DCL
Ngôn ngữ kiểm soát dữ liệu
Data Control Language
DDL
Ngôn ngữ định nghĩa dữ liệu
Data Definition Language
DMK
Khóa chủ cơ sở dữ liệu
Database Master Key
DML
SMK
Khóa chủ dịch vụ
Service Master Key
SID
Mã nhân dạng bảo mật
Security Identifier
TCP
Giao thức kiểm soát truyền tải
Transmission Control Protocol
UDP
Giao thức không liên kết
User Datagram Protocol
DANH MỤC CÁC BẢNG VÀ HÌNH VẼ
Trang
Hình 1.1. Kiến trúc của DBMS .......................................................................... 4
Hình 1.2. Mô hình tương tác giữa ứng dụng và CSDL ....................................... 4
bằng phương pháp mã hóa”.
Mục tiêu nghiên cứu
- Nghiên cứu và tìm hiểu tổng quan về an toàn CSDL.
- Tìm hiểu tình hình tấn công CSDL hiện nay và giải pháp phòng chống.
- Nghiên cứu các giải pháp bảo vệ CSDL trong SQL Server.
- Thực nghiệm bảo vệ CSDL.
Bố cục của luận văn
Luận văn gồm phần Mở đầu, 4 Chương, Kết luận và Hướng phát triển:
Chương 1. Tổng quan về an toàn cơ sở dữ liệu
Chương 2. Tình hình tấn công CSDL hiện nay và giải pháp phòng chống
Chương 3. Các giải pháp bảo vệ CSDL trong SQL Server
Chương 4. Thực nghiệm bảo vệ CSDL
2
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
đế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
4
- Bộ quản lý tập tin (file)
Tập hợp dữ liệu hỗ trợ các modul này là:
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.
6
1.2.1. 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.
1.2.2. 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
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.
1.3. 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)
8
- Khả năng giám sát (Auditing)
- Mã hóa (Encryption):
+ Mức tập tin: không cung cấp mức độ bảo mật truy cập đến
CSDL ở mức bảng, cột, dòng. Không phân quyền cho người sử dụng.
+ Mức ứng dụng: cho phép phân quyền, nhưng đòi hỏi sự thay
đổi kiến trúc của ứng dụng thậm chí đòi hỏi ứng dụng phải viết lại.
với một CSDL, từ đó đưa ra các hình thức xâm phạm tương ứng và đánh giá
hậu quả khi xảy ra. Các đe dọa điển hình có thể kể ra như: đọc và sửa đổi trái
phép dữ liệu, từ chối dịch vụ hợp pháp.
- Các đặc trưng của môi trường CSDL: việc bảo vệ đa mức có được sử
dụng hay không tùy thuộc vào việc phân quyền truy cập CSDL, loại dữ liệu
được sử dụng để đưa ra mô hình thiết kế phù hợp.
- Khả năng ứng dụng của các sản phẩm an toàn hiện có: Việc ứng dụng
các sản phẩm an toàn hiện có phải được xem xét dựa trên tính tiện lợi mà nó
mang lại và có khả năng phát triển hệ thống an toàn từ việc kết hợp nhiều sản
phẩm khác nhau hay không? Việc lựa chọn đó tùy thuộc vào mô hình và cấp
độ bảo vệ dữ liệu.
- Khả năng tích hợp của các sản phẩm an toàn: khả năng tích hợp các
cơ chế an toàn với các cơ chế phần cứng và phần mềm thực tế.
- Hiệu năng đạt được của các hệ thống an toàn: được so sánh với khả
năng hoạt động hiệu quả của hệ thống hiện tại hoặc là hệ thống mới mà không
cần bất kỳ các cơ chế và kiểm soát an toàn nào.
Kết quả của giai đoạn này là một tập hợp các đe dọa có thể xảy ra với
một hệ thống, được sắp xếp theo quyền ưu tiên, đánh giá khả năng áp dụng và
tích hợp của các sản phẩm an toàn với các cơ chế hiện tại.
1.3.2. Xây dựng các yêu cầu và chính sách bảo mật
Việc phân tích yêu cầu bắt đầu từ việc phân tích đầy đủ và chính xác tất
cả các đe dọa có thể xảy ra đối với hệ thống. Điều này cho phép các nhà thiết
kế xác định các yêu cầu an toàn một cách chính xác và đầy đủ, tùy thuộc vào
các đòi hỏi bảo vệ thực tế của hệ thống. CSDL khác nhau đòi hỏi có các biện
pháp bảo vệ khác nhau.
Các hệ thống được phân loại thành hệ thống rủi ro cao và hệ thống rủi
ro thấp, dựa vào các yếu tố cơ bản chẳng hạn như mức tương quan dữ liệu,
chia sẻ dữ liệu, khả năng truy cập dữ liệu, kỹ năng của nhân viên và các kỹ
thuật được lựa chọn.
Bảo vệ hệ thống hầu hết chịu ảnh hưởng bởi số lượng và trình độ
người ta dựa vào một bộ các tiêu chuẩn lựa chọn chính sách an toàn:
- Tính bí mật đối nghịch với tính toàn vẹn dữ liệu và tính tin cậy của
dữ liệu.
- Việc chia sẻ đặc quyền: Tùy thuộc từng môi trường mà có lựa chọn
phù hợp.
- Mức độ chi tiết của kiểm soát: Nghĩa thứ nhất chỉ phạm vi của kiểm
soát trong mối quan hệ về số lượng của chủ thể và đối tượng bị kiểm soát.
Nghĩa thứ hai chỉ độ chi tiết của của từng đối tượng bị kiểm soát. Thứ ba, khi
nói đến độ chi tiết của kiểm soát người ta muốn nói đến mức độ điều khiển.
Trong một hệ thống, việc kiểm soát tất cả các tập tin trong hệ thống nằm ở
vùng duy nhất và khi có lỗi xảy ra thì chúng tập trung trong một vùng duy
11
nhất này. Trong các hệ thống khác, an toàn phức tạp hơn, nhưng các kiểm
soát và các trách nhiệm được dàn trải trên các vùng khác nhau của hệ thống.
- Các thuộc tính được sử dụng cho kiểm soát truy cập: Các quyết định
an toàn dựa trên các thuộc tính chủ thể/đối tượng dựa trên ngữ cảnh yêu cầu
truy cập. Các thuộc tính cơ bản là: Vị trí, phân phối chủ thể/đối tượng, thời
gian, trạng thái một hoặc nhiều biến của hệ thống, lược sử truy cập. Các chính
sách an toàn phải được lựa chọn tùy thuộc vào nhu cầu của kiểm soát.
- Tính toàn vẹn: Áp dụng các chính sách và mô hình an toàn xác định
vào trong các môi trường, trong đó tính toàn vẹn là mối quan tâm chính.
- Trao các quyền ưu tiên: Mâu thuẫn có thể xảy ra giữa các nguyên tắc
và quyền ưu tiên dùng để giải quyết các mâu thuẫn này.
- Các đặc quyền: Chính là khả năng sử dụng các quyền: Đọc, ghi, thực
thi, xóa, sửa, thêm. Để quản lý đặc quyền, các phép trao/thu hồi đặc quyền
phải rõ ràng.
- Quyền: Một chính sách phải định nghĩa các kiểu vai trò, quyền và
- Mô tả ngữ nghĩa của CSDL an toàn
- Hỗ trợ việc phân tích các luồng quyền
- Hỗ trợ cho người quản trị CSDL. Tại mức khái niệm, các kiểm tra này
dễ thực hiện hơn so với tại mức cơ chế an toàn.
Một mô hình an toàn mức khái niệm cho phép biểu diễn một cách rõ
ràng các chính sách và các yêu cầu, đồng thời cho phép kiểm tra một số đặc
tính an toàn hệ thống.
Mô hình an toàn khái niệm biểu diễn các chủ thể, các đối tượng, các
phép toán, các chế độ truy cập tùy thuộc vào các yêu cầu chính sách đã được
định nghĩa. Mô hình của một hệ thống xác định phải đảm bảo:
- Tính đầy đủ: Mô hình đáp ứng tất cả các yêu cầu an toàn đã được xác
định ban đầu.
- Tính tương thích: Các thao tác thực hiện phải nhất quán với nhau.
- Tính nhất quán: Mô hình phải đảm bảo rằng tất cả các yêu cầu được
xác định là thống nhất với nhau và không tồn tại dư thừa dữ liệu.
1.3.4. Thiết kế cấu trúc logic
Trong giai đoạn này người ta sử dụng mô hình an toàn khái niệm
chuyển nó thành mô hình logic. Mô hình này được DBMS hỗ trợ. Hơn nữa
trong giai đoạn thiết kế logic, các nguyên tắc an toàn phải được xác định
trong mô hình logic một cách chi tiết ở mức độ hệ điều hành và các chức năng
được cung cấp bởi các gói an toàn. Mục đích là xác định các yêu cầu an toàn,
chính sách và các ràng buộc các tiên đề được biểu diễn trong mô hình an toàn
mức khái niệm. Sử dụng các thông tin về chức năng an toàn được định nghĩa
trong mức khái niệm, người phát triển xây dựng các yêu cầu an toàn có thể
được cung cấp ở mức hệ điều hành, mức DBMS hoặc thông qua các gói an
toàn.
13
thành phần bí mật, dùng khóa và mật khẩu để che giấu.
14
- An toàn mặc định: Nếu người sử dụng không quyết định các tùy chọn
thì các tùy chọn bảo vệ thường được đặt mặc định.
- Các cơ chế chung tối thiểu: việc chia sẻ tạo nên những kênh thông tin
tiềm tàng và các cơ chế nên độc lập với nhau.
- Dễ sử dụng: Việc sử dụng các cơ chế phải dễ dàng.
- Tính mềm dẻo: Một cơ chế an toàn nên tuân theo các chính sách khác
nhau, hiệu quả trong nhiều trường hợp khác nhau ngay cả trong tình huống
xấu nhất.
- Sự cách ly: Cơ chế an toàn nên cách ly (trong suốt) từ các thành phần
khác nhau của hệ thống, và nó có thể chống lại được nhiều kiểu tấn công.
- Tính đầy đủ và nhất quán: Cơ chế an toàn phải đầy đủ (có nghĩa là nó
tuân theo toàn bộ các đặc tả thiết kế) và nhất quán (có nghĩa là không tồn tại
các mâu thuẫn vốn có).
- Khả năng quan sát: Cần có khả năng kiểm soát cơ chế an toàn và các
tấn công chống lại cơ chế đó.
- Vấn đề bỏ sót: Phần bị bỏ sót là các đoạn thông tin được lưu trữ trong
bộ nhớ sau khi tiến trình kết thúc. Dữ liệu có thể bị lộ nếu các chủ thể trái
phép có thể kiểm tra các phần bị bỏ sót. Cơ chế an toàn cần loại bỏ các phần
bị bỏ sót.
- Khả năng không nhìn thấy được của dữ liệu: Nội dung của một đối
tượng và sự tồn tại của đối tượng đó cần được che giấu để tránh những người
dùng trái phép suy diễn ra các đối tượng đó.
- Hệ số làm việc: Việc phá vỡ một cơ chế an toàn phải là một công việc
khó khăn, đòi hỏi nhiều nỗ lực.
- Các bẫy chủ ý: có thể thiết kế một cơ chế với các lỗi chủ ý bên trong,
16
Hình 1.4. Sơ đồ thiết kế CSDL an toàn [4]