Lỗ hổng này có mã định danh theo dõi CVE-2020-1350 và tên gọi chính thức là SIGRed. Nó đã tồn tại trong Windows DNS Server gần 2 thập kỷ và chỉ vừa mới được xử lý thành công nhờ nỗ lực của các chuyên gia Microsoft với sự trợ giúp từ đội ngũ bảo mật Checkpoint Security.
Sở dĩ SIGRed được đánh giá ở mức độ nghiêm trọng tối đa, 10 trên 10, là bởi về bản chất, nó là một lỗ hổng thực thi mã từ xa ảnh hưởng trực tiếp đến hoàng loạt phiên bản Windows Server (từ 2003 đến 2019), và trong trường hợp bị khai thác thành công, SIGRed sẽ mở đường cho hacker nắm trong tay các đặc quyền Domain Administrator, từ đó thôn tính toàn bộ cơ sở hạ tầng của tổ chức/doanh nghiệp nạn nhân.
Ngoài ra, SIGRed còn nguy hiểm ở “đặc tính mã độc” mà nó sở hữu, có nghĩa là một phiên khai thác thành công lỗ hổng có thể tự động lan truyền đến các hệ thống Windows dễ bị tổn thương khác trên toàn mạng mà không cần đến sự tương tác của người dùng làm cầu nối. Đặc tính này đặt nó ngang hàng với các lỗ hổng nổi tiếng nghiêm trọng đã từng được ghi nhận như EternalBlue trong Server Message Block (SMB) và BlueKeep trên Remote Desktop Protocol (RDP).
Lỗ hổng SIGRed
Domain Name System (DNS) có thể được coi như “danh bạ điện thoại” của Internet, cho phép các máy khách kết nối với máy chủ để truy cập tài nguyên. Đây là mô hình ánh xạ tên miền thành địa chỉ IP để cho phép kết nối đến đúng máy chủ truy vấn.
Các nhà nghiên cứu tại Check Point Security đã phát hiện ra một lỗ hổng trong việc triển khai DNS của Microsoft có thể bị khai thác khi máy chủ phân tích cú pháp truy vấn đến hoặc phản hồi cho yêu cầu được chuyển tiếp. Họ đã tìm thấy một lỗi tràn số nguyên dẫn đến tràn bộ đệm dựa trên heap trong “dns.exe!SigWireRead” - hàm phân tích các kiểu phản hồi cho truy vấn SIG.
Như vậy về cơ bản, có thể khai thác lỗ hổng trong máy chủ DNS mục tiêu bằng cách trả lời một trong các truy vấn của nó với phản hồi SIG đủ lớn để kích hoạt lỗi. Ngoài ra, các nhà nghiên cứu cũng nhận thấy rằng một tác nhân khai thác SIGRed không cần phải ở trên cùng một mạng với máy chủ DNS đích, vì dữ liệu DNS có thể được truyền qua kết nối TCP, được hỗ trợ bởi Windows DNS. Như vậy, máy chủ đích sẽ phân tích dữ liệu dưới dạng truy vấn DNS ngay cả khi nó được gửi đi dưới dạng payload HTTP.
Bên cạnh đó, vì máy chủ DNS của Windows hỗ trợ “Connection Reuse” và “Pipelining”, nên kẻ tấn công hoàn toàn có thể khởi chạy một số truy vấn qua kết nối TCP mà không phải chờ trả lời.
Lỗ hổng đã tồn tại trong 17 năm
Lỗ hổng này đã tồn tại trong mã của Microsoft hơn 17 năm, và bản vá mới chỉ được Microsoft phát hành ngày 14/7 vừa qua. Trong trường hợp không thể áp dụng bản vá tại thời điểm này, Microsoft khuyến nghị quản trị viên hệ thống nên sửa đổi registry để giảm thiểu sự cố. Thay đổi có hiệu lực sau khi khởi động lại dịch vụ DNS:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
DWORD = TcpReceivePacketSize
Value = 0xFF00
Sau khi áp dụng bản vá, quản trị viên nên hoàn nguyên các thay đổi về trạng thái ban đầu bằng cách xóa giá trị TcpReceivePacketSize và dữ liệu của nó.