Clear
Lead Graphic Papers

iPhone iPad iPod ติดมัลแวร์ภายใน 1 นาที

ผู้เขียน: พรพรหม ประภากิตติกุล
วันที่เผยแพร่: 4 สิงหาคม 2556
ปรับปรุงล่าสุด: 4 สิงหาคม 2556

Share on Facebook Share on Twitter Share on Google+

"iPhone iPad iPod หรือเรียกอีกชื่อว่าเป็นอุปกรณ์ iOS ปัจจุบันพบว่าสามารถติดมัลแวร์ภายหลังจากเสียบที่ชาร์ตไฟสาธารณะเพียง 1 นาที"

กลุ่มนักวิจัยจาก Georgia Institute of Technology ได้เผยแพร่ข้อมูลงานวิจัยชิ้นสำคัญภายในงาน Blackhat ของปีนี้ที่จัดขึ้นที่ลาสเวกัส สหรัฐเมริกา หรือ Blackhat USA 2013 ในห้วข้อ “MACTANS: INJECTING MALWARE INTO IOS DEVICES VIA MALICIOUS CHARGERS” โดยกล่าวว่าอุปกรณ์ที่ใช้งานระบบปฎิบัติการ iOS สามารถถูกฝังมัลแวร์ได้อย่างง่ายดาย เพียงแค่นำอุปกรณ์ iOS มาเชื่อมต่อเข้ากับอุปกรณ์สำหรับชาร์ตไฟที่ถูกพัฒนาขึ้นโดยเฉพาะชื่อ MACTANS Charger โดยกลุ่มนักวิจัยได้อธิบายหลักการทำงานเบื้องต้นของอุปกรณ์ที่ได้พัฒนาขึ้นว่าเป็นการนำ BeagleBoard (http://beagleboard.org/) ซึ่งเป็นเมนบอร์ดที่แพร่หลายในกลุ่มนักพัฒนา OpenSource เนื่องจากมีขนาดเล็กและสามารถติดตั้งระบบปฎิบัติการ Linux ได้ ทำให้กลุ่มนักวิจัยนำมาใช้งานสำหรับประมวลผลซอร์สโค้ดที่พัฒนาขึ้น โดยความสามารถของ MACTANS Charger สามารถสั่งการให้อุปกรณ์ iOS ที่มาเชื่อมต่ออยู่นั้น ประมวลผลซอร์สโค้ดที่พัฒนาขึ้นและสั่งให้มีการติดตั้งมัลแวร์แอปพลิเคชันลงในอุปกรณ์ iOS ได้ภายใน 1 นาที จากกรณีดังกล่าวกลุ่มนักวิจัยอ้างว่าได้อาศัยเทคนิคและช่องโหว่ของระบบปฎิบัติการ iOS ที่พบ และสร้างอุปกรณ์ขึ้นมาเพื่อทดสอบสมมติฐานที่ตั้งขึ้น (Proof of concept) ซึ่งในเบื้องต้นบทความนี้จะอธิบายกระบวนการทำงานด้านความปลอดภัยของระบบปฎิบัติการ iOS ให้ทราบก่อน จากนั้นจึงเข้าถึงส่วนที่อธิบายการทำงานของอุปกรณ์ที่เกี่ยวข้องและการติดมัลแวร์ต่อไป

กลไกการป้องกันด้านความมั่นคงปลอดภัยของระบบปฎิบัติการ iOS

1. การ Review แอปพลิเคชันก่อนเปิดให้ผู้ใช้งานดาวโหลดจาก App Store

แอปพลิเคชันที่จะนำขึ้น App Store เพื่อให้ผู้ใช้งานเริ่มดาวโหลดได้จะต้องผ่านกระบวนการตรวจสอบด้านความมั่นคงปลอดภัยจากทีมงานของ App Store ก่อนทุกครั้ง ว่าแอปพลิเคชันมีลักษณะการทำงานที่เป็นอันตรายหรือไม่ ซึ่งจากอดีตที่ผ่านมาจะเห็นได้ว่ามีโอกาสน้อยมากที่จะพบแอปพลิเคชันบน App Store ที่ทำงานในลักษณะเป็นมัลแวร์

2. การตรวจสอบ Code Siging ก่อนการติดตั้งหรือการทำงานของแอปพลิเคชัน

Code Signing หรือที่เข้าใจกันในอีกมุมหนึ่งว่าเป็นการตรวจสอบความถูกต้องของแอปพลิเคชันว่าเป็นแอปพลิเคชันที่ได้รับอนุญาตให้ติดตั้งได้โดย App Store หรือไม่ ในอุปกรณ์ iOS ที่ไม่ได้มีการ Jailbreak ส่วนการทำงานของระบบปฎิบัติจะทำการตรวจสอบ Code Signing ของแอปพลิเคชันที่จะมีการติดตั้งหรือมีการเรียกใช้งาน หากระบบปฎิบัติการพบว่าแอปพลิเคชันไม่ได้รับการยืนยันว่ามาจาก App Store ก็จะทำให้แอพลิเคชันั้นไม่สามารถทำงานต่อไปได้

3. การทำ Sandbox ป้องกันพื้นที่การทำงานและโพรเซสการทำงานของแอปพลิเคชัน

Sandbox คือความสามารถในการแบ่งการทำงานออกเป็นส่วนๆแยกกัน ทำเพื่อป้องกันการเข้าถึงข้อมูลสำคัญของแต่ละส่วน ในระบบปฎิบัติการ iOS ก็มีการทำงานในลักษณะนี้ซึ่งแยกการทำงานออกเป็นส่วนเฉพาะหรือที่เรียกว่า iOS Sandbox หมายถึงแอปพลิเคชันทุกตัวไม่ได้แชร์พื้นที่ร่วมกัน เพื่อป้องกันการเข้าถึงข้อมูลของแอปพลิเคชันอื่น แต่ก็มีความยืดหยุ่นให้ผู้พัฒนาสามารถเลือกที่จะแชร์ข้อมูลหรือพื้นที่บางส่วนกับแอปพลิเคชันอื่นได้ และความสามารถของ iOS Sandbox ดังกล่าวก็ทำให้การเข้าถึงข้อมูลโพรเซสการทำงานของแอปพลิเคชันไม่สามารถทำได้เช่นกัน


อย่างไรก็ตามข้อจำกัดและกลไกการป้องกันทั้งหมดที่ระบบปฎิบัติการ iOS มี ดังที่ได้กล่าวมาในข้างต้น ปัจจุบันสามารถถูก Bypass ได้อย่างสิ้นเชิง โดยอาศัยเทคนิคและช่องโหว่ที่จะกล่าวถึงในอุปกรณ์ต้นแบบชื่อ MACTANS Charger โดยที่อุปกรณ์ดังกล่าวอาจดูเป็นเพียงอุปกรณ์สำหรับชาร์ตแบตเตอรี่ของอุปกรณ์ iOS ธรรมดา แต่เมื่อมีการนำอุปกรณ์ iOS เสียบเข้ากับอุปกรณ์ดังกล่าวแล้วก็จะทำให้อุปกรณ์ iOS ถูกติดตั้งมัลแวร์ได้เพียงไม่เกิน 1 นาที


คุณสมบัติของอุปกรณ์ต้นแบบ MACTANS Charger

1. สามารถทำงานได้กับอุปกรณ์ iOS ทุกชนิดและทุกเวอร์ชันโดยไม่จำเป็นว่าอุปกรณ์จะต้อง Jailbreak อยู่หรือไม่

2. ทำงานอัตโนมัติภายหลังจากการ Pair ระหว่างอุปกรณ์ iOS กับ MACTANS สมบูรณ์แล้ว (จะกล่าวถึงการ Pair ในลำดับถัดไป)

3. ไม่มีการแสดงผลฝั่งผู้ใช้งาน ทำให้ไม่พบความผิดปกติบนหน้าจอ

4. อุปกรณ์ต้นแบบมีขนาดเพียง 8 * 7 ซม. ทำให้ง่ายต่อการติดตั้งแบบหลบซ่อน

5. ยังไม่พบว่ามีแอปพลิเคชันอื่นๆที่สามารถทำงานได้เทียบเท่า

Pa2013ge007-1.png
รูปที่ 1 แสดงแผงวงจรควบคุมภายในของอุปกรณ์ MACTANS

ขั้นตอนการติดมัลแวร์จากอุปกรณ์ต้นแบบ MACTANS Charger

1. ดึงค่า UDID ของอุปกรณ์ iOS ที่เชื่อมต่อกับ MACTANS Charger ออกมา

ค่า UDID เป็นค่า 10 หลักที่นำมาใช้ระบุอุปกรณ์ iOS แต่ละตัว ซึ่งค่าที่อยู่ในแต่ละอุปกรณ์จะต้องมีค่าที่เหมือนกัน (Unique ID) โดยปกติเมื่อมีการเชื่อมต่อผ่านสาย USB ระบบปฎิบัติการ iOS จะส่งค่าดังกล่าวมายังอุปกรณ์ที่เชื่อมต่อเพื่อใช้เป็นข้อมูลในการยืนยันการเชื่อมต่อ กลุ่มนักวิจัยได้นำเอาข้อมูล UDID มาใช้ประโยชน์ต่อในกระบวนการจัดการที่จะเกิดขึ้้นในลำดับต่อๆไป

2. Pair อุปกรณ์ iOS กับ MACTANS Charger

การ Pair คืออะไร ?

ผู้ใช้งานหลายท่านอาจยังไม่เคยสังเกตว่าในอุปกรณ์ iOS ของตนเองที่นำมาเชื่อมต่อกับโปรแกรมชื่อ iTunes นั้น ทำไมถึงสามารถเชื่อมต่อและใช้งานฟังก์ชันในการจัดการอุปกรณ์ iOS ได้ทันทีเมื่อมีการเชื่อมต่อผ่านสาย USB ซึ่งนั่นคือที่มาของคำว่าการ Pair นั่นเอง การ Pair อุปกรณ์ iOS เกิดขึ้นระหว่างอุปกรณ์ iOS และเครื่องคอมพิวเตอร์ที่เชื่อมต่อกับอุปกรณ์ iOS อยู่ การ Pair อุปกรณ์ iOS ในครั้งแรกจะสมบูรณ์ก็ต่อเมื่ออุปกรณ์ iOS ต้องมีการปลดล๊อกหน้าจอแล้ว ซึ่งภายหลังจากการ Pair ครั้งแรกสมบูรณ์แล้ว ในครั้งต่อไปก็ไม่จำเป็นว่าอุปกรณ์ iOS จะต้องมีการปลดล๊อคอีกหรือไม่เนื่องจากมีการจดจำการเชื่อมต่อไว้แล้ว ทำให้สามารถเข้าถึงข้อมูลต่างๆในอุปกรณ์ iOS ได้ทันที

เกิดอะไรขึ้นบ้างภายหลังจาก Pair กับอุปกรณ์ iOS สำเร็จแล้ว

  • อุปกรณ์ที่เชื่อมต่อกับอุปกรณ์ iOS สามารถเข้าถึงข้อมูลรายละเอียดจากอุปกรณ์ iOS เช่น ข้อมูล UDID ข้อมูล Serial number
  • อุปกรณ์ที่เชื่อมต่อกับอุปกรณ์ iOS สามารถเลือกติดตั้งและถอนแอปพลิเคชันจากอุปกรณ์ iOS
  • อุปกรณ์ที่เชื่อมต่อกับอุปกรณ์ iOS สามารถจัดการข้อมูล Provisioning Profiles ของอุปกรณ์ iOS (จะกล่าวถึง Provisioning Profiles ในลำดับถัดไป)
  • อุปกรณ์ที่เชื่อมต่อกับอุปกรณ์ iOS สามารถมองเห็นข้อมูลที่มีการ Debugging ของอุปกรณ์ iOS

3. ติดตั้ง Provisioning Profiles บนอุปกรณ์ iOS ใหม่

Provisioning Profiles คืออะไร ?

โดยปกติแล้ว Provisioning Profiles นั้นจะใช้กับอุปกรณ์ iOS ที่อนุญาตให้มีการลงทะเบียนเป็นอุปกรณ์สำหรับใช้ในการพัฒนา หมายถึงอุุปกรณ์ iOS ใดก็ตามที่ติดตั้ง Provisioning Profiles เท่ากับว่าสามารถติดตั้งแอปพลิเคชันที่พัฒนาขึ้นเองได้ทันที มักจะถูกนำมาใช้งานกับนักพัฒนาแอปพลิเคชันเป็นส่วนใหญ่

MACTANS Charger ใช้ประโยชน์จาก Provisioning Profiles อย่างไร และมีขั้นตอนอย่างไร ?

MACTANS Charger จะส่งค่า UDID ของอุปกรณ์ iOS ที่เชื่อมต่ออยู่ ผ่านเครือข่ายอินเทอร์เน็ตไปลงทะเบียนกับ App Store พร้อมกับ Profile ของนักพัฒนาแอปพิลเคชันบนอุปกรณ์ iOS หรือที่เรียกว่า Developer Account (หมายความว่าต้องมีลงทะเบียน Developer Account ดังกล่าวไว้ก่อนแล้วจึงจะนำ Profile ของอุปกรณ์ iOS มาลงทะเบียน) เพื่อให้นักพัฒนาดังกล่าวสามารถติดตั้งแอปพลิเคชันทดสอบบนอุปกรณ์ iOS เครื่องนั้นได้ และเมื่อการลงทะเบียนกับ App Store สำเร็จแล้ว ต่อไปก็จะเริ่มการสร้าง Profile หรือที่เรียกว่า Provisioning Profiles บนอุปกรณ์ iOS เพื่อให้นักพัฒนาดังกล่าวมีสิทธิในการติดตั้งและรันแอปพลิเคชันทดสอบบนอุปกรณ์ iOS เครื่องนั้นได้ โดยรูปที่ 2 เป็นตัวอย่างข้อมูลจากเว็บของ Apple Developer ที่แสดงให้เห็นว่ามีอุปกรณ์ชื่ออะไรและ UDID อะไรบ้างที่ลงทะเบียนไว้กับ Developer Account รายหนึ่ง แต่อย่างไรก็ตามยังพบว่าข้อจำกัดของการใช้งานในลักษณะนี้ เนื่องจากการลงทะเบียนกับอุปกรณ์ iOS สามารถทำได้เพียง 100 เครื่องต่อ 1 Developer Account สังเกตได้จากรูปที่จะบอกว่าเหลือที่ติดตั้งได้อีก 54 เครื่องอยู่ ตามรูปที่ 2

Pa2013ge007-2.png
รูปที่ 2 แสดงตัวอย่างข้อมูลการติดตั้ง Provisioning Profiles บนอุปกรณ์ iOS โดยเช็คจาก Developer Account หนึ่ง [[1]

Pa2013ge007-3.png
รูปที่ 3 แสดงตัวอย่าง Provisioning Profiles ที่มีการติดตั้งอยู่ในอุปกรณ์ iOS สามารถดูได้จากเมนู General -> Profiles [2]

รูปด้านบนเป็นหน้าแสดงข้อมูล Provisioning Profiles เมื่ออุปกรณ์ iOS ดังกล่าวถูกติดตั้ง Provisioning Profiles แล้วจะเห็นข้อมูลดังกล่าวในเมนูของอุปกรณ์ iOS ได้ (เข้าไปที่เมนู General -> Profiles) แต่ส่วนใหญ่มักไม่มีใครสังเกตเนื่องจากไม่ใช่นักพัฒนาและไม่เข้าใจความหมายของข้อมูลในส่วนดังกล่าว (ในอุปกรณ์ iOS ที่ไม่ได้มีการติดตั้ง Provisioning Profiles จะไม่พบเมนูที่ชื่อว่า Profiles)

4. ติดตั้งมัลแวร์แอปพลิเคชัน

ภายหลังจากที่ MACTANS Charger ได้ติดตั้ง Provisioning Profiles บนอุปกรณ์ iOS สำเร็จแล้ว ก็จะเข้าสู่ขั้นตอนการติดตั้งแอปพลิเคชันมัลแวร์ โดยกลุ่มนักวิจัยได้กล่าวเพิ่มเติมว่าแอปพลิเคชันที่ทำงานเป็นมัลแวร์นั้นได้ถูกออกแบบมาให้ทำงานในโหมดซ่อนตัวเพื่อป้องกันไม่ให้ผู้ใช้งานสังเกตความผิดปกติได้ โดยการซ่อนการทำงานของแอปพลิเคชัน และได้ทำการแสดงตัวอย่างของตัวอย่างแอปพลิเคชันที่พัฒนาขึ้นในลักษณะคลิปวีดีโอ ในลักษณะที่แสดงให้เห็นว่าเมื่อมีการเชื่อมต่ออุปกรณ์ iPhone5 เข้ากับ MACTANS Charger จากนั้นทำการปลดล๊อคที่ iPhone5 และเข้าใช้งานซึ่งจะพบว่าสามารถใช้งานได้ตามปกติ แต่แท้ที่จริงแล้วการทำงานเบื้องหลังอยู่ และได้ทำการติดตั้งมัลแวร์แอปพลิเคชันลงใน iPhone5 เรียบร้อยภายในช่วงเวลาไม่ถึง 1 นาที โดยกลุ่มนักวิจัยใช้เทคนิคที่เรียกว่าการ Repackaging กับแอปพลิเคชัน Facebook เพื่อฝังการทำงานที่มีการเรียกมัลแวร์แอปพลิเคชันมาทำงานอีกที และในคลิปช่วงสุดท้ายแสดงให้เห็นว่าเมื่อผู้ใช้งานเปิดแอปพลิเคชัน Facebook ก็จะพบการทำงานในลักษณะอัตโนมัติเพื่อโทรออกไปยังปลายทาง โดยโทรศัพท์คลิกไปที่เมนูโทรออกและกดโทรศัพท์ออกไปหาปลายทางโดยอัตโนมัติทั้งหมด กลุ่มนักวิจัยกล่าวว่าการสาธิตนี้เพื่อให้เห็นภาพว่ามัลแวร์แอปพลิเคชันหรือแอปพลเคชันอันตรายสามารถถูกติดตั้งเข้ามาในอุปกรณ์ iOS และสามารถทำอะไรได้บ้าง แต่ในความเป็นจริงแอปพลิเคชันมัลแวร์ที่เกิดขึ้นคงไม่ได้ทำงานในลักษณะที่แสดงให้เห็นชัดเจนอย่างนี้แน่นอน

Pa2013ge007-4.png
รูปที่ 4 แสดงตัวอย่างการตั้งค่าเพื่อซ่อนแอปพลิเคชันในไฟล์ info.plist

Pa2013ge007-5.png
รูปที่ 5 กลุ่มนักวิจัยกำลังตอบคำถามภายหลังจากการบรรยายจบลงที่งาน Blackhat USA 2013

การป้องกันและการตรวจสอบ

1. จากการสอบถามกลุ่มนักวิจัยถึงการรับรู้ข้อมูลดังกล่าวของทีมพัฒนาระบบปฎิบัติการ iOS โดบได้ทราบว่าทีมพัฒนาดังกล่าวได้รับทราบข้อมูลนี้แล้วและได้มีแผนการในอนาคตเกียวกับการป้องกันปัญหาในลักษณะดังกล่าวโดยในระบบปฎิบัติการ iOS เวอร์ชั่น 7 ที่จะเกิดขึ้น จะมีโมดูลในการแจ้งเตือนและยืนยันการเชื่อมต่อที่อุปกรณ์ iOS ก่อน เพื่อป้องกันการเชื่อมต่อกับอุปกรณ์โดยไม่ตั้งใจได้ แต่อย่างไรก็ตามการเพิ่มโมดูลดังกล่าวอาจจะยังไม่ใช่ทางออกที่เด็ดขาด เนื่องจากหากผู้ใช้งานยังคงใช้งานโดยไม่ใช้วิจารณญาณก็อาจทำให้ผลลัพธ์ของการโจมตียังคงได้ผลเช่นเดิม

Pa2013ge007-6.png
รูปที่ 6 แสดงตัวอย่างการแจ้งเตือนการเชื่อมต่อกับ Host ที่มีมีอยู่ในระบบปฎิบัติการณ์ iOS เวอร์ชั่น 7 เพื่อป้องกันการเชื่อมต่อโดยไม่ได้รับอนุญาต

2. ข้อมูลที่กลุ่มนักวิจัยอธิบายในเบื้องต้น พบว่าการตรวจสอบการติดมัลแวร์ยังมีข้อจำกัดในการตรวจสอบอยู่บ้างเนื่องจากมัลแวร์แอปพลิเคชันสามารถซ่อนการทำงานได้ แต่อย่างไรก็ตามการทำงานดังกล่าวต้องอาศัยส่วนประกอบสำคัญที่ชื่อ Provisioning Profiles ซึ่งปัจจุบันยังไม่พบว่าสามารถซ่อนตัวได้ ฉะนั้นผู้ใช้งานอาจสังเกตจากเมนู Profiles ได้ก่อนว่ามีรายการ Provisioning Profiles อยู่บนอุปกรณ์ iOS ของตนเองหรือไม่ (ตรวจสอบได้จากเมนู General และดูเมนูชื่อ Profiles หากไม่พบแสดงว่าไม่มีการติดตั้ง Provisioning Profiles) เพราะนี่คือต้นทางของความสามารถในการติดตั้งและการทำงานมัลแวร์แอปพลิเคชันในอุปกรณ์ iOS ของผู้ใช้งาน แต่อย่างไรก็ตามเป็นไปได้ว่าในอนาคตอาจมีผู้ค้นพบวิธีการซ่อนข้อมูล Provisioning Profiles บนอุปกรณ์ iOS ก็เป็นได้
ฉะนั้นการป้องกันที่น่าจะมีประสิทธิภาพมากที่สุดก็คือการหลีกเลี่ยงการเชื่อมต่อกับอุปกรณ์ที่ไม่รู้จัก หรือเชื่อมต่อเฉพาะอุปกรณ์ที่เป็นของตนเองเท่านั้น เท่านี้ก็น่าจะช่วยให้การใช้งานอุปกรณ์ iOS ของเรามีความปลอดภัยมากขึ้นได้แล้ว

อ้างอิง

  1. http://ismashphone.com/2012/05/how-to-delete-provisioning-profiles-from-your-iphone-ipad-or-ipod-touch.html
  2. http://3qilabs.com/2012/07/how-to-ad-hoc-distribute-your-ios-app-via-a-website-and-ota/
Clear