1 điểm bởi GN⁺ 2024-09-18 | 1 bình luận | Chia sẻ qua WhatsApp

Cảnh báo: macOS Sequoia 15 có thể bỏ qua mã hóa DNS

Tổng quan về mã hóa DNS

  • Khi nhập tên máy chủ vào trình duyệt web (ví dụ: apple.com), tên đó cần được chuyển đổi thành địa chỉ IP để máy tính có thể kết nối tới máy chủ
  • Việc tra cứu này thường được thực hiện mà không có mã hóa, vì vậy nhà cung cấp internet và các bên khác giám sát kết nối có thể thấy các trang web bạn truy cập
  • Để bảo vệ các truy vấn này, Little Snitch 6 cung cấp tính năng mới là mã hóa DNS
  • Khi mã hóa DNS được bật, mọi truy vấn tên sẽ được thực hiện dưới dạng mã hóa thông qua Little Snitch
  • Để làm điều này, Little Snitch đăng ký một proxy DNS và macOS sẽ gửi mọi yêu cầu DNS tới proxy đó để thực hiện tra cứu dưới dạng mã hóa

Nhưng…

  • Trong khi điều tra các vấn đề liên quan đến DNS trên macOS 15 Sequoia, họ phát hiện một số yêu cầu DNS — đặc biệt là các yêu cầu được thực hiện thông qua một số API legacy cấp thấp nhất định — không được chuyển tới proxy
  • Có vẻ như macOS Sequoia có một lỗi khiến một số yêu cầu bỏ qua proxy DNS đã cài đặt và được gửi không mã hóa tới máy chủ tên mặc định của hệ thống
  • Lỗi này có thể ảnh hưởng không chỉ đến Little Snitch mà còn đến mọi loại proxy DNS
  • Vì vậy, nếu bạn đang dùng tính năng mã hóa DNS mới của Little Snitch 6 hoặc sử dụng proxy DNS bên thứ ba khác, cần lưu ý rằng một số truy vấn DNS có thể bỏ qua proxy cho đến khi Apple khắc phục trong bản cập nhật macOS tương lai
  • Tham khảo thêm: các truy vấn DNS được thực hiện qua API cấp cao không bị ảnh hưởng bởi lỗi này. Ví dụ, duyệt web bằng Safari hoặc Chrome vẫn được hưởng lợi từ truy vấn được mã hóa. Trong khi đó, Firefox có thể bị ảnh hưởng

Cách tái hiện

  1. Bật mã hóa DNS trong phần cài đặt của Little Snitch
  2. Khởi chạy Wireshark với bộ lọc bắt gói port 53
  3. Chạy đoạn mã sau trong Xcode Playground:
    import Foundation
    let domain = "dnsproxytest.com"
    var result: UnsafeMutablePointer<addrinfo>?
    let status = getaddrinfo(domain, nil, nil, &result)
    
  • Có thể xác nhận rằng truy vấn tới dnsproxytest.com xuất hiện trong Wireshark ở dạng không mã hóa trên cổng UDP 53 (mặc định cho truy vấn không mã hóa)
  • Ngoài ra, trình giám sát mạng của Little Snitch hoàn toàn không hiển thị lưu lượng cho truy vấn này. Điều đó có nghĩa là truy vấn đã bỏ qua hoàn toàn bộ lọc mạng
  • Lỗi này đã được báo cáo cho Apple và hy vọng sẽ có bản sửa nhanh. Họ sẽ tiếp tục cập nhật thêm

Cập nhật 2024-09-17, 7:10 PM

  • Kết quả điều tra bổ sung cho thấy lỗi này đã tồn tại ít nhất từ macOS 14.5 Sonoma và có thể cũng tồn tại ở các phiên bản cũ hơn. Hiện tại không thể kiểm tra vì không có quyền truy cập vào các hệ thống 14.x cũ hơn

Tóm tắt của GN⁺

  • Bài viết này đề cập đến một lỗi trên macOS Sequoia 15 có thể khiến mã hóa DNS bị bỏ qua
  • Mã hóa DNS là một tính năng quan trọng để bảo vệ quyền riêng tư của người dùng internet
  • Lỗi này đặc biệt ảnh hưởng đến các yêu cầu DNS được thực hiện thông qua API legacy cấp thấp
  • Cho đến khi Apple khắc phục vấn đề này, người dùng cần lưu ý rằng một số truy vấn DNS có thể không được mã hóa
  • Các dự án khác cung cấp tính năng tương tự gồm có các giải pháp lọc DNS như Pi-hole

1 bình luận

 
nearfall 2024-09-18

Cảm ơn vì thông tin quan trọng.
Trước mắt, thật may khi có thể yên tâm rằng Safari và Chrome vẫn an toàn.