พบช่องโหว่ null pointer dereference บน Linux kernel


เป็นอีกหนึ่งข่าวร้ายเกี่ยวกับความปลอดภัยของ Linux เพราะว่าช่องโหว่ของ null pointer reference ที่ว่านี้ทำให้ local user ที่ไม่ใช่ root สามารถเข้าถึงสิทธิของ root ได้ และที่ร้ายไปกว่านั้นคือ ช่องโหว่นี้เพิ่งได้รับการแก้ไขใน Kernel 2.6.32 rc6 หรือ release candidate ตัวล่าสุด ณ ปัจจุบัน (มีใครแถวนี้ใช้ Kernel 2.6.32 rc6 บ้าง… ถ้ามี ก็แสดงว่าล้ำหน้าสุดๆ) นั่นหมายความว่า ในตอนที่ผมเขียนบทความอยู่นี้ เกือบจะทุกเครื่องที่รัน Linux มีโอกาสถูกแฮกได้โดยด้วยช่องโหว่ที่ว่า แม้แต่ SELinux (Security-Enhanced Linux) ก็ป้องกันการโจมตีนี้ไม่ได้

ข่าวรายงานว่าช่องโหว่นี้ถูกค้นพบตั้งแต่กลางเดือนตุลาคม โดยนักพัฒนาคนหนึ่งของ Project grsecurity ชื่อ Brad Spengler และทางคุณ Brad Spengler เองก็ค่อนข้างแปลกใจที่ตัวเขาพบช่องโหว่นี้เป็นคนแรก จนถึงกับออกปากคุยว่า

It’s interesting to me that I picked it out two weeks before the people whose job it is to find this sort of stuff.

They’ve got entire teams of people and I’m just one person doing this in my free time.

(ผมว่าพี่แกออกแนวขี้โม้หน่อยๆ นะ)

ช่องโหว่ของ null pointer dereference นี้ สามารถถูกรันได้เมื่อค่าของตัวแปร mmap_min_addr ใน kernel ถูกตั้งให้เท่ากับ 0 (ศูนย์) ซึ่งดิสโทรใหญ่ๆ เช่น RHEL (Red Hat Enterprise Linux) และ Debian ก็ตั้งค่านี้เป็นศูนย์โดย default ซะด้วย แต่ทาง Red Hat ก็ได้ออกตัวแก้เป็นที่เรียบร้อยแล้วสำหรับ RHEL เวอร์ชัน 4 และ 5 ส่วน Debian เองก็มีหน้า Wiki อธิบายวิธีสำหรับเปลี่ยนค่า mmap_min_addr เพื่อป้องกันการโจมตีผ่านทาง null-pointer เหมือนกัน อย่างไรก็ตามการเปลี่ยนค่า mmap_min_addr นี้ก็อาจจะมีผลกระทบต่อ Application บางตัว เช่น WINE, qemu, dosemu

ในข่าวร้ายก็มีข่าวดีเล็กๆ สำหรับคนใช้ Ubuntu นั่นคือ ใน Ubuntu ค่า mmap_min_addr ที่ว่านี้ถูกตั้งเป็น 65535 อยู่แล้วโดย default เพราะฉะนั้น Ubuntu จึงปลอดภัยต่อช่องโหว่นี้ไปโดยปริยาย ไม่ต้องแก้อะไรทั้งสิ้น (ในข่าวไม่ได้ระบุว่าปลอดภัยทุกเวอร์ชันหรือเฉพาะเวอร์ชันล่าสุด)

ที่มาข่าวจาก

  1. http://www.h-online.com/open/news/item/Hole-in-the-Linux-kernel-allows-root-access-850016.html
  2. http://www.theregister.co.uk/2009/11/03/linux_kernel_vulnerability/

ป.ล. สิ่งที่เรียกว่า null pointer dereference นี่มันคืออะไรอะครับ? ใครเป็นเซียน kernel ช่วยอธิบายให้ละอ่อนอย่างผมเข้าใจหน่อยนะครับ

2 Responses to พบช่องโหว่ null pointer dereference บน Linux kernel

  1. bbx says:

    ดีแล้วที่ ubuntu ไม่มีปัญหานี้ เพราะปัญหาเท่าที่มีอยู่คนก็บ่นกันมากแล้ว

    • akedemo says:

      ก็นับว่าเป็นโชคดีเหมือนกันครับ แต่ก็คงไม่อาจบอกได้ว่า Ubuntu จะโชคดีปลอดภัยเช่นนี้ไปตลอด

      ยังไงซะก็ไม่เห็นต้องเครียดมากอยู่แล้ว ต่อให้โดน ผมเชื่อว่าอย่างมากไม่เกินสองสามวัน ก็คงมี patch ออกมาอุด ใช้ OS ที่เป็น Opensource ก็ดีอย่างนี้แหละครับ ขอให้หมั่นอัพเดตก็ปลอดภัยมากกว่า OS อื่นๆ อยู่แล้ว (ผมไม่ได้แขวะ Windows กับ Mac นะครับ อ้าว หลุดไปซะแล้ว)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: