ค้นพบช่องโหว่ใหม่ในเคอร์เนลลินุกซ์

by nuntawat
21 July 2009 - 20:31

นักวิจัย Brad Spengler ผู้พัฒนาโปรแกรมด้านความปลอดภัยชื่อ grsecurity ได้เปิดเผยโค้ดใน mailing list แห่งหนึ่ง ที่เมื่อรันแล้วจะแสดงให้เห็นถึงช่องโหว่ของคอมไพเลอร์ ซึ่งเกิดจากข้ามขั้นตอนการตรวจสอบการ de-referent ของ NULL พอยน์เตอร์หลังจากโค้ดถูกแปลงเป็นไบนารี่โค้ดแล้ว (ดังนั้นผู้เขียนโปรแกรมไม่มีทางรู้แน่ๆ เนื่องจากมันไม่ได้ปรากฏอยู่ในโค้ดที่เขียน) ทำให้เคอร์เนลของลินุกซ์พยายามที่จะอ่านหรือเขียนข้อมูลตำแหน่งหน่วยความจำที่ 0x00000000 เปิดโอกาสให้ผู้ไม่ประสงค์ดีสามารถมีสิทธิ์เข้าควบคุมในระดับ root ได้จากจุดนี้ (ลองอ่านเพิ่มเติมได้ใน ComputerWorld)

โดยลินุกซ์ที่ได้รับผลกระทบคือ 2.6.30 และ 2.6.18 (ทั้งระบบปฏิบัติการ 32 และ 64 บิต) โดยเคอร์เนล 2.6.18 นั้นถูกใช้อยู่ใน Red Hat Enterprise Linux 5

นอกจากนั้นยังสามารถใช้การประมวลผล arbitrary code เพื่อยกเลิกฟีเจอร์ด้านความปลอดภัย อาทิ การ auditing ใน Security-Enhanced Linux (SELinux), AppArmor และ Linux Security Module ได้ด้วย โดยนักวิจัยผู้นั้นได้กล่าวว่าหากใช้ SELinux กลับจะช่วยให้ผลกระทบจากข้อผิดพลาดดังกล่าว "รุนแรงขึ้น"

ข้อคิดเห็นผู้เขียนข่าวลง Blognone: ตามที่ผมเข้าใจ ปัญหานี้เป็นปัญหาร่วมกันระหว่างคอมไพเลอร์กับลินุกซ์ที่ "อาจ" ไปเชื่อใจการทำงานของคอมไพเลอร์มากเกินไป โดยปล่อยให้คอมไพเลอร์ทำการตรวจสอบให้ แล้วเคอร์เนลของลินุกซ์ก็ทำหน้าที่ประมวลผลไปตามนั้นอย่างเดียว เทียบกับระบบปฏิบัติการวินโดวส์ที่จะมีการตรวจสอบด้วย อาทิ ฟีเจอร์ Data Execution Prevention (DEP) ที่ทำงานร่วมกับฮาร์ดแวร์ หรือ Pretected Mode ในอินเทอร์เน็ตเอกซ์พลอเรอร์ เป็นต้น

ที่มา: C|Net, SANS Internet Storm Center ผ่าน ComputerWorld

Blognone Jobs Premium