SQL Injection Nguy Hiểm: Chiếm Quyền Windows Server

SQL Injection Nguy Hiểm: Chiếm Quyền Windows Server
CLOUD SERVER
Vững hạ tầng • Chắc thành công
☁️
⚡ Hiệu năng cao
🛡️ Bảo mật
📈 Mở rộng dễ dàng
🕒 Hỗ trợ 24/7
TÌM HIỂU NGAY

Một lỗ hổng ứng dụng web phổ biến đã bị kẻ tấn công khai thác để chiếm quyền kiểm soát hệ thống Windows Server. Kẻ tấn công đã sử dụng kỹ thuật SQL injection để cài đặt một bộ công cụ điều khiển từ xa bên trong cơ sở dữ liệu Oracle.

Sự cố này cho thấy cách một biểu mẫu không được bảo vệ đầy đủ có thể trở thành con đường xâm nhập từ một trang web công khai vào hệ điều hành phía sau nó. Kẻ tấn công nhắm mục tiêu vào một ứng dụng Java và Tomcat công khai, có kết nối với Oracle.

Khai thác lỗ hổng SQL injection vào Oracle

Bằng cách gửi các lệnh cơ sở dữ liệu thông qua một tính năng tìm kiếm tự động hoàn thành không kiểm tra đầu vào đúng cách, kẻ tấn công đã làm cho cơ sở dữ liệu xử lý các lệnh và chuẩn bị cho giai đoạn tiếp theo của cuộc xâm nhập. Các nhà nghiên cứu tại Huntress đã xác định được hoạt động này sau khi phát hiện các nỗ lực đánh cắp thông tin xác thực khỏi một máy chủ lưu trữ Oracle.

Cuộc điều tra đã phát hiện các bản sao của các registry hive Windows SAM, SECURITY và SYSTEM. Dữ liệu này có thể giúp kẻ xâm nhập khôi phục các mật khẩu đã băm (password hashes) và mở rộng quyền truy cập. Theo báo cáo của Huntress, trường hợp này quan trọng vì mã độc không được đặt trên đĩa dưới dạng một tệp tin độc hại thông thường.

Thay vào đó, mã độc được lưu trữ và biên dịch bên trong Oracle, khiến cho việc giám sát tập trung vào endpoint khó phát hiện hơn trước khi nó được sử dụng để kiểm soát máy chủ Windows. Kẻ tấn công đã sử dụng khả năng nhúng Java của Oracle để tạo các đối tượng mã nguồn Java trực tiếp trong cơ sở dữ liệu.

Các lệnh được gửi qua kết nối JDBC của ứng dụng đã được biên dịch dưới dạng các đối tượng schema được lưu trữ, biến cơ sở dữ liệu thành một điểm khởi đầu ẩn danh thay vì chỉ là nơi lưu trữ dữ liệu kinh doanh. Bộ công cụ, có tên là khunt, bao gồm các thành phần để chạy các lệnh Windows, thu thập tên người dùng và mật khẩu Oracle, duyệt các tệp tin, kiểm tra xem bộ công cụ có đang hoạt động hay không và giải nén các tệp tin.

Phương pháp lưu trữ trong cơ sở dữ liệu này cung cấp cho kẻ tấn công các công cụ để khám phá máy chủ mà không cần dựa vào một tệp thực thi độc hại rõ ràng. Một thành phần đã mở một command shell và chạy một lệnh để xác định người dùng hiện tại. Kết quả trả về là các quyền cấp độ SYSTEM, xác nhận kẻ tấn công đã chuyển từ truy cập cơ sở dữ liệu sang quyền kiểm soát hệ điều hành. Đây là một rủi ro bảo mật tương tự như mối đe dọa remote code execution trên Windows Netlogon đang đối mặt với các môi trường máy chủ bị lộ.

