วันพฤหัสบดีที่ 16 สิงหาคม พ.ศ. 2561

‘Man-in-the-disk’ การโจมตีรูปแบบใหม่บน Android

ทีมนักวิจัยจาก Check Point ได้สาธิตวิธีการโจมตีใหม่บน Android ที่ให้ชื่อว่า ‘Man-in-the-disk’ ซึ่งสามารถทำให้แอปพลิเคชัน Third-party สามารถเข้าไปดูและแก้ไขข้อมูลของแอปพลิเคชันอื่นที่มีการใช้พื้นที่บน External Storage ได้นำไปสู่การทำให้แอปพลิเคชันนั้นทำงานผิดพลาดหรือรันโค้ดอันตราย


Android OS รองรับการใช้งานหน่วยความจำ 2 ประเภท คือ Internal Storage (System Memory ที่ถูกใช้โดย OS, แอปพลิเคชันของระบบ หรือ ข้อมูลของแอปพลิเคชันที่ผู้ใช้เป็นคนเลือกที่จะเก็บลงในนี้ตอนติดตั้งซึ่งมีการป้องกันโดยการใช้ Sandbox จึงไม่สามารถเข้าถึงได้โดยแอปพลิเคชันอื่น) ส่วนอีกประเภทคือ External Storage คือหน่วยความจำภายนอก (เช่น SD Card เป็นต้น) ที่เอาไว้แชร์ข้อมูลกันระหว่างแอปพลิเคชัน หรือแชร์ไฟล์ให้ PC อย่างไรก็ตามมีหลายสาเหตุที่นักพัฒนาเลือกใช้ External Storage กับแอปพลิเคชันของตน เช่น หน่วยความจำภายในมีจำกัด ต้องทำให้เข้ากันได้กับอุปกรณ์รุ่นเก่า (ดีกว่าไปยุ่งกับหน่วยความจำของแต่ละเครื่อง) รวมถึงไม่อยากให้แอปพลิเคชันของตนดูกินพื้นที่เครื่องมากเกินไปหรืออาจจะเป็นเพราะเลินเล่อของตัวนักพัฒนาเอง

 

สาเหตุของการโจมตีที่เกิดขึ้นได้เป็นไปได้ด้วยปัจจัยหลายประการดังนี้

  • External Storage ของ Android ถือเป็นพื้นที่สาธารณะที่สามารถถูกแก้ไขหรือดูได้โดยแอปพลิเคชันบนเครื่องเดียวกัน
  • Android ไม่ได้มีกลไกการป้องกันข้อมูลที่อยู่บนพื้นที่นี้ติดมาในตัวเพียงแค่แนะนำแนวทางการใช้ให้นักพัฒนาเท่านั้น
  • นักพัฒนาเองก็ไม่ได้ใส่ใจความเสี่ยงตาม Best Practice คือ ตรวจสอบ input เมื่อต้องจัดการข้อมูลจาก External Storage ไม่มีการทำการ Signing ข้อมูลและตรวจสอบการแก้ไขเปลี่ยนแปลงก่อนโหลดข้อมูลเข้ามา รวมถึงไม่ควรเก็บข้อมูลที่ต้อง Execute หรือ Class File ไว้ใน External Storage
  • ด้วยความประมาทหรือเลินเล่อของผู้ใช้งานเองก็ไม่ได้ดูเรื่องสิทธิ์ของแอปพลิเคชันที่มีการใช้งาน External Storage ให้ดี

 

ผลลัพธ์ที่นักวิจัยได้สาธิตมี 2 วิธีการคือ

  • สร้างแอปพลิเคชันอันตรายที่ใส่ข้อมูลที่ผิดๆ ไปบนพื้นที่การใช้งานของอีกแอปพลิเคชันหนึ่งบน External ทำให้แอปเป้าหมายนั้นทำงานผิดพลาด ซึ่งอาจทำให้เกิดช่องโหว่อื่นทำไปสู่การ inject โค้ดอันตรายเข้าไป ร้ายกว่านั้นคือถ้าแอปเป้าหมายนั้นมีสิทธิ์สูงกว่าแอปคนร้ายก็จะทำให้คนร้ายสามารถยกระดับสิทธิ์และเข้าถึงฟีเจอร์ของโทรศัพท์ได้ผ่านทางแอปเป้าหมายนั้น
  • สร้างแอปพลิเคชันอันตรายที่คอยติดตามการอัปเดตของแอปพลิเคชันเป้าหมาย เนื่องจากบางแอปพลิเคชันมีการเก็บไฟล์ไว้ใน External Storage ชั่วคราวก่อน Apply อัปเดตจริง ซึ่งทำให้คนร้ายสามารถเขียนแทนที่ไฟล์บนพื้นที่นั้นด้วยเวอร์ชันอันตรายของตนเองหรือจาก Third-party เข้าไป

นอกจากนี้นักวิจัยจาก Check Point ได้เผยถึงแอปพลิเคชันยอดนิยมที่เราอาจต้องแปลกใจคือ Google Translate, Google Voice Typing, Yandex Translate และ Yandex Search รวมถึง Xiaomi Browser ต่างได้รับผลกระทบจากช่องโหว่นี้ทั้งสิ้น และได้แจ้งกับ Google และ Xiaomi ไปแต่มีเพียง Google เท่านั้นที่ออกแพตช์มาแก้ปัญหานี้แล้ว ในฝั่งการป้องกัน Check Point มีความเห็นว่านักพัฒนาควรจะใส่ใจกับการพัฒนาแอปพลิเคชันตาม Best Practice และ Android เองก็ควรรับผิดชอบด้วยการทำ Hardening ที่ระดับ OS ไม่ใช่ผลักภาระให้นักพัฒนาอย่างเดียว

ที่มา: TechTalk

ไม่มีความคิดเห็น:

แสดงความคิดเห็น