Clear
Lead Graphic Papers

ระวังภัย ช่องโหว่ในคำสั่ง sudo ผู้ไม่หวังดีสามารถได้สิทธิของ root โดยไม่ต้องใส่รหัสผ่าน

วันที่ประกาศ: 6 มีนาคม 2556
ปรับปรุงล่าสุด: 6 มีนาคม 2556
เรื่อง: ระวังภัย ช่องโหว่ในคำสั่ง sudo ผู้ไม่หวังดีสามารถได้สิทธิของ root โดยไม่ต้องใส่รหัสผ่าน

ประเภทภัยคุกคาม: Intrusion

Share on Facebook Share on Twitter Share on Facebook

ข้อมูลทั่วไป

ในระบบปฏิบัติการตระกูล Unix หรือ Unix-like (เช่น Mac OS X หรือ Linux) จะมีคำสั่ง sudo ไว้สำหรับเรียกใช้งานคำสั่งหรือโปรแกรมใดๆ โดยใช้สิทธิของ root ซึ่งคำสั่งนี้มีไว้เพื่อความปลอดภัยเพราะผู้ใช้ไม่จำเป็นต้องล็อกอินเป็น root เพื่อใช้คำสั่งหรือใช้งานโปรแกรม แต่จะเรียกใช้งานคำสั่งหรือโปรแกรมที่ต้องการผ่านคำสั่ง sudo โดยใช้รหัสผ่านของตัวเองในการยืนยันตัวตน

หลังจากผู้ใช้ใส่รหัสผ่านเพื่อใช้งานคำสั่ง sudo แล้ว ระบบจะบันทึก timestamp ไว้ เพื่ออำนวยความสะดวกให้ผู้ใช้สามารถใช้คำสั่ง sudo ในการเรียกใช้งานคำสั่งหรือโปรแกรมใดๆ ได้โดยไม่ต้องใส่รหัสผ่านอีก ซึ่งช่วงเวลาดังกล่าวมีเวลาประมาณ 5 นาที

อย่างไรก็ตาม มีผู้ค้นพบช่องโหว่ของกลไกดังกล่าว โดยพบว่าหากใช้คำสั่ง sudo และระบบบันทึก timestamp ไว้แล้ว ในช่วงเวลาดังกล่าวหากมีการแก้ไขวันเวลาของระบบโดยใช้คำสั่ง sudo -k เพื่อรีเซ็ตวันเวลาให้กลับไปเป็นเวลา 1970-01-01 01:00:00 (วันเวลาเริ่มต้นของ Unix time) ผู้ใช้คนดังกล่าวก็จะสามารถใช้คำสั่ง sudo โดยไม่ต้องใส่รหัสผ่านได้ตลอดไป [1] ช่องโหว่ดังกล่าวนี้มีหมายเลข CVE-2013-1775 [2]

ผลกระทบ

ผู้ใช้ที่สามารถใช้คำสั่ง sudo ได้ จะสามารถทำงานภายใต้สิทธิของ root ผ่านคำสั่ง sudo ได้โดยไม่ต้องใส่รหัสผ่าน

ในกรณีที่เป็นระบบที่ใช้งานเพียงคนเดียว ช่องโหว่นี้อาจไม่มีผลกระทบมากนัก แต่หากมีการใช้คำสั่ง sudo แล้วมีผู้อื่นมาใช้งานต่อ อาจเกิดความเสียหายกับระบบได้ อย่างไรก็ตาม จากช่องโหว่นี้ ผู้ใช้ไม่สามารถเรียกใช้คำสั่งที่อยู่นอกเหนือจากสิทธิที่กำหนดไว้ในไฟล์ /etc/sudoers ได้

ระบบที่ได้รับผลกระทบ

ระบบปฏิบัติการ Unix และ Unix-like ที่ติดตั้งโปรแกรม sudo เวอร์ชั่น 1.6.0 ถึง 1.7.10p6 และ sudo 1.8.0 ถึง 1.8.6p6

ข้อแนะนำในการป้องกันและแก้ไข

ช่องโหว่นี้ถูกแก้ไขแล้วใน sudo เวอร์ชั่น 1.7.10p7 และ 1.8.6p7 ผู้ใช้งานระบบปฏิบัติการ Linux สามารถอัพเดตโปรแกรมเวอร์ชั่นใหม่ได้จากระบบ Package manager ของ Distro ที่ใช้

สำหรับผู้ใช้งานระบบปฏิบัติการ Mac OS X ปัจจุบัน Mac OS X 10.8.2 ใช้ sudo เวอร์ชั่น 1.7.4p6 ซึ่งมีช่องโหว่ และยังไม่มีวิธีแก้ไขจนกว่า Apple จะปล่อยซอฟต์แวร์อัพเดต [3]

ผู้ใช้งานสามารถตรวจสอบเวอร์ชั่นของ sudo ได้โดยพิมพ์คำสั่ง sudo -V ซึ่งจะได้ผลลัพธ์ดังตัวอย่างในรูปที่ 1


รูปที่ 1 ตัวอย่างการตรวจสอบเวอร์ชั่นของคำสั่ง sudo

อ้างอิง

  1. http://www.sudo.ws/sudo/alerts/epoch_ticket.html
  2. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1775
  3. http://www.h-online.com/security/news/item/Security-vulnerability-in-sudo-allows-privilege-escalation-1816387.html

Clear