Các lỗ hổng được tìm thấy trong Dnsmasq cho phép giả mạo nội dung trong bộ đệm DNS

Thông tin mới đây đã được công bố về việc phát hiện bảy lỗ hổng trong gói phần mềm Dnsmasq, kết hợp giữa trình phân giải DNS bộ nhớ đệm và máy chủ DHCP, có tên mã là DNSpooq. Những vấn đề này cho phép thực hiện các cuộc tấn công giả mạo bộ nhớ đệm DNS hoặc tràn bộ đệm , có thể dẫn đến việc kẻ tấn công thực thi mã từ xa.

Mặc dù Dnsmasq gần đây đã bị loại bỏ khỏi danh sách trình phân giải mặc định trong các bản phân phối Linux tiêu chuẩn, nó vẫn được sử dụng trong Android và các bản phân phối chuyên dụng như OpenWrt và DD-WRT, cũng như trong phần mềm của nhiều bộ định tuyến không dây. Trong các bản phân phối tiêu chuẩn, việc sử dụng dnsmasq một cách ngầm định là khả thi; ví dụ, khi sử dụng libvirt, nó có thể được khởi động để cung cấp dịch vụ DNS trong máy ảo hoặc được kích hoạt bằng cách thay đổi cài đặt trong trình cấu hình NetworkManager.

Do việc cập nhật các bộ định tuyến không dây hiện nay còn nhiều thiếu sót, các nhà nghiên cứu lo ngại rằng những vấn đề đã được xác định có thể sẽ không được giải quyết trong thời gian dài và trở thành mục tiêu của các cuộc tấn công tự động vào bộ định tuyến nhằm giành quyền kiểm soát hoặc chuyển hướng người dùng đến các trang web độc hại giả mạo.

Hiện có khoảng 40 công ty sử dụng Dnsmasq , bao gồm Cisco, Comcast, Netgear, Ubiquiti, Siemens, Arista, Technicolor, Aruba, Wind River, Asus, AT&T, D-Link, Huawei, Juniper, Motorola, Synology, Xiaomi, ZTE và Zyxel. Người dùng các thiết bị của các công ty này nên tránh sử dụng dịch vụ chuyển tiếp truy vấn DNS tích hợp sẵn.

Phần đầu tiên của các lỗ hổng được phát hiện trong Dnsmasq liên quan đến việc bảo vệ chống lại các cuộc tấn công làm nhiễm độc bộ nhớ cache DNS, dựa trên một phương pháp được Dan Kaminsky đề xuất vào năm 2008.

Các lỗ hổng được xác định khiến các biện pháp bảo vệ hiện có trở nên vô hiệu và cho phép giả mạo địa chỉ IP của bất kỳ tên miền nào trong bộ nhớ cache. Phương pháp của Kaminsky thao túng kích thước không đáng kể của trường nhận dạng truy vấn DNS, chỉ có 16 bit.

Để tìm ra mã định danh chính xác cần thiết để giả mạo tên máy chủ, chỉ cần gửi khoảng 7.000 yêu cầu và mô phỏng khoảng 140.000 phản hồi giả mạo. Cuộc tấn công tóm lại là gửi một lượng lớn gói tin liên kết IP giả mạo đến máy chủ phân giải DNS với các mã định danh giao dịch DNS khác nhau.

Các lỗ hổng được xác định làm giảm mức độ entropy dự kiến ​​từ 32 bit xuống yêu cầu dự đoán 19 bit, khiến cho tấn công đầu độc bộ nhớ cache trở nên khá khả thi. Hơn nữa, cách xử lý bản ghi CNAME của dnsmasq cho phép nó giả mạo chuỗi bản ghi CNAME, từ đó giả mạo hiệu quả tối đa chín bản ghi DNS cùng một lúc.

  • CVE-2020-25684: thiếu xác thực ID yêu cầu kết hợp với địa chỉ IP và số cổng khi xử lý phản hồi DNS từ máy chủ bên ngoài. Hành vi này không tương thích với RFC-5452, đòi hỏi các thuộc tính yêu cầu bổ sung được sử dụng khi khớp một phản hồi.
  • CVE-2020-25686: Thiếu xác thực các yêu cầu đang chờ xử lý có cùng tên, cho phép sử dụng phương pháp ngày sinh để giảm đáng kể số lần thử giả mạo phản hồi. Kết hợp với lỗ hổng CVE-2020-25684, tính năng này có thể làm giảm đáng kể mức độ phức tạp của cuộc tấn công.
  • CVE-2020-25685: sử dụng thuật toán băm CRC32 không đáng tin cậy khi xác minh phản hồi, trong trường hợp biên dịch không có DNSSEC (SHA-1 được sử dụng với DNSSEC). Lỗ hổng có thể được sử dụng để giảm đáng kể số lần thử bằng cách cho phép bạn khai thác các miền có cùng hàm băm CRC32 như miền đích.
  • Nhóm sự cố thứ hai (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 và CVE-2020-25687) là do lỗi gây ra lỗi tràn bộ đệm khi xử lý một số dữ liệu bên ngoài.
  • Đối với các lỗ hổng CVE-2020-25681 và CVE-2020-25682, có thể tạo ra các khai thác có thể dẫn đến việc thực thi mã trên hệ thống.

Cuối cùng, tài liệu đề cập rằng các lỗ hổng đã được khắc phục trong bản cập nhật Dnsmasq 2.83 , và như một giải pháp tạm thời, người ta khuyến nghị nên tắt DNSSEC và bộ nhớ đệm truy vấn bằng các tùy chọn dòng lệnh.

Nguồn: https://kb.cert.org


Thêm vào danh sách nguồn ưu tiên trên Google.