Hoạt động sau đó chuyển sang thu thập thông tin xác thực. Kẻ xâm nhập đã sử dụng các tiện ích Windows để sao chép các registry hive và liệt kê các dịch vụ đang chạy, tạo các tệp tin trong thư mục Oracle để có thể lấy đi phân tích ngoại tuyến. Việc đánh cắp registry hive tương tự có thể tiết lộ thông tin xác thực cho các tài khoản cục bộ.

Phòng ngừa và khắc phục

Việc truy cập ban đầu đến từ SQL injection, không phải là một lỗ hổng phần mềm mới được công bố. Sự khác biệt này quan trọng vì nó đặt trọng tâm vào thiết kế ứng dụng và quyền truy cập cơ sở dữ liệu, chứ không chỉ việc cập nhật bản vá. Các tổ chức nên xem xét mọi biểu mẫu và trường tìm kiếm công khai có thể truy cập vào cơ sở dữ liệu, đặc biệt là các tính năng cũ có thể bị bỏ qua trong quá trình kiểm thử.

Đầu vào cần được làm sạch (sanitized) và các truy vấn cơ sở dữ liệu cần được tham số hóa để văn bản được cung cấp không thể bị diễn giải thành SQL có thể thực thi. Đây là một biện pháp bảo vệ cơ bản chống lại sự xác thực không đúng cách đã thấy trong lỗ hổng Windows Active Directory. Các tài khoản cơ sở dữ liệu cũng cần có bộ quyền hạn nhỏ nhất có thể.

Một tài khoản được sử dụng bởi ứng dụng web không nên có khả năng tạo các đối tượng mã nguồn Java, chạy các stored procedure nhạy cảm hoặc có quyền truy cập hệ điều hành rộng rãi. Điều này sẽ giới hạn thiệt hại ngay cả khi một lỗi injection bị bỏ sót. Các chuyên gia phòng thủ nên nhìn xa hơn các bản quét tệp thông thường khi điều tra máy chủ Oracle.

Việc tìm kiếm các đối tượng cơ sở dữ liệu cho các lớp Java bất thường, xem xét các trình bao bọc PL/SQL và kiểm tra nhật ký web và SQL về các lệnh bất thường có thể phơi bày các hoạt động mà các công cụ endpoint có thể bỏ lỡ. Quản trị viên cũng nên cập nhật các bản vá bảo mật của Microsoft cho các hệ điều hành Windows hỗ trợ các khối lượng công việc này.

Cơ sở hạ tầng và tên tạo tác của kẻ tấn công được báo cáo cung cấp các đầu mối thực tế cho các nhà ứng cứu sự cố để săn lùng mối đe dọa. Một cuộc đánh giá nên ưu tiên các tệp tin Oracle-tạo bất thường, các đối tượng cơ sở dữ liệu không mong đợi và các dấu hiệu cho thấy oracle.exe đã khởi chạy các công cụ dòng lệnh hoặc registry. Sau đó, cách ly các hệ thống bị ảnh hưởng và đặt lại thông tin xác thực nếu tài liệu thông tin xác thực có thể đã bị sao chép. Quan trọng là phải bảo tồn các nhật ký liên quan cho một cuộc đánh giá pháp y hoàn chỉnh trước khi xây dựng lại niềm tin vào máy chủ.

Chỉ số của sự xâm nhập (IoCs)

Các chỉ số về sự xâm nhập (IoCs) được cung cấp trong báo cáo của Huntress. Các địa chỉ IP và tên miền được cung cấp dưới dạng bị làm mất hiệu lực (defanged) để ngăn chặn việc phân giải hoặc liên kết ngoài ý muốn. Việc làm mất hiệu lực này chỉ nên được gỡ bỏ trong các nền tảng tình báo mối đe dọa được kiểm soát như MISP, VirusTotal hoặc SIEM của bạn.

Các tổ chức nên xem xét các chỉ số về sự xâm nhập (IoCs) để hỗ trợ việc phát hiện và ứng phó với các mối đe dọa tương tự.