FreeBSD 13 เกือบจะจบลงด้วยการใช้ WireGuard แบบแฮ็กโดยมีการละเมิดใบอนุญาตและช่องโหว่

จากฐานโค้ดที่ FreeBSD 13 ถูกสร้างขึ้น โค้ดที่ใช้โปรโตคอล WireGuard VPN ซึ่งพัฒนาโดยคำสั่งของ Netgate โดยไม่ต้องปรึกษากับนักพัฒนาของ WireGuard ดั้งเดิม และรวมอยู่ในการเผยแพร่ pfSense ที่เสถียรแล้วนั้นเป็นเรื่องอื้อฉาว ลบออก. หลังจากการตรวจสอบโค้ดโดย Jason A. Donenfeld ผู้เขียน WireGuard ดั้งเดิม ปรากฎว่าการใช้งาน WireGuard ที่เสนอโดย FreeBSD นั้นเป็นเพียงโค้ดคุณภาพต่ำ เต็มไปด้วยบัฟเฟอร์ล้นและละเมิด GPL

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

โค้ดบางส่วน เช่น ฟังก์ชัน crypto_xor ได้รับการย้ายจากการใช้งาน WireGuard ที่พัฒนาขึ้นสำหรับ Linux โดยละเมิดใบอนุญาต GPL เป็นผลให้ Jason Donenfield พร้อมด้วย Kyle Evans และ Matt Dunwoodie (ผู้เขียนพอร์ต WireGuard สำหรับ OpenBSD) รับหน้าที่แก้ไขการใช้งานที่มีปัญหาและภายในหนึ่งสัปดาห์ก็แทนที่รหัสทั้งหมดของนักพัฒนาที่ได้รับการว่าจ้างจาก Netgate โดยสมบูรณ์ภายในหนึ่งสัปดาห์ . เวอร์ชันแก้ไขได้รับการเผยแพร่เป็นชุดแพตช์แยกต่างหาก ซึ่งวางไว้ในพื้นที่เก็บข้อมูลโครงการ WireGuard และยังไม่ได้รวมอยู่ใน FreeBSD

สิ่งที่น่าสนใจคือในตอนแรกไม่มีสัญญาณของปัญหา Netgate ซึ่งต้องการใช้ WireGuard ในการแจกจ่าย pfSense ได้ว่าจ้าง Matthew Macy ซึ่งเชี่ยวชาญเรื่องเคอร์เนล FreeBSD และสแต็กเครือข่ายเป็นอย่างดี มีส่วนร่วมในการแก้ไขข้อบกพร่องและมีประสบการณ์ในการพัฒนา ไดรเวอร์เครือข่ายสำหรับระบบปฏิบัติการนี้ Macy ได้รับตารางเวลาที่ยืดหยุ่นโดยไม่มีกำหนดเวลาหรือการตรวจสอบกลางภาค นักพัฒนาที่ได้พบกับ Macy ในขณะที่ทำงานกับ FreeBSD เล่าว่าเขาเป็นโปรแกรมเมอร์ที่มีความสามารถและเป็นมืออาชีพซึ่งไม่เคยทำผิดพลาดมากกว่าคนอื่นๆ และตอบสนองต่อคำวิพากษ์วิจารณ์อย่างเพียงพอ คุณภาพที่ไม่ดีของโค้ดการใช้งาน WireGuard สำหรับ FreeBSD ทำให้พวกเขาประหลาดใจ

หลังจากทำงานมา 9 เดือน Macy ได้เพิ่มการใช้งานของเขาในสาขา HEAD ซึ่งใช้ในการกำหนดการเปิดตัว FreeBSD 13 เมื่อเดือนธันวาคมปีที่แล้วโดยที่ไม่ต้องผ่านการตรวจสอบและทดสอบโดยผู้ทรงคุณวุฒิ การพัฒนาเสร็จสิ้นโดยไม่ได้สื่อสารกับผู้พัฒนา WireGuard ดั้งเดิมและ พอร์ต OpenBSD และ NetBSD ในเดือนกุมภาพันธ์ Netgate ได้รวม WireGuard เข้ากับ pfSense 2.5.0 รุ่นเสถียร และเริ่มจัดส่งไฟร์วอลล์ตามนั้น หลังจากระบุปัญหาแล้ว รหัส WireGuard จะถูกลบออกจาก pfSense

โค้ดที่เพิ่มเข้ามาเผยให้เห็นช่องโหว่ร้ายแรงที่ใช้ในการหาประโยชน์ใน 0 วัน แต่ Netgate ในตอนแรกไม่รับทราบถึงการมีอยู่ของช่องโหว่ และพยายามกล่าวหาผู้พัฒนา WireGuard ดั้งเดิมถึงการโจมตีและความลำเอียง ซึ่งส่งผลเสียต่อชื่อเสียงของมัน ในตอนแรกผู้พัฒนาพอร์ตปฏิเสธคำกล่าวอ้างเกี่ยวกับคุณภาพของโค้ดและถือว่าเกินจริง แต่หลังจากแสดงข้อผิดพลาด เขาก็ดึงความสนใจไปที่ความจริงที่ว่าปัญหาที่สำคัญจริงๆ คือการขาดการตรวจสอบคุณภาพโค้ดใน FreeBSD อย่างเหมาะสม เนื่องจากปัญหายังคงไม่ถูกตรวจพบเป็นเวลาหลายเดือน (ตัวแทนของ Netgate ระบุว่าการตรวจสอบดังกล่าวเปิดตัวต่อสาธารณะในเดือนสิงหาคม 2020 แต่นักพัฒนา FreeBSD แต่ละรายตั้งข้อสังเกตว่าใน Phabricator การตรวจสอบถูกปิดโดย Macy โดยไม่เสร็จสิ้นและโดยไม่สนใจความคิดเห็น) ทีมงานหลักของ FreeBSD ตอบสนองต่อเหตุการณ์ดังกล่าวโดยสัญญาว่าจะปรับปรุงกระบวนการตรวจสอบโค้ดให้ทันสมัย

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

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

ที่มา: opennet.ru

เพิ่มความคิดเห็น