อุปกรณ์ที่รันการตั้งค่าบางอย่างของ Alpine Linux และอาจรวมถึงการแจกจ่ายอื่น ๆ นั้นได้รับผลกระทบจากช่องโหว่ที่มีมานานถึงทศวรรษ ซึ่งทำให้ผู้โจมตีสามารถเข้าสู่ระบบอุปกรณ์ได้โดยไม่ต้องใช้รหัสผ่าน
ช่องโหว่นี้อยู่ในปฏิสัมพันธ์ระหว่าง OpenSSH ซึ่งเป็นไลบรารีโค้ดที่ใช้ในการเชื่อมต่อ SSH และ musl ซึ่งเป็นไลบรารีทางเลือกสำหรับ libc ที่ Alpine ใช้ ซึ่งแตกต่างจากการตั้งค่าใน Linux ส่วนใหญ่ นอกจากนี้ OpenSSH ที่ใช้ musl จะต้องไม่ใช้ PAM (pluggable authentication modules) ซึ่งเป็นเฟรมเวิร์กจัดการการยืนยันตัวตนและการตรวจสอบบัญชีผู้ใช้
การโจมตีจะสำเร็จได้ต้องมีเงื่อนไขเพิ่มเติมอีกสองประการ คือ หนึ่ง ระบบต้องมีบัญชีผู้ใช้ที่เข้าถึงได้ด้วยรหัสผ่านที่ถูกแฮชด้วยฟังก์ชัน SHA256 หรือ SHA512 และ สอง บัญชีเป้าหมายต้องถูกตั้งค่าให้ไม่ต้องใช้รหัสผ่าน โดยระบุเครื่องหมาย “*” ในช่องรหัสผ่านในไฟล์ /etc/shadow ซึ่งเป็นไฟล์ของ Linux ที่เก็บค่าแฮชรหัสผ่าน
การเชื่อมต่อเดียว ใช้ได้เสมอ ไม่ต้องลองใหม่
เงื่อนไขที่สองคือระบบต้องมีบัญชีผู้ใช้ที่เข้าถึงได้ด้วยรหัสผ่านที่ถูกแฮชด้วย SHA256 หรือ SHA512 และบัญชีเป้าหมายต้องถูกตั้งค่าให้ไม่ต้องใช้รหัสผ่าน โดยระบุ “*” ในช่องรหัสผ่านในไฟล์ /etc/shadow ซึ่งเป็นไฟล์ของ Linux ที่เก็บค่าแฮชรหัสผ่าน
ศัพท์ที่ควรรู้
- Alpine Linux – การแจกจ่าย Linux น้ำหนักเบาที่ถูกกล่าวถึงในบทความ
- OpenSSH – ไลบรารีโค้ดที่ใช้ในการสร้างการเชื่อมต่อ SSH
- musl – ไลบรารีทางเลือกสำหรับ libc ที่ Alpine ใช้
- PAM (pluggable authentication modules) – เฟรมเวิร์กที่จัดการการยืนยันตัวตนและการตรวจสอบบัญชีผู้ใช้
- SHA256/SHA512 – ฟังก์ชันที่ใช้ในการแฮชรหัสผ่าน
ที่มา: Ars Technica