Jailbreak iOS ชิป A8-A11 ด้วย Palera1n (roothide) + Dopamine ที่แอปตรวจจับไม่ได้
ในงานทดสอบความปลอดภัยแอปพลิเคชันบน iOS เราต้องการเครื่องที่ Jailbreak ได้ เพื่อรันเครื่องมือ dynamic analysis อย่าง Frida หรือ objection และเข้าถึงไฟล์ภายในแอป แต่แอปฝั่งการเงินจำนวนมากมีการตรวจจับ Jailbreak และปิดตัวเองทันทีที่เจอ ทำให้ทดสอบต่อไม่ได้ บทความนี้สรุปวิธีที่ผมใช้จริงกับ iPhone ชิป A8-A11 บน iOS ที่ TrollStore ไม่รองรับ คือใช้ Palera1n (roothide) ติดตั้ง TrollStore แล้วลง Dopamine (roothide) ต่อ พร้อมตั้งค่า RootHide ให้แอปเป้าหมายตรวจไม่พบการ Jailbreak ครับ
ทำความรู้จักกับ RootHide
RootHide คือแพลตฟอร์ม Jailbreak ยุคใหม่ที่เน้นความเสถียรและการซ่อนร่องรอยการ Jailbreak จากแอปพลิเคชัน พัฒนาโดยทีม RootHide นำโดย @roothideDev บน GitHub ทีมนี้ทำงานกับระดับ Kernel ของ iOS มานาน จึงเข้าใจโครงสร้างภายในของระบบดี
ทำไมต้องมี RootHide?
แนวคิดของ RootHide มาจากวิวัฒนาการของการตรวจจับ Jailbreak
- ยุค Rootful: เขียนไฟล์ทับลงระบบหลักโดยตรง แอปจึงตรวจเจอร่องรอยได้ง่าย
- ยุค Rootless: ย้ายไฟล์ไปเก็บที่
/var/jbแทน แต่แอปก็เริ่มสแกนหาโฟลเดอร์นี้จนเจอ - กำเนิด RootHide (ปลายปี 2023): ทีมพัฒนาใช้วิธีสุ่มชื่อโฟลเดอร์ (Randomized Name) ทำให้แอปหาไฟล์ Jailbreak ไม่เจอ เพราะชื่อโฟลเดอร์เปลี่ยนไปเรื่อยๆ ไม่ว่าจะอัปเดตกี่เวอร์ชัน
ทำไมการ Jailbreak ยุคนี้ถึงไม่ง่ายอย่างที่คิด?
ถ้าคุณใช้ iPhone ชิป A8-A11 (เช่น iPhone 8, 8 Plus, X) แล้วอยากลง Dopamine บน iOS เวอร์ชันใหม่ที่ไม่รองรับ TrollStore คุณจะเจอปัญหาคือติดตั้งไม่ได้ และเครื่องมือ Jailbreak อย่าง Palera1n รุ่นปกติหรือ Checkra1n ก็มักโดนแอปตรวจจับ Jailbreak จนเปิดแอปขึ้นมาทดสอบไม่ได้ ปัญหานี้กวนใจคนที่ต้องทดสอบแอปบนเครื่องเหล่านี้อยู่ไม่น้อย
เครื่องที่ผมใช้เป็น iOS 16.7.11 ซึ่ง TrollStore ไม่รองรับ เพราะ Apple ปิดช่องโหว่ CoreTrust ไปแล้ว วิธีติดตั้ง TrollStore บนเครื่องที่ไม่ Jailbreak รวมถึงวิธีใหม่อย่าง TrollRestore จึงใช้กับ iOS 16.7.11 เวอร์ชันทางการไม่ได้ เมื่อไม่มี TrollStore ก็ไม่มีช่องทางติดตั้งไฟล์ .ipa ของ Dopamine
ทางแก้คือใช้ Palera1n (roothide) ติดตั้ง TrollStore ลงเครื่องก่อน แล้วใช้ TrollStore ติดตั้ง Dopamine (roothide) ต่อ เพื่อให้ได้ทั้งระบบ RootHide และความสามารถในการซ่อนการ Jailbreak จากแอป
ทำความเข้าใจบทบาทของ Palera1n (RootHide) และ Dopamine (RootHide)
ทำไมต้องรัน Palera1n ก่อนถึงจะลง Dopamine ได้? แยกบทบาทได้ดังนี้
- Palera1n (RootHide) คือกุญแจเปิดเครื่อง: ทำงานที่ระดับฮาร์ดแวร์ผ่าน checkm8 exploit ซึ่งเป็นช่องโหว่ใน bootrom ที่ Apple แก้ด้วยซอฟต์แวร์ไม่ได้ จึงใช้ได้กับ iOS ทุกเวอร์ชันบนชิปที่รองรับ เป็นจุดเริ่มต้นที่ขาดไม่ได้
- Dopamine (RootHide) คือระบบ Jailbreak ที่ใช้งานจริง: เสถียร ใช้งานง่าย และเทคโนโลยีซ่อนร่องรอยของ RootHide ทำได้แนบเนียนกว่าการใช้ Palera1n เพียวๆ
แนวทางที่ลงตัวคือจับคู่ Palera1n (roothide) กับ Dopamine (roothide) โดยใช้ Palera1n เปิดทางติดตั้ง TrollStore ส่วนการ bypass jailbreak detection เป็นหน้าที่ของ RootHide ที่มากับ Dopamine มาเริ่มขั้นตอนติดตั้งกันครับ
วิธีการ Jailbreak Dopamine (roothide) ด้วย Palera1n (roothide)
สิ่งที่ต้องเตรียมและข้อควรรู้ก่อนเริ่ม Jailbreak
สิ่งที่ต้องเตรียม
- เครื่อง iPhone/iPad ชิป A8 ถึง A11 เช่น iPhone 8, 8 Plus, X
- คอมพิวเตอร์ macOS หรือ Linux สำหรับรันสคริปต์
./palehide.sh - สาย Lightning ที่ถ่ายโอนข้อมูลได้
ข้อควรระวังก่อนเริ่ม Jailbreak
- สำรองข้อมูล (Backup) ก่อนเสมอ
- ทำกับเครื่องทดสอบของตัวเอง หรือเครื่องที่อยู่ในขอบเขตงานที่ได้รับอนุญาตเป็นลายลักษณ์อักษรเท่านั้น การ Jailbreak อุปกรณ์ของผู้อื่นโดยไม่ได้รับอนุญาตผิดกฎหมายและผิดเงื่อนไขการใช้งาน
- การ Jailbreak เพิ่มความเสี่ยงด้านความปลอดภัยและทำให้บางแอปใช้ไม่ได้ ไม่แนะนำให้ทำกับอุปกรณ์ที่ใช้งานประจำวัน เพราะมีโอกาสเกิดปัญหาด้านความเสถียรและความปลอดภัย
ขั้นตอนการ Jailbreak
ดาวน์โหลดไฟล์ .zip จาก Releases เวอร์ชันล่าสุดที่ https://github.com/roothide/Palera1n-roothide/releases
แตกไฟล์ จากนั้นเสียบสาย Lightning กับ iPhone แล้วรันคำสั่งนี้ใน Terminal: ./palehide.sh
iPhone จะรีสตาร์ท เมื่อปรากฏโลโก้ Apple ให้กด Enter (เตรียมกดปุ่ม Volume Down + Power ที่ตัวเครื่อง เพราะเวลานับถอยหลังเร็วมาก)
เมื่อสำเร็จจะขึ้นข้อความ Device entered DFU mode successfully
คำสั่งจะรันต่อจนถึงข้อความ "DFU mode device disconnected" ให้ถอดสายแล้วเสียบใหม่อีกครั้งเพื่อให้กระบวนการเสร็จสมบูรณ์ (ต้องขึ้นโลโก้ Apple ก่อน)
รอสักครู่จะมีการแจ้งเตือนว่า "Palera1n (roothide) boot successful" และระบบจะติดตั้ง TrollStore ให้อัตโนมัติ
เข้าไปที่ GitHub ของ RootHide Dopamine 2 > Releases > ดาวน์โหลดไฟล์ .ipa จากนั้นเปิดแอป TrollStore > กดปุ่ม + > เลือก Install IPA File ดาวน์โหลดได้ที่ https://github.com/roothide/Dopamine2-roothide/releases
เมื่อติดตั้งเสร็จ ให้กด Open แล้วกดปุ่ม Jailbreak
วิธีการใช้งาน
เปิดแอป Sileo ค้นหา "RootHide Manager" แล้วกดปุ่ม GET เพื่อติดตั้ง (เฉพาะกรณีที่ยังไม่มีแอป RootHide)
เปิดแอป RootHide เลือกแอปที่ต้องการใส่ใน Blacklist แล้วกด toggle เพื่อไม่ให้แอปนั้นตรวจพบการ Jailbreak
การนำไปใช้กับงานทดสอบความปลอดภัยแอป
การจับคู่ Palera1n กับ Dopamine (roothide) ทำให้เรามีเครื่อง A8-A11 ที่ Jailbreak ได้บน iOS ที่ติดตั้ง TrollStore ตรงๆ ไม่ได้ และที่สำคัญกว่านั้น RootHide ช่วยให้แอปเป้าหมายตรวจไม่พบการ Jailbreak จึงเปิดแอปขึ้นมาทดสอบต่อได้ ทั้งการรัน Frida, objection, อ่านไฟล์ภายในแอป และตรวจสอบวิธีที่แอปเก็บข้อมูลบนเครื่อง
ในมุมของการป้องกัน การที่ jailbreak detection ถูก bypass ได้ง่ายขนาดนี้คือเหตุผลว่าทำไมแอปการเงินไม่ควรพึ่งการตรวจจับ Jailbreak เป็นด่านเดียว ควรมีการป้องกันหลายชั้น เช่น การเข้ารหัสข้อมูลบนเครื่อง การทำ anti-tampering และการตรวจสอบฝั่งเซิร์ฟเวอร์ ซึ่งเป็นสิ่งที่ทีม Reconix ตรวจในงานทดสอบเจาะระบบแอปพลิเคชันมือถือ
หากพบปัญหาหรือต้องการข้อมูลอัปเดตเกี่ยวกับ RootHide ติดตามได้ที่
- Github: https://github.com/roothide
- Discord: https://discord.gg/ZvY2Yjw8GA
บริการที่เกี่ยวข้อง
- ทดสอบเจาะระบบแอปพลิเคชันมือถือ (Mobile Application Penetration Testing)
- ทดสอบเจาะระบบ (Penetration Testing)