Cảnh báo lỗ hổng của Microsoft SQL Server
1. Thông tin chung
Lỗ hổng này do hãng an ninh SEC Consult công bố cùng với mã khai thác với mức độ nguy hiểm cao:
Ngày công bố: 22/12/2008,
Phần mềm có lỗi: Microsoft SQL 2000, Microsoft SQL 2005, Windows Internal Database.
2. Mô tả kỹ thuật
Lỗi xảy ra là do SQL Server xử lý không tốt thủ tục sp_replwritetovarbin, một thủ tục thường trú mở rộng (Extended stored procedure) được xây dựng sẵn cho hệ quản trị. Để viết mã khai thác, hacker chỉ cần đưa vào thủ tục một tham số rất lớn dẫn đến SQL Server bị “tràn” khi xử lý nhằm chuyển điều khiển chương trình để thực thi mã độc.
Qua kết quả công tác thử nghiệm lỗ hổng trên cho thấy nếu một tiến trình của SQL Server bị đổ vỡ thì không ảnh hưởng đến toàn bộ dịch vụ của hệ quản trị. Điều này thực sự nguy hiểm nếu hacker đã thực hiện tấn công mà quản trị không hay biết. Dưới đây là kết quả do SQL Server trả về sau khi thực hiện tấn công thử nghiệm:
SqlDumpExceptionHandler: Process 52 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
Với lỗ hổng này, hacker có thể cài đặt mã độc và chiếm quyền điều khiển máy chủ SQL Server. Tuy nhiên, điều này yêu cầu phải có kết nối đến máy chủ và có quyền thực thi thủ tục sp_replwritetovarbin. Do đó, việc khai thác lỗ hổng này thực ra chỉ nhằm mục đích nâng quyền của hacker trên máy chủ sau khi đã thực hiện các cuộc tấn công nhằm chiếm kết nối và quyền thực thi, cụ thể nhất là tấn công SQL Injection.
3. Cập nhật bản vá
Các quản trị mạng có cài đặt và sử dụng hệ quản trị CSDL Microsoft SQL Server nên:
- Sẵn sàng cập nhật lỗ hổng thông qua dịch vụ Automatic Update của Windows.
- Cấu hình cấm thực thi thủ tục sp_replwritetovarbin (deny execute permission) như sau :
Đối với Microsoft SQL 2000:
Đối với Microsoft SQL 2005:
Đến cuối tháng 12/2008, Microsoft vẫn chưa đưa ra bản vá cho lỗ hổng này.