โปรดอัพเดตเบราว์เซอร์

เบราว์เซอร์ที่คุณใช้เป็นเวอร์ชันเก่าซึ่งไม่สามารถใช้บริการของเราได้ เราขอแนะนำให้อัพเดตเบราว์เซอร์เพื่อการใช้งานที่ดีที่สุด

ไอที

ตรวจพบช่องโหว่ร้ายแรงบน Android ที่อาจช่วยให้แฮกเกอร์เข้าควบคุมเครื่องที่ Root แล้วได้แบบเบ็ดเสร็จ

Thaiware

อัพเดต 30 ส.ค. เวลา 04.00 น. • เผยแพร่ 30 ส.ค. เวลา 04.00 น. • Sarun_ss777
แฮกเกอร์เพียงแนบไฟล์พิเศษเพื่อหลอกขั้นตอนการตรวจสอบของเฟรมเวิร์กสำหรับการรูท เพื่อเข้าถึงสิทธิ์ใช้งานระบบ

สำหรับผู้ใช้โทรศัพท์สมาร์ทโฟนแบบ Android หลายรายอาจคุ้นเคยกับการทำ Root เครื่อง ซึ่งเป็นการปลดล็อกสิทธิ์ให้ผู้ใช้งานทั่วไปสามารถเข้าดัดแปลงใช้งานในระดับสูงได้ คล้ายกับการทำ JailBreak เครื่อง iOS ซึ่งการทำเช่นนี้ช่วยให้ผู้ใช้งานมีอิสระในการใช้งานที่มากขึ้น พร้อมกับความเสี่ยงหลายอย่างในเวลาเดียวกัน

จากรายงานโดยเว็บไซต์ Cyber Security News ได้กล่าวถึงการตรวจพบช่องโหว่ร้ายแรงที่อยู่ในเครื่องมือสำหรับการทำ Root หรือ Android Root Framework หลากหลายตัวที่ส่งผลให้แฮกเกอร์สามารถใช้ในจุดนี้เข้าควบคุมเครื่องที่ทำการ Root แล้วได้อย่างเบ็ดเสร็จ ซึ่งช่องโหว่นี้ถูกตรวจพบครั้งแรกโดยทีมวิจัยจาก Zimperium บริษัทผู้เชี่ยวชาญด้านระบบความปลอดภัยบนโทรศัพท์มือถือ โดยตรวจพบครั้งแรกบนเครื่องมือสำหรับการ Root ที่มีชื่อว่า KernelSU เวอร์ชัน 0.5.7 โดยเครื่องมือชิ้นนี้เป็นหนึ่งในเครื่องมือในการ Root ยอดนิยมหลายตัว อย่างเช่น KernelSU, APatch, SKRoot, และ Magisk เป็นต้น ซึ่งเครื่องมือเหล่านี้จะถูกใช้ในการแพทช์ตัวแกนของระบบ (Kernel) เพื่อเจาะเข้าไปใช้งานในฟังก์ชันที่สำคัญระดับยิ่งยวดของระบบ (Critical System Functions) และสร้างช่องทางติดต่อระหว่างตัว Kernel และแอปพลิเคชันต่าง ๆ

และจากการที่มีการเชื่อมต่อที่แนบแน่นระหว่างส่วนสำคัญของระบบ และตัวแอปพลิเคชันต่าง ๆ นี้เองที่นำมาสู่ปัญหาที่ว่า ถ้าในการยืนยันตัวตน (Authentication) ว่าตัวแอปที่เชื่อมต่ออยู่นั้นเป็นแอปพลิเคชันที่ “ถูกต้อง” (Legitimate) หรือไม่ นั้นไม่เพียงพอ ก็จะนำไปสู่การรับรีเควสของแอปพลิเคชันปลอม หรือแอปพลิเคชันแฝงมัลแวร์ต่าง ๆ ทำให้แฮกเกอร์สามารถเข้าสู่ส่วนสำคัญและเข้าควบคุมระบบได้

ซึ่งในการทำงานของช่องโหว่นี้นั้น ทางทีมวิจัยได้อธิบายไว้ว่า เมื่อตัวแอปพลิเคชันได้ทำการร้องของสิทธิ์ในการเข้าถึงระบบ (Privillege) ผ่านทางการส่งรีเควส Prctl System Call ด้วยค่า Magic Value 0xDEADBEEF ตัวเฟรมเวิร์กที่ทำหน้าที่ Root ตัวระบบ Android ที่ใช้งานอยู่นั้นจะทำการตรวจสอบความถูกต้อง 3 ขั้นตอนคือ

  • ยืนยันความถูกต้องของ Directory Path
  • ยืนยันความถูกต้องของความเป็นเจ้าของ Directory
  • และยืนยันลายเซ็นต์ดิจิทัล (Digital Signature) ของตัวไฟล์ติดตั้ง (.APK)

