VPN ที่ไม่น่าไว้วางใจคือสามพรมแดนแยกกัน ไม่ใช่หนึ่ง
เพื่อนระยะไกล ผู้ให้บริการในเส้นทาง และไคลเอนต์บนโฮสต์ของคุณเป็นภัยคุกคามสามอย่างที่ต่างกัน กฎไฟร์วอลล์ตอบได้เพียงข้อแรกเท่านั้น
«ฉันไม่ไว้วางใจ VPN นี้» มักเป็นสามข้อความที่สวมประโยคเดียว เพื่อนระยะไกลในเครือข่ายนั้นอาจเข้าถึงบริการบนโฮสต์ของคุณ ผู้ให้บริการที่เดินอุโมงค์อาจสังเกตเห็นการรับส่งที่ผ่านเข้ามา และซอฟต์แวร์ไคลเอนต์ที่คุณติดตั้งอาจเปลี่ยนนโยบายเครือข่ายของเครื่องคุณ ความเชื่อที่ควรแก้คือกฎไฟร์วอลล์ เครื่องเสมือน หรือการเลือกระบบปฏิบัติการอย่างระมัดระวังตอบได้ทั้งสามข้อ มาตรการแต่ละอย่างตอบได้เพียงข้อเดียวเท่านั้น
ตำนาน: การควบคุมเดียวครอบคลุมความเสี่ยงทั้งหมด
สมมติฐานทั่วไปคือการเข้าร่วมเครือข่ายที่ไม่น่าไว้วางใจเป็นการตัดสินใจเดียวพร้อมการบรรเทาเดียว ผู้คนเลือกการควบคุมที่ตนไว้วางใจอยู่แล้ว นำไปใช้ และถือว่าความเสี่ยงจบแล้ว: ไฟร์วอลล์เปิดอยู่ พื้นที่ทำงานใช้แล้วทิ้งได้ ไคลเอนต์มาจากผู้ขายที่มีชื่อเสียง
การควบคุมเหล่านั้นไม่ได้ซ้อนทับกันอย่างที่สมมติฐานบอก ไฟร์วอลล์บนโฮสต์จำกัดสิ่งที่เพื่อนระยะไกลเข้าถึงได้ และไม่ทำอะไรกับผู้ให้บริการที่สิ้นสุด TLS ของคุณ เครื่องเสมือนแยกพื้นที่ทำงานออกจากไฟล์บนโฮสต์ และไม่ทำอะไรกับองค์ประกอบไคลเอนต์ที่ได้รับอนุญาตให้กำหนดค่าสแต็กเครือข่ายใหม่ภายใต้ทั้งสอง การตั้งชื่อพรมแดนที่แต่ละการควบคุมสร้างขึ้นจริงคือแบบฝึกหัดทั้งหมด
การแยกออกจากกันยังบอกคุณว่าคุณเลือกยอมรับความเสี่ยงใด การตัดสินใจจริงส่วนใหญ่บรรเทาพรมแดนหนึ่งและทนอีกอันหนึ่ง ซึ่งก็ใช้ได้ตราบเท่าที่บันทึกการเปลี่ยนแปลงระบุว่าอันไหนเป็นอันไหน
เพื่อนระยะไกลเข้าถึงอะไรได้จริง
เริ่มจากบริการที่กำลังรับฟัง อินเทอร์เฟซอุโมงค์ที่ถูกถือว่าไว้วางใจโดยกว้างเพราะแพ็กเก็ตมาถึงแบบเข้ารหัสคือข้อผิดพลาดปกติ และมันทำให้ผู้รับฟังในเครื่องทุกคนกลายเป็นเป้าหมายที่เป็นไปได้สำหรับใครก็ตามในเครือข่ายนั้น การเข้ารหัสปกป้องสายระหว่างปลายทั้งสอง มันไม่ได้บอกอะไรเกี่ยวกับเจตนาของเพื่อนที่อยู่อีกด้าน
ss -tulpn sudo nft list ruleset ip -br addr
ผูกบริการกับที่อยู่ที่ต้องการแทนที่จะผูกกับทุกอินเทอร์เฟซ และอนุญาตเฉพาะการดำเนินการที่งานซึ่งอนุมัติแล้วต้องการ ทำให้การส่งต่อ การบริดจ์ และพร็อกซีแอปพลิเคชันชัดเจน เพราะการเชื่อมต่อเครือข่ายสองจุดไม่ได้สร้างเส้นทางผ่านด้วยตัวเอง แต่กฎพร็อกซีย่อมทำได้
พื้นที่ทำงานใช้แล้วทิ้งที่อนุมัติแล้วลดสิ่งที่เครือข่ายระยะไกลเข้าถึงได้ แต่เฉพาะเมื่อการกำหนดค่าการแชร์ตรงกับข้ออ้าง โฟลเดอร์ที่แชร์ การผสานคลิปบอร์ด เอเจนต์รับรองความถูกต้อง และช่องทางบริหารจัดการ ล้วนข้ามพรมแดนที่พื้นที่ทำงานควรสร้างขึ้น ฉลากของพื้นที่ทำงานไม่ได้พิสูจน์อะไรเกี่ยวกับว่าอันไหนเปิดอยู่
สถาปัตยกรรมความไว้วางใจศูนย์ของ NIST กล่าวหลักการเบื้องหลังทั้งหมดนี้: ตำแหน่งในเครือข่ายเพียงอย่างเดียวไม่ได้ให้ความไว้วางใจโดยนัย การพิสูจน์ตัวตนของทรัพยากรยังมีงานต้องทำหลังจากอุโมงค์ได้รับอนุญาต และคำถามว่าใครอื่นแชร์เครือข่ายนั้นก็เช่นกัน
ผู้ให้บริการในเส้นทางเห็นอะไรได้
VPN ย้ายการรับส่งของคุณไปยังอีกที่หนึ่งในเส้นทาง มันไม่ได้เพิ่มการเข้ารหัสระดับแอปพลิเคชัน หากผู้ให้บริการสิ้นสุด TLS ของคุณ ผู้ให้บริการสามารถอ่านสิ่งที่เบราว์เซอร์ของคุณจะปกป้องไว้ได้ และไม่มีกฎไฟร์วอลล์ในเครื่องใดเปลี่ยนสิ่งนั้น
รักษาการตรวจสอบใบรับรองตามปกติสำหรับปลายทางจริง และเข้าใจเส้นทางของตัวแปลงชื่อกับเมทาดาทา เพราะการสอบถาม DNS อาจเปิดเผยได้มากกว่าข้อมูลที่มาก่อนหน้า เมทาดาทาเพียงอย่างเดียว คือคุณติดต่อที่อยู่ใดและเมื่อใด มักตอบคำถามของผู้ให้บริการได้โดยไม่ต้องอ่านเนื้อหาเลย นั่นคือเหตุผลที่ «การรับส่งถูกเข้ารหัส» กับ «การรับส่งเป็นส่วนตัว» เป็นข้ออ้างที่ต่างกัน
หากการมองเห็นนั้นไม่เป็นที่ยอมรับสำหรับงาน คำตอบคือสถาปัตยกรรมที่อนุมัติอีกแบบ ไม่ใช่การกรองในเครื่องที่มากขึ้น การกรองในเครื่องไม่สามารถนำผู้สังเกตออกจากเส้นทางที่มันยังคงอยู่ได้
ไคลเอนต์ในเครื่องได้รับอนุญาตให้เปลี่ยนอะไร
นี่คือพรมแดนที่ผู้คนมองข้าม และมันคือสิ่งที่ทำให้อีกสองข้อไม่มีความหมาย บนลินุกซ์ CAP_NET_ADMIN ครอบคลุมการกำหนดค่าอินเทอร์เฟซ การบริหารไฟร์วอลล์ และการเปลี่ยนเส้นทางภายในบริบทเครือข่ายของมัน ซอฟต์แวร์ที่มีความสามารถนั้นสามารถเขียนนโยบายที่คุณเพิ่งเขียนใหม่ได้
getcap /usr/sbin/openvpn systemd-analyze security vpn-client.service ip netns list
เนมสเปซเครือข่ายเป็นพรมแดนจริงสำหรับสถานะเครือข่ายและเป็นพรมแดนที่อ่อนสำหรับอย่างอื่น: มันไม่ได้แยกไฟล์ระบบหรือที่เก็บข้อมูลรับรอง ให้ถือเป็นชั้นเดียว ไม่ใช่ภาชนะของปัญหาทั้งหมด
รับไคลเอนต์และการกำหนดค่าจากแหล่งที่มีการดูแล ตรวจสอบสิทธิ์ที่มันร้องขอ และเก็บองค์ประกอบที่ได้สิทธิพิเศษไว้ภายใต้การควบคุมของผู้ดูแลระบบ เครื่องเสมือนสามารถเป็นส่วนหนึ่งของพรมแดนการประเมินที่ผ่านเกณฑ์ได้โดยไม่กลายเป็นสิทธิ์ในการรันตัวติดตั้งที่ไม่ชัดเจนข้างข้อมูลรับรองที่มีค่า ตัวติดตั้งทำงานด้วยสิทธิ์ใดก็ตามที่คุณให้ และสิทธิ์นั้นคือพรมแดน
เขียนว่าคุณยอมรับพรมแดนใด
ปิดท้ายด้วยประโยคที่ระบุสี่สิ่ง: โค้ดในเครื่องที่ไว้วางใจ การเข้าถึงระยะไกลที่อนุญาต ข้อมูลแอปพลิเคชันที่ปกป้อง และความสัมพันธ์กับผู้ให้บริการที่ยังเหลืออยู่ ประโยคนั้นมีค่ามากกว่าข้ออ้างกว้าง ๆ ว่า VM ระบบปฏิบัติการ หรือผลิตภัณฑ์แอนติไวรัสทำให้เครือข่ายที่เป็นปฏิปักษ์ปลอดภัย
จากนั้นยืนยันว่าการดำเนินการแคบ ๆ ทำงานได้และการปฏิเสธที่กำหนดยังคงอยู่ รวมถึงหลังจากอุโมงค์ล่ม พรมแดนที่มีอยู่เพียงขณะอุโมงค์เปิดขึ้นไม่ใช่พรมแดนที่คุณบันทึกไว้
ไม่มีการทดสอบใดพิสูจน์ว่าทุกช่องโหว่หายไป และการทบทวนที่อ้างเช่นนั้นเกินจริง ผลลัพธ์ที่ซื่อสัตย์ระบุความเสี่ยงที่เหลือและผู้ที่ยอมรับมัน