Theo de Raadt ผู้ก่อตั้งโปรเจคต์ OpenBSD ออกมาเปิดเผยถึงฟีเจอร์ด้านความมั่นคงปลอดภัยใหม่บน OpenBSD ซึ่งสามารถวางโครงสร้าง Kernel ใหม่ได้ทุกครั้งที่ทำการรีบูตหรืออัปเกรดระบบปฏิบัติการ ส่งผลให้แฮ็คเกอร์สามารถเข้าโจมตี Kernel ได้ยากยิ่งขึ้น โดยเรียกฟีเจอร์ดังกล่าวว่า KARL หรือ Kernel Address Randomized Link
OpenBSD ที่เป็น Stable Release ในปัจจุบันนี้ Kernel จะเชื่อมโยงและโหลดไฟล์ที่อยู่ใน Kernel Binary โดยใช้การจัดเรียงลำดับที่กำหนดไว้ก่อนแล้วล่วงหน้า ส่งผลให้ Kernel ของผู้ใช้แต่ละคนมีโครงสร้างหน้าตาเหมือนกันทั้งหมด แต่ KARL จะจัดลำดับการเชื่อมโยงไฟล์ภายใน Kernel เหล่านั้นแบบสุ่ม ก่อให้เกิด Kernel Binary ที่มีโครงสร้างเฉพาะตัว ซึ่ง Kernel นี้จะถูกใช้แทน Kernel เดิมทุกครั้งที่มีการติดตั้ง รีบูตหรืออัปเกรดระบบปฏิบัติการ
แนวคิดของ KARL อาจคล้ายคลึงกับ ASLR (Address Space Layout Randomization) ซึ่งเป็นเทคนิกในการสุ่มตำแหน่งของหน่วยความจำที่แอพพลิเคชันจะใช้รัน เพื่อไม่ให้แฮ็คเกอร์สามารถกำหนดเป้าหมายของพื้นที่บนหน่วยความจำเพื่อโจมตีแอพพลิเคชันนั้นๆ ได้ อย่างไรก็ตาม KARL จะยังคงทำการโหลด Kernel ณ ตำแหน่งเดิมบน KVA (Kernel Virtual Address Space) แต่จะทำการสร้าง Kernel Binary โดยใช้โครงสร้างแบบสุ่ม ส่งผลให้แฮ็คเกอร์โจมตี Functions, Pointers หรือ Objects ของ Kernel ได้ยากยิ่งขึ้น
A unique kernel is linked such that the startup assembly code is kept in the same place, followed by randomly-sized gapping, followed by all the other .o files randomly re-organized. As a result the distances between functions and variables are entirely new. An info leak of a pointer will not disclose other pointers or objects. This may also help reduce gadgets on variable-sized architectures, because polymorphism in the instruction stream is damaged by nested offsets changing.
KARL ให้เวลาในการพัฒนานานถึง 2 เดือน และจะมาพร้อมกับ OpenBSD เวอร์ชัน 6.1
TechTalkThai ศูนย์รวมข่าว Enterprise IT ออนไลน์แห่งแรกในประเทศไทย







