1 คะแนน โดย GN⁺ 2024-09-18 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

คำเตือน: macOS Sequoia 15 อาจข้ามการเข้ารหัส DNS ได้

พื้นฐาน DNS Encryption

  • เมื่อป้อนชื่อโฮสต์ในเว็บเบราว์เซอร์ (เช่น apple.com) ชื่อนั้นจะต้องถูกแปลงเป็นที่อยู่ IP ก่อน คอมพิวเตอร์จึงจะเชื่อมต่อกับเซิร์ฟเวอร์ได้
  • โดยปกติการค้นหานี้จะทำโดยไม่มีการเข้ารหัส ทำให้ผู้ให้บริการอินเทอร์เน็ตและบุคคลอื่นที่เฝ้าติดตามการเชื่อมต่อสามารถเห็นไซต์ที่คุณเข้าเยี่ยมชมได้
  • เพื่อปกป้องการค้นหาเหล่านี้ Little Snitch 6 จึงมีฟีเจอร์ใหม่คือการเข้ารหัส DNS
  • เมื่อเปิดใช้งานการเข้ารหัส DNS การค้นหาชื่อทั้งหมดจะถูกดำเนินการผ่าน Little Snitch ในรูปแบบที่เข้ารหัส
  • เพื่อให้ทำงานได้ Little Snitch จะลงทะเบียน DNS proxy และ macOS จะส่งคำขอ DNS ทั้งหมดไปยัง proxy นั้นเพื่อทำการค้นหาแบบเข้ารหัส

แต่...

  • ระหว่างการตรวจสอบปัญหาที่เกี่ยวข้องกับ DNS บน macOS 15 Sequoia พบว่าคำขอ DNS บางรายการ (โดยเฉพาะคำขอที่เกิดผ่าน legacy API ระดับต่ำบางตัว) ไม่ได้ถูกส่งต่อไปยัง proxy
  • ดูเหมือนว่า macOS Sequoia จะมีบั๊กที่ทำให้คำขอบางส่วนข้าม DNS proxy ที่ติดตั้งไว้ และถูกส่งไปยัง name server เริ่มต้นของระบบโดยไม่มีการเข้ารหัส
  • บั๊กนี้อาจส่งผลไม่เฉพาะกับ Little Snitch แต่รวมถึง DNS proxy ทุกประเภท
  • ดังนั้นหากคุณใช้ฟีเจอร์การเข้ารหัส DNS ใหม่ของ Little Snitch 6 หรือใช้ DNS proxy ของบุคคลที่สามอื่น ๆ ควรทราบว่าคำค้นหา DNS บางส่วนอาจข้าม proxy ได้จนกว่า Apple จะแก้ไขในอัปเดต macOS ในอนาคต
  • อย่างไรก็ตาม การค้นหา DNS ที่ดำเนินการผ่าน API ระดับสูงจะไม่ได้รับผลกระทบจากบั๊กนี้ ตัวอย่างเช่น การท่องเว็บใน Safari หรือ Chrome ยังได้รับประโยชน์จากการค้นหาแบบเข้ารหัส ขณะที่ Firefox อาจได้รับผลกระทบ

วิธีทำซ้ำปัญหา

  1. เปิดใช้งานการเข้ารหัส DNS ในการตั้งค่า Little Snitch
  2. เริ่ม Wireshark ด้วย capture filter port 53
  3. รันโค้ดต่อไปนี้ใน Xcode Playground:
    import Foundation
    let domain = "dnsproxytest.com"
    var result: UnsafeMutablePointer<addrinfo>?
    let status = getaddrinfo(domain, nil, nil, &result)
    
  • คุณจะยืนยันได้ว่าการค้นหาสำหรับ dnsproxytest.com ปรากฏใน Wireshark แบบไม่เข้ารหัสบนพอร์ต UDP 53 (ค่าปริยายของการค้นหาแบบไม่เข้ารหัส)
  • นอกจากนี้ Network Monitor ของ Little Snitch ยังไม่แสดงทราฟฟิกใด ๆ สำหรับการค้นหานี้เลย ซึ่งหมายความว่าการค้นหานั้นข้าม network filter ไปโดยสมบูรณ์
  • ได้รายงานบั๊กนี้ต่อ Apple แล้ว และหวังว่าจะมีการแก้ไขอย่างรวดเร็ว โดยจะอัปเดตข้อมูลต่อไป

อัปเดต 2024-09-17, 19:10 น.

  • จากการตรวจสอบเพิ่มเติม พบว่าบั๊กนี้มีอยู่มาตั้งแต่อย่างน้อย macOS 14.5 Sonoma และอาจมีอยู่ในเวอร์ชันเก่ากว่านั้นด้วย ปัจจุบันไม่สามารถทดสอบได้เพราะไม่สามารถเข้าถึงระบบ 14.x ที่เก่ากว่านี้

สรุปโดย GN⁺

  • บทความนี้กล่าวถึงบั๊กใน macOS Sequoia 15 ที่อาจทำให้การเข้ารหัส DNS ถูกข้ามได้
  • การเข้ารหัส DNS เป็นฟีเจอร์สำคัญในการปกป้องความเป็นส่วนตัวของผู้ใช้อินเทอร์เน็ต
  • บั๊กนี้ส่งผลโดยเฉพาะกับคำขอ DNS ที่เกิดผ่าน legacy API ระดับต่ำ
  • จนกว่า Apple จะแก้ปัญหานี้ ผู้ใช้ควรตระหนักว่าการค้นหา DNS บางส่วนอาจไม่ถูกเข้ารหัส
  • โปรเจ็กต์อื่นที่มีความสามารถคล้ายกัน ได้แก่โซลูชันกรอง DNS อย่าง Pi-hole

1 ความคิดเห็น

 
nearfall 2024-09-18

ขอบคุณสำหรับข้อมูลสำคัญครับ
อย่างน้อยก็ถือว่าโชคดีที่ Safari กับ Chrome ยังพอวางใจได้