โดยตัวรีเควสเพื่อตรวจสอบใน 2 ขั้นแรกนั้นสามารถหลีกเลี่ยง (Bypass) ได้อย่างง่ายดาย ขณะที่ในขั้นตอนการยืนยันลายเซ็นต์นั้น ทางทีมวิจัยกล่าวว่ามีจุดอ่อนร้ายแรง (Critical Flaw) ที่สามารถใช้งานได้ อย่างเช่นในตัวอย่าง ตัวเฟรมเวิร์ก KernelSU ในขั้นตอนการตรวจสอบ ตัวเฟรมเวิร์กจะทำการสแกนบนตารางบอกรายละเอียดของไฟล์ (Descriptor Table) ที่อยู่บนตัวไฟล์ที่ผ่านกระบวนการอยู่ว่าตรงกับแพทเทิร์น /data/app/*/base.apk หรือไม่ ซึ่งในจุดนี้แฮกเกอร์สามารถทำการหลอกลวงระบบการตรวจสอบได้โดยง่าย ด้วยการแก้ไขในส่วนของรายละเอียดตัวไฟล์ (File Descriptor) เพื่อหลอกให้ระบบยืนยันส่วนของ Digital Signature แทนที่จะไปยืนยันตัว APK โดยตรงซึ่งมีการแฝงฟังก์ชันอันตรายหรือตัวมัลแวร์เอาไว้

ซึ่งส่วนนี้นั้น ทางทีมวิจัยได้ทำการอธิบายในเชิงลึกไว้อีกว่า แฮกเกอร์จะทำการบรรจุตัวจัดการของเฟรมเวิร์กที่เรียกว่า KernelSU Manager APK ไว้ภายในไฟล์ APK หรือที่เรียกว่าเป็นการ Bunble ตัวไฟล์ เพื่อที่จะใช้งานเพื่อการนี้ และวางแผนให้ตัวไฟล์ KernelSU Manager APK ต้องถูกเปิดใช้งานขึ้นมาก่อนที่จะส่งรีเควสขอยืนยันตัวตนไปยังตัวKernel

โดยในขั้นตอนการโจมตีนี้นั้น ตัวแอปพลิเคชันที่แฮกเกอร์ใช้ในการโจมตี (Malicious Application) จะทำการตรวจสอบข้อมูลสำหรับระบุตัวตนกับ Base.apk file Descriptor ของตัวเองเพื่อที่จะหาตัวเลข Descriptor ที่มีค่าต่ำที่สุด แต่ถ้าหาไม่ได้แฮกเกอร์ก็จะทำการปิดส่วนของ stdin (File Descriptor 0) เสีย เพื่อสร้างช่องว่าง

หลังจากขั้นตอนดังกล่าวเสร็จสิ้น ตัวแอปพลิเคชันก็จะทำการเปิดไฟล์ KernelSU Manager APK ที่ถูกแนบมาบนแพคเกจเดียวกัน ซึ่งโดยมากแฮกเกอร์จะวางไฟล์ดังกล่าวไว้ในโฟลเดอร์ lib ซึ่งเป็นโฟลเดอร์สำหรับเก็บ Library ต่าง ๆ ซึ่งที่อยู่ของไฟล์ (Path) มักจะเป็นไปในลักษณะที่สามารถผ่านการตรวจสอบของตัวฟิลเตอร์ของ KernelSU ได้ โดยมักเป็นไปตามลักษณะดังนี้

/data/app//.com.attacker.manager/lib//base.apk

โดยจะมีการแนบตัว Digital Signature ของแท้ที่มีลักษณะดังนี้ไว้ด้วย

// Malicious authentication request

const char* data_path = "/data/data/com.attacker.manager";

int32_t result = -1;

prctl(KERNEL_SU_OPTION, CMD_BECOME_MANAGER, data_path, nullptr, &result);

ซึ่งจะเป็นการหลอกลวงระบบตรวจสอบในขั้นตอนการตรวจสอบ Digital Signature ที่ถ้ามีการตรวจพบลายเซ็นต์นี้ ตัว Kernel ก็จะทำการมอบสิทธิ์ในการเข้าถึงระบบให้กับแอปพลิเคชันปลอมดังกล่าวในทันทีอย่างอัตโนมัติ โดยหลังจากที่ตัวแอปพลิเคชันดังกล่าวนั้นเข้าถึงสิทธิ์ในการใช้งานระบบได้แล้ว แฮกเกอร์ก็จะสามารถเข้าถึงคำสั่งในการจัดการระบบแบบลึกได้ ไม่ว่าจะเป็น CMD_GRANT_ROOT, CMD_ALLOW_SU, และ CMD_SET_SEPOLICY ทำให้แฮกเกอร์สามารถเข้าควบคุมระบบได้อย่างสมบูรณ์

➤ Website : https://www.thaiware.com
➤ Facebook : https://www.facebook.com/thaiware
➤ Twitter : https://www.twitter.com/thaiware
➤ YouTube : https://www.youtube.com/thaiwaretv

ดูข่าวต้นฉบับ
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...