- พบอาการผิดปกติบางอย่างที่เกี่ยวข้องกับ liblzma (ส่วนหนึ่งของแพ็กเกจ xz) ในการติดตั้ง Debian sid เช่น การใช้ CPU เพิ่มขึ้นระหว่างล็อกอิน SSH และข้อผิดพลาดของ valgrind
- พบว่าสาเหตุของปัญหาคือรีโพซิทอรีต้นน้ำและ tarball ของ xz ติดแบ็กดอร์ โดยบางส่วนของแบ็กดอร์มีอยู่เฉพาะใน tarball ที่เผยแพร่เท่านั้น
- สคริปต์ที่รวมอยู่ใน tarball จะถูกรันที่ท้ายขั้นตอน configure และเมื่อเข้าเงื่อนไขบางอย่าง จะทำการแก้ไข
$builddir/src/liblzma/Makefile เพื่อแทรกโค้ดอันตราย
แบ็กดอร์ภายในรีโพซิทอรี
- ส่วนหลักของแบ็กดอร์อยู่ในรูปแบบเข้ารหัสภายในไดเรกทอรี
tests/files ของรีโพซิทอรี
- ไฟล์เหล่านี้ไม่ได้ถูกใช้ในการทดสอบของเวอร์ชัน 5.6.0 และในเวอร์ชัน 5.6.1 มีความพยายามแก้ไขข้อผิดพลาด valgrind และการแครชที่เกิดจากแบ็กดอร์
ระบบที่ได้รับผลกระทบ
- สคริปต์แบ็กดอร์จะถูกเรียกครั้งแรกหลัง configure และจะปรับเปลี่ยนกระบวนการบิลด์เฉพาะเมื่อเข้าเงื่อนไขบางอย่างเท่านั้น (เช่น ระบบ Linux x86-64, ใช้ gcc และ gnu linker, ระหว่างการบิลด์แพ็กเกจ Debian หรือ RPM)
ผลกระทบต่อเซิร์ฟเวอร์ openssh
- เมื่อใช้ liblzma ที่ติดตั้งแบ็กดอร์ การล็อกอินผ่าน SSH จะช้าลง
- openssh ไม่ได้ใช้ liblzma โดยตรง แต่บางดิสทริบิวชันรวมถึง Debian ได้แพตช์ openssh เพื่อรองรับการแจ้งเตือนของ systemd และ libsystemd พึ่งพา lzma
การวิเคราะห์โค้ดที่ถูกฉีดเข้าไป
- วิเคราะห์จากมุมมองของผู้สังเกตการณ์ที่ไม่ใช่นักวิจัยด้านความปลอดภัยหรือผู้เชี่ยวชาญด้าน reverse engineering
- แบ็กดอร์ดักการทำงานผ่าน ifunc resolver และระหว่างการเริ่มต้นของ sshd จะทำการ resolve สัญลักษณ์แล้วเปลี่ยนสัญลักษณ์
RSA_public_decrypt ให้ชี้ไปยังโค้ดของตัวเอง
ผลกระทบต่อ sshd
RSA_public_decrypt@....plt ถูกเปลี่ยนให้ชี้ไปยังโค้ดแบ็กดอร์ ทำให้โค้ดแบ็กดอร์ถูกเรียกระหว่างการล็อกอินด้วยกุญแจสาธารณะ
- คาดว่าสิ่งนี้อาจใช้เพื่อข้ามการยืนยันตัวตนหรือทำให้เกิดการรันโค้ดจากระยะไกลได้
การรายงานบั๊ก
- ไม่ได้รายงานบั๊กเนื่องจากสงสัยว่ามีการเกี่ยวข้องจากรีโพซิทอรีต้นน้ำ
- Red Hat ได้กำหนด CVE-2024-3094 ให้กับปัญหานี้
การตรวจจับการติดตั้งที่มีช่องโหว่
- มีการจัดเตรียมสคริปต์สำหรับตรวจสอบว่าไบนารี ssh ของระบบมีความเสี่ยงหรือไม่
8 ความคิดเห็น
ทุกสิ่งที่ผมรู้เกี่ยวกับ xz backdoor
เป็นบทความที่ Andres Freund ผู้ค้นพบ backdoor นี้เป็นผู้เขียน
น่าทึ่งที่มันถูกดำเนินการอย่างเป็นระบบมาก;; กระบวนการเหมือนละครเลยครับ
สมควรถูกลงโทษอย่างสาสม
ทำไมล่ะ?
เพราะมันเป็นการฝังแบ็กดอร์ลงในโอเพนซอร์สโดยเจตนา... ระหว่างนั้นยังมีพฤติกรรมอย่างการแอบปั่นกระแสความคิดเห็นด้วย
ก่อนหน้านี้ก็เคยมีกรณีจงใจใส่ช่องโหว่เข้าไปในลินุกซ์เคอร์เนลมาแล้ว รู้สึกขมขื่นเหมือนกัน
อ๋อ ตอนนี้เหมือนผมจะเข้าใจนัยนั้นแล้ว ขอบคุณครับ
ความคิดเห็นจาก Hacker News
ลิงก์ที่เกี่ยวข้อง:
สรุป:
SECURITY.mdเข้าไปในโปรเจกต์xz-javaซึ่งมีแนวทางว่าหากพบช่องโหว่ด้านความปลอดภัย ไม่ควรเปิดเผยต่อสาธารณะ แต่ให้รายงานแบบส่วนตัวแทน หากมองอีกมุมหนึ่ง ก็อาจตีความได้ว่าเป็นความพยายามซื้อเวลาเพื่อปรับแต่ง exploit ของตนเองและใช้ประโยชน์จากเป้าหมาย.tar.xzซึ่งถูกใช้เป็นพื้นฐานในบาง build process โดยมุ่งเป้าไปที่ tarball ที่แจกจ่ายไบนารีที่คอมไพล์ไว้ล่วงหน้า ไม่ใช่ source code tarball