Top 10 lỗ hổng cơ sở dữ liệu trên thực tế là những lỗ hổng bảo thƣờng gặp và đã bị
khai thác, hoặc có nhiều khảnăng bị khai thác để thực hiện các cuộc tấn công vào cơ sở
dữ liệu trên thực tế. Danh sách các lỗ hổng này bao gồm:
1. Default and Weak Passwords (Các mật khẩu yếu hoặc ngầm định) 2. SQL Injection in the DBMS (Lỗi chèn mã SQL)
3. Excessive User & Group Privileges (Đặc quyền quá mức cho ngƣời dùng hoặc
nhóm ngƣời dùng)
4. Unnecessary Enabled DBMS Features (Cho phép các tính năng không sử dụng trong DBMS)
5. Broken Configuration Management (Quản lý cấu hình lỗi) 6. Buffer Overflows (Lỗi tràn bộđệm)
7. Privilege Escalation (Leo thang đặc quyền) 8. Denial of Service (Tấn công từ chối dịch vụ)
9. Unpatched Database (Cơ sở dữ liệu không đƣợc vá) 10.Unencrypted Data (Dữ liệu không mã hóa)
Phần thiếp theo của mục này mô tả chi tiết các lỗ hổng kể trên.
Các mật khẩu yếu hoặc ngầm định
122 Nhiều hệ quản trị cơ sở dữ liệu, đặc biệt là các các phiên bản cũ sử dụng tài khoản quản trị với mật khẩu ngầm định đơn giản hoặc rỗng. Chẳng hạn, Microsoft SQL Server (phiên bản 2000 và cũ hơn) sử dụng ngƣời dùng quản trị hệ thống – sa với mật khẩu rỗng. Tƣơng tự, hệ quản trị cơ sở dữ liệu MySQL sử dụng ngƣời dùng quản trị hệ thống –
root với mật khẩu rỗng. Trong quá trình cài đặt, nhiều tài khoản sử dụng mật khẩu giống tên truy nhập hoặc rất dễđoán, nhƣ minh họa trên Hình 5.22.
Lỗi chèn mã SQL
Nhƣ đã đề cập trong mục 2.3, lỗi chèn mã SQL có thể giúp tin tặc vƣợt qua các khâu xác thực ngƣời dùng, chèn, sửa đổi, hoặc xóa dữ liệu, đánh cắp các thông tin trong cơ sở
dữ liệu và chiếm quyền điều khiển hệ thống máy chủcơ sở dữ liệu.
Đặc quyền quá mức cho người dùng hoặc nhóm người dùng
Nhiều ngƣời dùng, nhóm ngƣời dùng đƣợc cấp quyền truy nhập cao quá mức cần thiết
để thực hiện công việc đƣợc giao dẫn tới lạm dụng quyền, hoặc bị tin tặc khai thác. Trên thực tế, nhiều ngƣời dùng cơ sở dữ liệu đƣợc tạo chỉ để truy nhập dữ liệu nhƣng lại đƣợc cấp quyền quản trị, hoặc là chủ sở hữu cơ sở dữ liệu. Điều này xảy ra chủ yếu do ý thức của ngƣời quản trị và có thể gây ra hậu quả rất lớn nếu bị khai thác.
Một trƣờng hợp điển hình đã xảy ra trên thực tế là tấn công khai thác lỗi DBMS JVM EXP PERMS trên Oracle 11g R1: vai trò ban đầu là Public - không có tài khoản và không có quyền truy nhập, nhƣ minh họa trên Hình 5.23.
Hình 5.23. Lạm dụng đặc quyền – thời điểm bắt đầu
123
Bƣớc tiếp theo là thiết lập chính sách điều khiển truy nhập cho máy ảo Java (JVM),
nhƣ biểu diễn trên Hình 5.24. Do lỗi trong thành phần điều khiển truy nhập của JVM, Public có thể nhập toàn bộ quyền truy nhập của JVM và có toàn quyền truy nhập vào hệ điều hành, nhƣ biểu diễn trên Hình 5.25. Nguyên nhân của lỗi này là đặc quyền cấp cho máy ảo JVM quá mức và có thể bị lạm dụng.
Hình 5.25.Lạm dụng đặc quyền – giành quyền truy nhập tối đa vào hệđiều hành
Cho phép các tính năng không sử dụng trong DBMS
Việc cho phép chạy các tính năng không sử dụng trong trong hệ quản trịcơ sở dữ liệu mang lại nhiều rủi ro do điều này làm tăng bề mặt tấn công, giúp tin tặc có nhiều lựa chọn tấn công cơ sở dữ liệu. Đặc biệt, một sốtính năng không cần thiết, nhƣng lại có khả năng truy nhập sâu vào cơ sở dữ liệu và hệ thống, nhƣ siêu thủ tục xp_cmdshell trong SQL Server và Sysbase (Hình 5.26).
Hình 5.26. Ví dụ vềcho phép các tính năng không sử dụng trong DBMS Quản lý cấu hình lỗi
Cấu hình cơ sở dữ liệu, hoặc hệ quản trị cơ sở dữ liệu bị lỗi là một trong các nguyên nhân chính dẫn đến các cuộc tấn công khai thác. Hình 5.27 nêu một số ví dụ minh họa về
cấu hình DBMS có lỗi. Chẳng hạn, trong hệ quản trịcơ sở dữ liệu IBM DB2, tham số cấu
hình TRUST_ALLCLNTS đƣợc đặt ngầm định là YES – có nghĩa là tất cả các máy khách kết nối đến đều đƣợc xem là tin cậy.
124
Hình 5.27.Một số ví dụ về cấu hình DBMS có lỗi Lỗi tràn bộđệm
Lỗi tràn bộđệm là lỗi thƣờng gặp trong các mô đun phần mềm của các hệ quản trị cơ
sở dữ liệu. Lỗi tràn bộđệm có thể làm máy chủ ngừng hoạt động, hoặc giúp tin tặc tải và thực hiện mã độc trên hệ thống nạn nhân. Điển hình là sâu Slammer khai thác lỗi tràn bộ đệm trên hệ quản trị cơ sở dữ liệu Microsoft SQL 2000 cho phép thực thi mã từxa để lây lan sâu.
Leo thang đặc quyền
Lỗi leo thang đặc quyền có thểgiúp ngƣời dùng với quyền truy nhập thấp giành đƣợc quyền truy nhập cao hơn, chẳng hạn từ ngƣời dùng bình thƣờng có thể trở thành DBO (Database Owner), hoặc DBA (Database Admin).
Hình 5.28. Khai thác lỗi leo thang đặc quyền –trước khi khai thác
Để minh họa cho trƣờng hợp khai thác lỗi leo thang đặc quyền, chúng ta xem xét kịch bản khai thác lỗi này trong mô đun MDSYS.RESET_INPROG_INDEX của Oracle11g R2. Kịch bản khai thác nhƣ sau:
- Tạo 1 thủ tục myproc chứa mã cấp quyền cho ngƣời dùng hiện tại thành DBA; - Tạo hàm myfn chứa mã để tạo 1 trigger trong system schema. Trigger chứa lệnh
125 - Tiến hành khai thác lỗi trong mô đun MDSYS.RESET_INPROG_INDEX, yêu cầu
MDSYS thực hiện myfnđể tạo trigger;
- Sử dụng ngƣời dùng có quyền PUBLIC để chạy 1 lệnh SQL để kích hoạt việc thực hiện trigger đã tạo. Hệ thống sẽ thực hiện trigger và trigger sẽ gọi thực hiện
myproc cấp quyền DBA cho ngƣời dùng.
Hình 5.29. Khai thác lỗi leo thang đặc quyền – sau khi khai thác thành công
Hình 5.28 là màn hình ngƣời dùng thông thƣờng đăng nhập và Hình 5.29 là màn hình cung cấp thông tin ngƣời dùng trên đã đƣợc cấp quyền DBA sau khi khai thác thành công lỗleo thang đặc quyền trong mô đun MDSYS.RESET_INPROG_INDEX.
Tấn công từ chối dịch vụ
Nhƣ đã đề cập trong mục 5.4.1.1, tấn công từ chối dịch vụ trực tiếp vào cơ sở dữ liệu không phổ biến nhƣ dạng tấn công này vào hạ tầng mạng và các dịch vụ mạng khác. Tuy nhiên, tấn công từ chối dịch vụ có thể đƣợc thực hiện gián tiếp vào cơ sở dữ liệu thông qua việc khai thác các lỗi trong các mô đun của hệ quản trị cơ sở dữ liệu. Chẳng hạn, sâu Slammer khai thác lỗi tràn bộ đệm để tấn công DoS và lây lan đến 75.000 máy chủ
Microsoft SQL 2000 trong 10 phút, hoặc lỗi trong Tivoli DB2 monitoring agent của hệ
quản trị cơ sở dữ liệu IBM DB2 LUW 9.7 cho phép tin tặc tấn công DoS vào cơ sở dữ
liệu.
Cơ sở dữ liệu không được vá
Hệ quản trị cơ sở dữ liệu và các mô đun kèm theo nếu không đƣợc vá, cập nhật phù hợp sẽ chịu nhiều rủi ro từ các tấn công khai thác các lỗ hổng bảo mật đã biết do các mã khai thác các lỗi đã biết và hƣớng dẫn sử dụng chi tiết xuất hiện rất nhanh trên mạng Internet. Do vậy, cần có cơ chế cập nhật, vá lỗi phù hợp.
Dữ liệu không mã hóa
Các dữ liệu nhạy cảm tại chỗ hoặc trên đƣờng truyền không đƣợc mã hóa có thể bị
126 hóa dữ liệu kiểu trong suốt (TDE). Với dữ liệu trên đƣờng truyền, có thể sử dụng các giao thức bảo mật, nhƣ SSL/TLS, Kerberos, hoặc Oracle ASO.
5.5.Câu hỏi ôn tập
1) Mô tảcác mô hình ngƣời dùng, máy khách truy nhập cơ sở dữ liệu. 2) Mô tảcác đối tƣợng chính trong cơ sở dữ liệu.
3) Bảo mật cơ sở dữ liệu là gì? Nêu các yêu cầu bảo mật cơ sở dữ liệu. 4) Mô tả các yếu tốliên quan đến bảo mật cơ sở dữ liệu.
5) Mô tả Top 10 mối đe dọa đối với bảo mật cơ sở dữ liệu, theo Imperva 2015.
6) Vẽ mô hình bảo mật cơ sở dữ liệu tổng quát và nêu tên các lớp bảo mật cơ sở dữ liệu. 7) Mô tả nội dung chi tiết các lớp bảo mật cơ sở dữ liệu.
8) Mô tả các dạng tấn công từ chối dịch vụ lên cơ sở dữ liệu và các biện pháp phòng chống.
9) Trojan là gì? Nêu các phƣơng pháp mã trojan đƣợc nhúng vào cơ sở dữ liệu. 10)Mô tả Top 10 lỗ hổng cơ sở dữ liệu trên thực tế.
127
CHƢƠNG 6. CÁC CƠ CHẾ BẢO MẬT CƠ SỞ DỮ LIỆU
Chương 6 đề cập các cơ chế bảo mật cơ sở dữ liệu, bao gồm xác thực & trao quyền
người dùng, bảo mật các đối tượng trong cơ sở dữ liệu, sử dụng mã hóa và một số biện pháp bảo mật cơ sở dữ liệu khác. Trong phần tiếp theo, chương trình bày về mô hình bảo mật của 3 hệ quản trị cơ sở dữ liệu, bao gồm Microsoft SQL Server, MySQL và Oracle. Phần cuối chương giới thiệu vấn đề kiểm tra và đánh giá bảo mật hệ thống cơ sở dữ liệu.