เครื่องมือสำหรับการสร้างเว็บไซต์และจัดการด้านระบบเครือข่ายที่ได้รับความนิยมนั้น หนึ่งในนั้นคงหนีไม่พ้น PHP แต่เครื่องมือดังกล่าวนี้ก็มีจุดอ่อน และช่องโหว่มากมายให้แฮกเกอร์นำไปใช้งานได้เช่นเดียวกัน
จากรายงานโดยเว็บไซต์ Cyber Security News ได้กล่าวถึงการตรวจพบช่องโหว่บนฟังก์ชันของ PHP เวอร์ชัน 5.x, 7.x และ 8.x โดยฟังก์ชันที่เป็นประเด็นอยู่นั้นเป็นฟังก์ชันด้านการจัดการหน่วยความจำ (Memory Management) ที่มีชื่อว่า extract() โดยเฉพาะอย่างยิ่งเมื่อฟังก์ชันดังกล่าวถูกใช้งานร่วมกับ EXTR_REFS
ภาพจาก : https://cybersecuritynews.com/php-extract-function-vulnerability/
สำหรับการทำงานของฟังก์ชันตัวนี้ที่เป็นปัญหาอยู่นั้น ตัวฟังก์ชันจะทำการนำเข้า Array จากตารางสัญลักษณ์ (Symbol Table) ซึ่งในส่วนตรงนี้แฮกเกอร์นั้นจะสามารถบงการเพื่อนำไปสู่สถานภาพ (Condition) ของหน่วยความจำที่เอื้ออำนวยต่อการแฮกได้ ซึ่งเมื่อฟังก์ชัน extract() ทำการประมวลตัวแปรของ PHP Object ที่ถูกระบุด้วยวิธีการ __destruct() เรียบร้อย ช่องโหว่ดังกล่าวจะทำงานด้วยการนำตัวระบบไปสู่ Race Condition (สภาพการทำงานที่ซ้ำซ้อน) จากนั้นแฮกเกอร์ก็จะใช้วิธีการ __destruct() ในการปลดตัวแปรต่าง ๆ ที่ทำงานบน extract() ซึ่งจะนำไปสู่ช่องโหว่ที่เอื้ออำนวยให้แฮกเกอร์ทำการรันโค้ดโดยไม่ได้รับอนุญาตได้ ซึ่งช่องโหว่จะแตกต่างกันไปตามเวอร์ชันของ PHP ดังนี้
ซึ่งเมื่อเกิดช่องโหว่ดังกล่าวขึ้นมาแล้ว แฮกเกอร์จะปฏิบัติตามขั้นตอนดังนี้เพื่อรันโค้ดที่ไม่ได้รับอนุญาต ตามขั้นตอนดังต่อไปนี้
ในปัจจุบันนั้นทางทีมงานผู้พัฒนา PHP ได้รับทราบถึงปัญหาดังกล่าวเรียบร้อยแล้ว แต่ยังไม่ได้มีการออกอัปเดตมาเพื่อจัดการกับปัญหาดังกล่าว ณ ขณะนี้ โดยทางแหล่งข่าวได้แนะนำวิธีการจัดการกับปัญหาแค่เพียงว่า ให้อัปเดต PHP ขึ้นเป็นรุ่นล่าสุดเสียก่อนสำหรับผู้ใช้งานในเวอร์ชันที่เป็นประเด็น รวมทั้งมีความระมัดระวังในการใช้ฟังก์ชัน extract() อย่างยิ่งยวด
|