ชื่อจากงานวิจัยสองชื่อถูกใช้แทนกันสำหรับทราฟฟิก VPN ใด ๆ ที่ออกนอกอุโมงค์ แต่กลไกเบื้องหลังไม่เหมือนกัน TunnelCrack อธิบายข้อยกเว้นการกำหนดเส้นทางสองตระกูล ส่วน TunnelVision อธิบายเส้นทางที่ DHCP ส่งให้อุปกรณ์ปลายทาง ทั้งสองไม่ได้ทำลายการเข้ารหัส และทั้งสองไม่ได้บอกว่าไคลเอนต์เวอร์ชันใดเวอร์ชันหนึ่งทำอะไรในวันนี้ การตรวจห้าข้อแยกกลไกออกจากพาดหัวข่าว

ขั้นที่หนึ่ง: ตั้งชื่อกลไกที่คุณกำลังตรวจสอบ

การเปิดเผย TunnelCrack เมื่อเดือนสิงหาคม 2023 อธิบายการโจมตีสองตระกูล ในกรณีเครือข่ายท้องถิ่น ทราฟฟิกที่ไคลเอนต์ถือว่าเป็นของเครือข่ายท้องถิ่นจะได้รับข้อยกเว้นการเข้าถึงท้องถิ่นและออกนอกอุโมงค์ ในกรณีที่อยู่เซิร์ฟเวอร์ เส้นทางที่ไคลเอนต์ต้องใช้เพื่อไปถึงเซิร์ฟเวอร์ VPN เองอยู่นอกอุโมงค์ และฝ่ายตรงข้ามที่ควบคุมที่อยู่นั้นสามารถใช้ประโยชน์จากข้อยกเว้นได้

TunnelVision เป็นรายงานแยกเกี่ยวกับเส้นทางสถิตแบบไม่มีคลาสที่ DHCP ส่งให้ เซิร์ฟเวอร์ DHCP ที่เป็นอันตรายสามารถให้เส้นทางแก่อุปกรณ์ปลายทางซึ่งเปลี่ยนเส้นทางที่ทราฟฟิกใช้ รวมถึงเส้นทางไปยังเซิร์ฟเวอร์ VPN รายงานยอมรับงานก่อนหน้าว่าด้วยผลกระทบของการกำหนดเส้นทางที่เกี่ยวข้อง ซึ่งเตือนว่ากลไกพื้นฐานเก่ากว่าชื่อ

CaseException it abuses
TunnelCrack local networkTraffic classified as local bypasses the tunnel
TunnelCrack server addressThe route to the VPN server sits outside the tunnel
TunnelVisionDHCP option 121 installs routes that redirect traffic

ตรึงชื่อไว้กับกลไกของมัน การแก้ไขสำหรับตัวหนึ่งเพราะอีกตัวอยู่ในข่าวคือวิธีที่การตรวจสอบสร้างความเคลื่อนไหวโดยไม่มีความครอบคลุม

ขั้นที่สอง: ดูข้อยกเว้นการเข้าถึงท้องถิ่น

ไคลเอนต์ส่วนใหญ่ยกเว้นทราฟฟิกเครือข่ายท้องถิ่นเพื่อให้เครื่องพิมพ์ การฉายหน้าจอ และการแชร์ไฟล์ยังทำงานได้ขณะอุโมงค์เปิดอยู่ ข้อยกเว้นนั้นเป็นการตัดสินใจเชิงนโยบายที่มีต้นทุนด้านความปลอดภัย: ฝ่ายตรงข้ามในเครือข่ายเดียวกันสามารถแสดงตนเป็นโฮสต์ท้องถิ่นได้ และทราฟฟิกที่ไปถึงนั้นไม่เคยเข้าสู่อุโมงค์

