19% ของอิมเมจ Docker อันดับต้น ๆ ไม่มีรหัสผ่านรูท

เมื่อวันเสาร์ที่ 18 พฤษภาคมที่ผ่านมา Jerry Gamblin จาก Kenna Security ตรวจสอบแล้ว รูปภาพยอดนิยม 1000 ภาพจาก Docker Hub ตามรหัสผ่านรูทที่พวกเขาใช้ ใน 19% ของกรณีว่างเปล่า

19% ของอิมเมจ Docker อันดับต้น ๆ ไม่มีรหัสผ่านรูท

พื้นหลังกับอัลไพน์

เหตุผลของการวิจัยขนาดเล็กคือรายงานช่องโหว่ Talos ที่เผยแพร่เมื่อต้นเดือนนี้ (ทาลอส-2019-0782) ผู้เขียนซึ่งต้องขอบคุณการค้นพบ Peter Adkins จาก Cisco Umbrella รายงานว่าอิมเมจ Docker ที่มีการกระจายคอนเทนเนอร์ Alpine ยอดนิยมไม่มีรหัสผ่านรูท:

“อิมเมจ Alpine Linux Docker เวอร์ชันอย่างเป็นทางการ (ตั้งแต่ v3.3) มีรหัสผ่าน NULL สำหรับผู้ใช้รูท ช่องโหว่นี้เป็นผลมาจากการถดถอยที่นำมาใช้ในเดือนธันวาคม 2015 สิ่งสำคัญคือระบบที่ใช้งานกับ Alpine Linux เวอร์ชันที่มีปัญหาในคอนเทนเนอร์และใช้ Linux PAM หรือกลไกอื่นที่ใช้ไฟล์เงาของระบบเป็นฐานข้อมูลการตรวจสอบสิทธิ์อาจยอมรับรหัสผ่าน NULL สำหรับผู้ใช้รูท”

อิมเมจ Docker เวอร์ชันที่ Alpine ทดสอบสำหรับปัญหานี้นั้นรวม 3.3–3.9 รวมถึง Edge รุ่นล่าสุด

ผู้เขียนได้ให้คำแนะนำต่อไปนี้สำหรับผู้ใช้ที่ได้รับผลกระทบ:

“บัญชีรูทจะต้องปิดการใช้งานอย่างชัดเจนในอิมเมจ Docker ที่สร้างจาก Alpine เวอร์ชันที่มีปัญหา การใช้ประโยชน์จากช่องโหว่ที่อาจเกิดขึ้นนั้นขึ้นอยู่กับสภาพแวดล้อม เนื่องจากความสำเร็จนั้นต้องการบริการหรือแอปพลิเคชันที่ส่งต่อภายนอกโดยใช้ Linux PAM หรือกลไกอื่นที่คล้ายคลึงกัน"

ปัญหาก็คือ ถูกกำจัด ใน Alpine เวอร์ชัน 3.6.5, 3.7.3, 3.8.4, 3.9.2 และ edge (สแนปช็อต 20190228) และเจ้าของภาพที่ได้รับผลกระทบถูกขอให้แสดงความคิดเห็นในบรรทัดที่มี root ใน /etc/shadow หรือตรวจสอบให้แน่ใจว่าแพ็คเกจหายไป linux-pam.

ต่อด้วย Docker Hub

Jerry Gamblin ตัดสินใจที่จะสงสัยว่า “การใช้รหัสผ่าน null ในคอนเทนเนอร์นั้นเป็นเรื่องธรรมดาแค่ไหน” เพื่อจุดประสงค์นี้เขาเขียนเรื่องเล็ก ๆ สคริปต์ทุบตีสาระสำคัญที่ง่ายมาก:

  • ผ่านการร้องขอ curl ไปยัง API ใน Docker Hub รายการอิมเมจ Docker ที่โฮสต์อยู่นั้นจะถูกร้องขอ
  • ผ่าน jq มันถูกจัดเรียงตามฟิลด์ popularityและจากผลที่ได้จึงเหลือพันแรก
  • ก็สำเร็จแล้วสำหรับแต่ละคน docker pull;
  • สำหรับแต่ละภาพที่ได้รับจาก Docker Hub จะถูกดำเนินการ docker run ด้วยการอ่านบรรทัดแรกจากไฟล์ /etc/shadow;
  • ถ้าค่าของสตริงเท่ากับ root:::0:::::ชื่อของภาพจะถูกบันทึกเป็นไฟล์แยกต่างหาก

เกิดอะไรขึ้น ใน ไฟล์นี้ มี 194 บรรทัดที่มีชื่อของอิมเมจ Docker ยอดนิยมพร้อมระบบ Linux ซึ่งผู้ใช้รูทไม่ได้ตั้งรหัสผ่าน:

“ในบรรดาชื่อที่รู้จักกันดีที่สุดในรายชื่อนี้คือ govuk/governmentpaas, hashicorp, microsoft, monsanto และ mesosphere และ kylemanna/openvpn เป็นคอนเทนเนอร์ที่ได้รับความนิยมมากที่สุดในรายการ โดยมีสถิติการดึงมากกว่า 10 ล้านครั้ง”

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

PS

อ่านเพิ่มเติมในบล็อกของเรา:

ที่มา: will.com

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