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 gọi thực hiện myproc.
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ị nghe trộm, hoặc đánh cắp. Với dữ liệu lƣu có thể sử dụng mã hóa hệ thống file, hoặc mã