พบบั๊ก APT ระบบอัพเดตลินุกซ์ตระกูล Debian/Ubuntu แฮกเกอร์แอบส่งแพ็กเกจปลอมเข้ามารันในสิทธิ์ root ได้
Max Justicz นักวิจัยความปลอดภัยรายงานถึงบั๊กของโปรแกรม apt (apt-get) ที่อ่านข้อมูล HTTP response ไม่ตรงตามมาตรฐาน ทำให้แฮกเกอร์สามารถส่งข้อมูลหลอก จนกระทั่งยิงไฟล์แพ็กเกจปลอมเข้ามารันบนเครื่องได้ และเนื่องจาก apt มักรันบนสิทธิ์ root ทำให้แพ็กเกจที่ได้รับมารันบนสิทธิ์ root ไปด้วยส่งผลกระทบร้ายแรงถึงระดับยึดเครื่องได้
ปัญหาเกิดจากกระบวนการทำงานของ apt เมื่อผู้ใช้สั่งดาวน์โหลดโปรแกรม ตัวโปรแกรมจะ fork โปรเซสลูกเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ (fetcher) ซึ่งอาจจะเป็นโปรโตคอลต่างๆ กันไป ปัญหาคือ fetcher นี้มีบั๊กในการอ่าน HTTP Redirect ที่มันจะเชื่อข้อมูลฟิลด์ Location ใน HTTP Header เสมอ และส่งต่อไปยังโปรเซสแม่เพื่อแจ้งสถานะว่าเกิดการ Redirect โดยไม่ตรวจสอบ
แฮกเกอร์สามารถสร้างฟิลด์ Location แบบมุ่งร้าย ปลอมข้อมูลการดาวน์โหลดสำเร็จทั้งชุด ลงไป และเนื่องจากหน้าที่ของ fetcher จะเป็นผู้เช็คค่าแฮชของไฟล์ที่ดาวน์โหลดมาด้วย ข้อมูลในฟิลด์ Location นี้สามารถยิงค่าแฮชหลอกๆ เพื่อหลอกโปรเซสแม่ว่าไฟล์ที่ดาวน์โหลดมาถูกต้องสมบูรณ์
ช่องโหว่นี้มีหมายเลข CVE-2019-3462 กระทบ Debian และ Ubuntu ตั้งแต่ 14.04LTS ขึ้นมาทั้งหมด ทั้ง Debian และ Ubuntu ออกแพตช์แล้ว
หากยังไม่อัพเดตและกลัวถูกโจมตี สามารถตั้งค่าไม่รับ Redirect ด้วยการใช้คำสั่งแทนคำสั่งปกติดังนี้
apt -o Acquire::http::AllowRedirect=false update apt -o Acquire::http::AllowRedirect=false upgrade
วันที่ผ่านมาเพิ่งมี การถกเถียงระหว่าง VLC และ The Hacker News ว่าการใช้ HTTPS ส่งไฟล์อัพเดตจำเป็นหรือไม่ ในกรณีของบั๊กนี้หากเซิร์ฟเวอร์ใช้ HTTPS ก็จะลดปัญหาไปได้ เพราะคนร้ายไม่สามารถดักคั่นกลางการเชื่อมต่อได้ แต่หากเซิร์ฟเวอร์จริง (เช่น mirror ต่างๆ) ถูกยึดไปได้ ก็อาจจะถูกโจมตีได้อยู่ดี
ที่มา - Max Justicz , debian-security-announce , Ubuntu Security Notice
Comments
กกระทบ --> กระทบ
ไม่ได้ใช้ครอบครัว Debian นานละครอบครัวเขาอบอุ่นดีนะ.
ถึงแม้ว่าจะออกแพตช์มาแล้วก็ตาม แต่ก็ใช้เวลากว่า mirror จะ deploy ก็ใช้เวลาประมาณ 2 สัปดาห์ นี่คือตามจริงของ apt ครั้งที่แล้วตอน certbot ก็ทีนึงแล้ว รอบนี้ก็ยังต้องรอกันต่อไปกว่าแพตช์จะมา
เอ ปกติ security repo ไม่น่านานขนาดนั้นนะครับ
lewcpe.com , @wasonliw