ช่องโหว่ XZ Utils ยังคงอยู่ใน Docker Hub Images กว่าหนึ่งปีหลังจากถูกค้นพบ

ทีมชุมชน BigGo
ช่องโหว่ XZ Utils ยังคงอยู่ใน Docker Hub Images กว่าหนึ่งปีหลังจากถูกค้นพบ

กว่าหนึ่งปีหลังจากช่องโหว่ XZ Utils ที่โด่งดังได้สั่นคลอนโลกไซเบอร์ซีเคียวริตี้ นักวิจัยด้านความปลอดภัยได้ค้นพบว่า Docker images ที่ถูกบุกรุกยังคงมีให้ใช้งานแบบสาธารณะบน Docker Hub การค้นพบนี้เน้นย้ำถึงปัญหาที่ยังคงอยู่ในความปลอดภัยของ container ที่ขยายไปไกลกว่าเหตุการณ์เฉพาะนี้

ช่องโหว่ XZ Utils ที่ถูกแทรกโดยนักพัฒนา Jia Tan ในเดือนมีนาคม 2024 เป็นหนึ่งในการโจมตี supply chain ที่ซับซ้อนที่สุดที่เคยถูกค้นพบ โค้ดที่เป็นอันตรายนี้มุ่งเป้าไปที่ SSH servers โดยการเชื่อมต่อเข้ากับฟังก์ชันการเข้ารหัส ซึ่งอาจทำให้ผู้โจมตีสามารถเข้าถึงระบบที่ติดเชื้อได้โดยไม่ได้รับอนุญาต แม้ว่าช่องโหว่นี้จะถูกระบุและแก้ไขอย่างรวดเร็วใน Linux distributions หลัก แต่มรดกของมันยังคงหลอกหลอนระบบนิเวศ container อยู่

บทความนี้กล่าวถึง backdoor ของ XZ Utils และผลกระทบต่อความปลอดภัยของ container โดยเน้นย้ำถึงความเสี่ยงที่ยังคงมีอยู่ใน Docker images
บทความนี้กล่าวถึง backdoor ของ XZ Utils และผลกระทบต่อความปลอดภัยของ container โดยเน้นย้ำถึงความเสี่ยงที่ยังคงมีอยู่ใน Docker images

Docker Images กลายเป็นที่เก็บช่องโหว่ระยะยาว

การวิเคราะห์ล่าสุดของ Binarly Research Team บน Docker Hub เปิดเผยว่ามี images มากกว่า 35 รายการที่ยังคงมีช่องโหว่ XZ อยู่ โดยเน้นไปที่ containers ที่ใช้ Debian เป็นหลัก การตอบสนองของชุมชนต่อการค้นพบนี้มีความหลากหลาย โดยหลายคนตั้งคำถามว่าสิ่งนี้แสดงถึงภัยคุกคามด้านความปลอดภัยที่แท้จริงหรือเป็นเพียงพฤติกรรมที่คาดหวังของ immutable container images

ปัญหาหลักเกิดจากวิธีการทำงานของ Docker images ในฐานะ immutable snapshots เมื่อสร้างแล้ว images เหล่านี้จะรักษาสถานะที่แน่นอนของ software packages ณ เวลาที่สร้าง รวมถึงช่องโหว่ใดๆ ที่มีอยู่ ซึ่งหมายความว่า containers ที่ถูกสร้างขึ้นในช่วงเวลาสั้นๆ ที่มี XZ packages ที่มีช่องโหว่อยู่จะยังคงมีความเสี่ยงนั้นอย่างไม่มีกำหนด

อย่างไรก็ตาม ผลกระทบในทางปฏิบัติยังคงมีจำกัด ช่องโหว่นี้มุ่งเป้าไปที่ SSH servers โดยเฉพาะ ซึ่งไม่ค่อยถูกรันภายใน containers แอปพลิเคชันแบบ containerized ส่วนใหญ่ปฏิบัติตาม best practices ที่หลีกเลี่ยงการรัน SSH daemons ทำให้สถานการณ์การถูกใช้ประโยชน์เป็นเรื่องไม่ธรรมดาใน deployments ทั่วไป

ภาพรวมระบบที่ได้รับผลกระทบ

  • พบ Images: มากกว่า 35 Docker images ที่มี XZ backdoor
  • เป้าหมายหลัก: Container images ที่ใช้ Debian เป็นฐาน
  • ไทม์ไลน์การค้นพบ: มากกว่า 1 ปีหลังจากการตรวจพบ backdoor ครั้งแรก (มีนาคม 2024)
  • ข้อกำหนดในการโจมตี: SSH server ที่ทำงานใน container + การเข้าถึงเครือข่าย
  • สถานะปัจจุบัน: Images ยังคงเปิดให้ใช้งานสาธารณะบน Docker Hub

ชุมชนอภิปรายแนวทางปฏิบัติด้านความปลอดภัย Docker

การค้นพบนี้ได้จุดประกายการอภิปรายเกี่ยวกับแนวทางปฏิบัติด้านความปลอดภัย container ในชุมชนนักพัฒนาอีกครั้ง บางคนโต้แย้งให้ละทิ้ง Docker อย่างสมบูรณ์เพื่อใช้ virtual machines แบบดั้งเดิม โดยอ้างถึงความยากลำบากในการติดตามช่องโหว่ทั่วทั้งระบบนิเวศขนาดใหญ่ของ community-maintained images

