ไม่กี่วันที่ผ่านมา มีเหตุการณ์ผิดปกติเกิดขึ้นซึ่งทำให้ชุมชนเคอร์เนล Linux สั่นสะเทือน และนั่นก็คือ Linus Torvalds สั่งระงับบัญชีของ Kees Cook บน kernel.org ทันทีหลังจากตรวจพบการมีอยู่ของการกระทำที่ถูกจัดการในที่เก็บ Git ของนักพัฒนารายนี้
คีส คุก ได้รับการยอมรับถึงความเป็นผู้นำ ในทีมความปลอดภัยของ Ubuntu และสำหรับการบำรุงรักษาระบบย่อยที่เกี่ยวข้องกับความปลอดภัยมากกว่าสิบระบบของเคอร์เนล ถูกห้ามส่งการเปลี่ยนแปลงชั่วคราว ในระหว่างการชี้แจงข้อเท็จจริง
การเปลี่ยนแปลงผู้ประพันธ์และลายเซ็นในคลังข้อมูล Kees Cook
ปัญหาเกิดขึ้นจากการร้องขอการเปลี่ยนแปลงการรวมs ไปที่สาขาเคอร์เนล 6.16 ซึ่ง Linus ระบุการอ้างอิงถึงที่เก็บข้อมูล ที่มีอยู่ การกระทำที่ถูกควบคุมด้วย ชื่อของเขาในฐานะผู้เขียนและผู้ยืนยัน แม้ว่าเขาจะไม่ได้ทำสิ่งเหล่านี้ด้วยตัวเขาเองก็ตาม ตัวอย่างที่ร้ายแรงที่สุดประการหนึ่งคือการมีการยืนยันซ้ำ ซึ่งมีเนื้อหาเหมือนกับต้นฉบับทุกประการ แต่มีแฮช SHA1 ที่แตกต่างกัน ซึ่งมีลายเซ็นของ Linus Torvalds ที่ไม่ถูกต้อง
การเปลี่ยนแปลงเหล่านี้ ไม่สามารถนำมาประกอบกับข้อผิดพลาดโดยบังเอิญได้l ในระหว่างการดำเนินการ git rebase เนื่องจากต้องมีการปรับเปลี่ยนครั้งใหญ่ ของข้อมูลที่ละเอียดอ่อน รวมถึงการเขียนใหม่มากกว่า 6.000 รายการ ซึ่ง 330 รายการมีชื่อของ Linus เป็นผู้เขียน
ปฏิกิริยาของทอร์วัลด์: ความสงสัยถึงการจัดการที่จงใจ
ลินุส ทอร์วัลด์สไม่ได้ปิดบังความกังวลของเขา และอธิบายเหตุการณ์ดังกล่าวว่าอาจเป็นอันตรายได้:
“การเขียนใหม่หนึ่งหรือสองครั้งอาจผิดพลาดได้ แต่การเขียนใหม่หลายพันครั้ง ซึ่งหลายครั้งมีลายเซ็นปลอมของฉันด้วยนั้นไม่ใช่ความผิดพลาด” เขากล่าว
เมื่อพิจารณาถึงขนาดของการเปลี่ยนแปลงและความเสี่ยงต่อความสมบูรณ์ของเคอร์เนลทรีอย่างเป็นทางการ Torvalds ถาม Konstantin Ryabitsev ผู้ดูแลระบบโครงสร้างพื้นฐาน kernel.org qเพื่อปิดกั้นการเข้าถึงของ Kees Cook จนกว่าสถานการณ์จะชัดเจน
ในการตอบสนอง Kees Cook อธิบายว่าเขาประสบปัญหาทางเทคนิคเมื่อเร็ว ๆ นี้ ซึ่งอาจทำให้เกิดเหตุการณ์ดังกล่าวได้ เขากล่าวว่า ไดรฟ์ SSD ของคุณกำลังประสบกับข้อผิดพลาดระหว่างการดำเนินการคัดลอก ซึ่งทำให้เกิดความเสียหาย ในคลังข้อมูลหลายแห่ง หลังจากเกิดข้อผิดพลาดเหล่านี้ เขาพยายามกู้คืนสถานะของคลังข้อมูลของเขาโดยใช้ git rebase และเครื่องมืออัตโนมัติต่างๆ
อย่างไรก็ตามการดำเนินการเหล่านี้ดำเนินการบนสาขาที่สำคัญเช่น for-next/hardening และ for-linus/hardening ซึ่งนำไปสู่การแก้ไขประวัติที่เก็บข้อมูลโดยไม่ได้ตั้งใจ รวมทั้งการเปลี่ยนแปลงในตำแหน่งผู้ประพันธ์ของการคอมมิต แม้ว่าไลนัสจะอธิบายอย่างไร เขาก็ยังคงสงสัยอยู่:
"ผมไม่เข้าใจว่าการแซงโดยไม่ได้ตั้งใจสามารถเกิดขึ้นได้อย่างไร ยิ่งไม่ต้องพูดถึงการเปลี่ยนแปลงมากมายขนาดนี้"
ผู้ร้ายตัวจริง: git-filter-repo และ b4 trailers
ในข้อความต่อมา Kees Cook ระบุแหล่งที่มาที่เป็นไปได้ของข้อผิดพลาด:การใช้เครื่องมือสองอย่างร่วมกัน git-filter-repo และตัวอย่าง b4 ซึ่งจัดการประวัติการคอมมิต และตัวอย่าง (แท็กเช่น Signed-off-by:) ในการคอมมิต
การใช้ที่ไม่ถูกต้องนี้ ของผลกำไร จะทำให้มีการเขียนใหม่โดยอัตโนมัติของคอมมิทจำนวนนับพันรายการรวมถึงการแทนที่ผู้เขียนด้วยค่าเริ่มต้น (ในกรณีนี้คือ Linus Torvalds) โดยที่ Kees ไม่ได้สังเกตเห็นข้อผิดพลาดในขณะนั้นKonstantin Ryabitsev ผู้เขียนเครื่องมือ b4 ยืนยันทฤษฎีนี้และยืนยันว่า Cook ไม่มีเจตนาที่เป็นอันตรายแต่อย่างใด ในความเป็นจริง ระบบได้สร้างคำเตือนที่ถูกละเลยอยู่แล้ว
หลังจากสถานการณ์ได้รับการชี้แจงแล้ว Kees Cook ก็สามารถเข้าถึง kernel.org ได้อีกครั้ง เพื่อเป็นการป้องกัน ได้มีการประกาศว่าเครื่องมือ b4 จะรวมการตรวจสอบความปลอดภัยใหม่ การดำเนินการนี้จะป้องกันการแก้ไขคอมมิตที่มีผู้แต่งไม่ตรงกับข้อมูลประจำตัวของผู้ใช้ปัจจุบันตั้งแต่บัดนี้เป็นต้นไป การดำเนินการนี้มีวัตถุประสงค์เพื่อป้องกันข้อผิดพลาดที่คล้ายกันและปกป้องความสมบูรณ์ของโค้ดต้นฉบับของเคอร์เนล
ส่วน Kees เองก็รับปากว่าจะสร้างสาขาที่ได้รับผลกระทบขึ้นมาใหม่ จากแพทช์แต่ละตัวและวิเคราะห์อย่างละเอียดถึงขั้นตอนที่นำไปสู่ข้อผิดพลาด แม้ว่า เหตุการณ์ดังกล่าวทำให้ความสัมพันธ์ภายในทีมตึงเครียด การพัฒนาเคอร์เนลยังได้เน้นย้ำถึงความสำคัญของการใช้เครื่องมือเขียนประวัติศาสตร์ใหม่ด้วยความระมัดระวัง โดยเฉพาะอย่างยิ่งในโปรเจ็กต์ที่สำคัญเช่นเคอร์เนล Linux
สุดท้ายนี้ ควรกล่าวถึงว่าเหตุการณ์ระหว่าง Linus Torvalds และ Kees Cook ถือเป็นการเตือนถึงอันตรายของการบิดเบือนประวัติการกระทำผิดและ ด้วยการแทรกแซงอย่างรวดเร็ว จากผู้รับผิดชอบ kernel.org และความโปร่งใสของกระบวนการ สถานการณ์ได้ถูกควบคุมได้แล้ว.
สุดท้ายนี้หากท่านสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ ท่านสามารถตรวจสอบรายละเอียดได้ดังต่อไปนี้ ลิงค์