ถามว่าโปรไฟล์ที่ปรับใช้ต้องการข้อยกเว้นนี้หรือไม่ กำลังคนระยะไกลที่ไม่เคยใช้การค้นหาท้องถิ่นมักปิดได้ และบริการท้องถิ่นที่เหลือสามารถเข้าถึงได้ผ่านเส้นทางที่บันทึกไว้ ที่ใดจำเป็นต้องมีข้อยกเว้น ให้ระบุว่าครอบคลุมปลายทางใดแทนการอธิบายว่าเป็นทราฟฟิกท้องถิ่น

การตรวจสอบเป็นคำถามเรื่องการกำหนดค่า ไม่ใช่การดักจับแพ็กเก็ต อ่านการตั้งค่าโปรไฟล์และเอกสารไคลเอนต์สำหรับบิลด์ที่คุณปรับใช้ เพราะค่าเริ่มต้นแตกต่างกันระหว่างผลิตภัณฑ์และระหว่างเวอร์ชันของผลิตภัณฑ์เดียวกัน เขียนคำตอบไว้ข้างโปรไฟล์ เพื่อให้ผู้ตรวจคนถัดไปไม่ต้องอนุมานจากพฤติกรรม ข้อยกเว้นที่ไม่มีใครบันทึกไว้คือข้อยกเว้นที่ไม่มีใครตรวจสอบ

ขั้นที่สาม: ดูว่าที่อยู่เซิร์ฟเวอร์เรียนรู้อุย่างไร

ไคลเอนต์ต้องไปถึงเซิร์ฟเวอร์ VPN ก่อนที่อุโมงค์ใดจะเกิดขึ้น ดังนั้นปลายทางนั้นจึงถูกกำหนดเส้นทางออกนอกอุโมงค์ตามการออกแบบ หากที่อยู่เรียนรู้มาจากชื่อ ขั้นตอนการแปลงชื่อเป็นส่วนหนึ่งของเส้นทางความเชื่อถือ และฝ่ายตรงข้ามที่ตอบคำถามนั้นได้สามารถชี้ไคลเอนต์ไปยังโฮสต์ที่ตนควบคุม

การตรึงที่อยู่ การใช้ใบรับรองที่ตรวจสอบแล้วพร้อมชื่อที่ถูกต้อง และการปฏิเสธที่จะถอยกลับไปยังเซิร์ฟเวอร์ที่ยังไม่ตรวจสอบ ล้วนลดการเปิดเผย ไม่มีข้อใดขจัดความจำเป็นในการไปถึงเซิร์ฟเวอร์นอกอุโมงค์ พวกมันเปลี่ยนว่าใครสามารถตอบสำหรับที่อยู่นั้น

resolvectl query vpn.lab.example
ip route get 198.51.100.24
ip rule show

การค้นหาเส้นทางแสดงอินเทอร์เฟซที่ไคลเอนต์จะใช้สำหรับที่อยู่เซิร์ฟเวอร์ และนั่นคือข้อยกเว้นในรูปธรรม หากการค้นหานั้นคืนอินเทอร์เฟซของอุโมงค์ ไคลเอนต์ก็สร้างอุโมงค์ไม่ได้เลย ดังนั้นจึงคาดว่าจะมีเส้นทางภายนอก และคำถามคือเลือกปลายทางของมันอย่างไร

ขั้นที่สี่: ดูเส้นทางที่ DHCP ให้มา

เส้นทางสถิตแบบไม่มีคลาสอนุญาตให้เซิร์ฟเวอร์ DHCP แจกจ่ายรายการในตารางการกำหนดเส้นทาง และอุปกรณ์ปลายทางมักยอมรับโดยไม่ถาม ในเครือข่ายที่ฝ่ายตรงข้ามตอบ DHCP ได้เร็วกว่าเซิร์ฟเวอร์ที่ชอบด้วยกฎหมาย รายการเหล่านั้นสามารถเปลี่ยนเส้นทางทราฟฟิกที่ผู้ใช้คิดว่าอยู่ในอุโมงค์