คนอื่นๆ ชี้ให้เห็นว่าปัญหานี้ไม่ได้เป็นเอกลักษณ์เฉพาะของ containers VMs แบบดั้งเดิมและระบบ bare-metal เผชิญกับความท้าทายที่คล้ายกันเมื่อใช้ software packages ที่ล้าสมัย ความแตกต่างหลักคือธรรมชาติ immutable ของ Docker ทำให้ช่องโหว่เหล่านี้มองเห็นและติดตามได้มากกว่า แทนที่จะซ่อนอยู่ในระบบที่รันมานานซึ่งสะสม patches ตลอดเวลา

Container images เป็น immutable packaged filesystems อย่างแท้จริง ดังนั้นเวอร์ชันเก่าของ packages ที่ได้รับผลกระทบจึงอยู่ใน Docker images เก่าสำหรับทุก CVE ที่เคยถูกแก้ไขใน Debian

การอภิปรายขยายไปถึงแนวทางปฏิบัติการจัดการ repository ในขณะที่นักวิจัยด้านความปลอดภัยบางคนขอให้ลบ images ที่ได้รับผลกระทบ Docker Hub และ registries ที่คล้ายกันโดยทั่วไปหลีกเลี่ยงการลบ artifacts ที่มีช่องโหว่เพื่อรักษา reproducible builds และรักษาหลักฐานทางประวัติศาสตร์

รายละเอียดทางเทคนิคของ Backdoor XZ

  • วิธีการแทรก: ปรับเปลี่ยน IFUNC resolvers ใน library liblzma.so
  • ฟังก์ชันเป้าหมาย: RSA_public_decrypt, RSA_get_key, EVP_PKEY_get1_RSA
  • ระบบปฏิบัติการที่ได้รับผลกระทบ: Debian (testing), Fedora, OpenSUSE
  • ความสมบูรณ์ของ Backdoor: พบโค้ด backdoor 90% ในอิมเมจที่ตรวจสอบ
  • เครื่องมือตรวจจับ: เครื่องมือวิเคราะห์แบบสแตติก XZfind (ฟรี เผยแพร่โดย Binarly )

ความท้าทาย Supply Chain ที่กว้างขึ้น

เหตุการณ์นี้แสดงให้เห็นถึงความท้าทายพื้นฐานใน software supply chains สมัยใหม่ แม้แต่ช่องโหว่ที่มีอายุสั้นก็สามารถมีผลกระทบระยะยาวเมื่อถูกฝังตัวใน derived images และ automated build pipelines ช่องโหว่ XZ ไม่เคยเข้าสู่ Debian stable release แต่มันยังคงอยู่ใน testing images ที่นักพัฒนาใช้กันทั่วไปสำหรับการพัฒนาที่ใช้งานอยู่

สถานการณ์กลายเป็นเรื่องซับซ้อนมากขึ้นเมื่อพิจารณาถึงเศรษฐศาสตร์ของ cloud deployment การย้ายแอปพลิเคชันหลายร้อยรายการไปยัง VMs แต่ละตัวสามารถมีค่าใช้จ่ายหลายหมื่นดอลลาร์ต่อเดือน ทำให้ containers เป็นตัวเลือกที่น่าสนใจแม้จะมี trade-offs ด้านความปลอดภัย แรงกดดันทางเศรษฐกิจนี้มักทำให้ทีมยอมรับความเสี่ยงในระดับหนึ่งเพื่อแลกกับประสิทธิภาพในการดำเนินงาน

ผู้เชี่ยวชาญด้านความปลอดภัยแนะนำให้เน้นที่ image provenance และการอัปเดตเป็นประจำแทนที่จะหลีกเลี่ยง containers ทั้งหมด องค์กรควร audit base images ของตน ใช้การสแกนช่องโหว่แบบอัตโนมัติ และรักษานโยบายที่ชัดเจนเกี่ยวกับแหล่งที่มาของ image ที่ยอมรับได้สำหรับการใช้งานใน production

เรื่องราวช่องโหว่ XZ Utils ทำหน้าที่เป็นการเตือนใจว่าความปลอดภัย supply chain ต้องการการเฝ้าระวังอย่างต่อเนื่อง แม้ว่าภัยคุกคามโดยตรงจาก Docker images ที่ยังคงอยู่เหล่านี้อาจมีจำกัด แต่พวกมันแสดงถึงรูปแบบที่กว้างขึ้นของวิธีที่เหตุการณ์ด้านความปลอดภัยสามารถมีผลกระทบที่ยาวนานตลอดทั้งระบบนิเวศซอฟต์แวร์ สิ่งสำคัญคือการสร้างระบบที่สามารถระบุและตอบสนองต่อภัยคุกคามดังกล่าวได้อย่างรวดเร็ว แทนที่จะหวังว่าพวกมันจะไม่เกิดขึ้น

อ้างอิง: Persistent Risk: XZ Utils Backdoor Still Lurking in Docker Images