เปรียบเทียบเส้นทางบนอุปกรณ์ปลายทางกับเส้นทางที่คุณคาดไว้ เส้นทางเริ่มต้นหรือคำนำหน้ากว้างที่ชี้ไปยังเกตเวย์ท้องถิ่นขณะอุโมงค์เปิดอยู่คือลายเซ็นที่ควรค่าแก่การสอบสวน และมองเห็นได้โดยไม่มีทราฟฟิกการโจมตีใด ๆ

ip route show table all
ip route get 203.0.113.55
nmcli -g ipv4.ignore-auto-routes con show "Wired connection 1"

การตั้งค่าสุดท้ายคือการควบคุมฝั่งอุปกรณ์ปลายทางที่ไคลเอนต์และแพลตฟอร์มจำนวนมากเปิดให้ในรูปแบบใดรูปแบบหนึ่ง: ไม่สนใจเส้นทางที่เครือข่ายให้มา การปิดการยอมรับเส้นทางอัตโนมัติเป็นการแลกเปลี่ยน เพราะมันยังปิดการกำหนดเส้นทางแบบแบ่งที่ชอบด้วยกฎหมายจากเซิร์ฟเวอร์ DHCP ขององค์กรด้วย ดังนั้นตัดสินใจตามชั้นของเครือข่ายไม่ใช่ทั้งโลก

ขั้นที่ห้า: แยกประกาศออกจากบิลด์ปัจจุบัน

การโจมตีที่เผยแพร่อธิบายพฤติกรรมที่สังเกตพบบนไคลเอนต์บางเวอร์ชัน ณ เวลาหนึ่ง ไม่ได้ยืนยันว่าแล็ปท็อปที่อยู่ตรงหน้าคุณได้รับผลกระทบ และไม่ได้ยืนยันว่าได้รับการแก้ไขแล้ว ข้อกล่าวอ้างทั้งสองต้องใช้หมายเลขบิลด์จริงและประกาศล่าสุดของผู้จำหน่าย

บันทึกเวอร์ชันไคลเอนต์ แพลตฟอร์ม การตั้งค่าโปรไฟล์ที่ควบคุมข้อยกเว้นข้างต้น และวันที่คุณตรวจสอบ บันทึกนั้นแก่ลงอย่างซื่อสัตย์ ขณะที่บันทึกย่อที่บอกว่า VPN ถูกแพตช์สำหรับ TunnelCrack ไม่ได้แก่ลงอย่างซื่อสัตย์ อ่านซ้ำทุกครั้งที่ไคลเอนต์อัปเดต เพราะค่าเริ่มต้นของโปรไฟล์อาจเปลี่ยนภายใต้เวอร์ชันที่คุณไม่ได้แตะต้อง

เมื่อคุณตรวจสอบจริง ให้ใช้แผนที่ได้รับอนุมัติกับอุปกรณ์ปลายทางของคุณเองและปลายทางที่ไม่เป็นอันตราย การทำซ้ำการโจมตีต่อผู้ใช้รายอื่นบนเครือข่ายที่ใช้ร่วมกันไม่ใช่การทดสอบ และการปิดการตรวจสอบเพียร์หรือการเข้ารหัสของแอปพลิเคชันเพื่อให้สังเกตได้ง่ายขึ้นเป็นการถอดการป้องกันที่คุณพยายามวัด

สุดท้าย ให้คงการป้องกันระดับแอปพลิเคชันไว้ในภาพ ข้อยกเว้นการกำหนดเส้นทางอาจเปิดเผยทราฟฟิกที่อุโมงค์จะพาไปได้ และ TLS ของแอปพลิเคชันยังคงปกป้องทราฟฟิกนั้นตั้งแต่ต้นจนจบ ทั้งสองชั้นล้มเหลวอย่างเป็นอิสระต่อกัน ดังนั้นช่องควบคุมที่เชื่อมต่ออยู่จึงไม่ใช่หลักฐานว่าทุกโฟลว์ไปตามเส้นทางที่ตั้งใจ

บทความที่เกี่ยวข้อง