iLeakage: การโจมตีแบบ speculative execution บนเบราว์เซอร์โดยไม่ใช้ตัวจับเวลา ต่ออุปกรณ์ Apple
(ileakage.com)- แม้จะมีการบรรเทา Spectre ต่อเนื่องมาราว 6 ปี แต่ iLeakage แสดงให้เห็นว่าช่องโหว่ side channel จาก speculative execution ยังถูกนำไปใช้โจมตีใน Safari บน Mac, iPad และ iPhone ได้
- ผู้โจมตีสามารถล่อให้ผู้ใช้เข้าเว็บอันตรายและคลิก จากนั้นใช้ JavaScript และ WebAssembly ทำให้ Safari เรนเดอร์หน้าเว็บใดก็ได้ และกู้คืนข้อมูลอ่อนไหวออกมาได้
- การสาธิตรวมถึงการกู้คืนหัวข้อข้อความล่าสุดใน Gmail, ข้อมูลรับรองที่เติมอัตโนมัติของ Instagram, ประวัติการรับชม YouTube, รหัสผ่าน Facebook และโทเค็น SMS 2FA บน MacBook Pro ที่ใช้ Apple M3
- ขอบเขตผลกระทบคืออุปกรณ์ macOS และ iOS ที่ใช้ CPU ตระกูล A-series และ M-series ของ Apple และมีการบรรเทาแล้วใน iOS 17.2 และ macOS 14.2 ที่มาพร้อม Safari 17.2
- แม้จะป้องกันได้ด้วย Lockdown Mode หรือการปิด JavaScript แต่มีข้อจำกัดด้านการใช้งาน และเพราะการโจมตีทำงานอยู่ภายใน Safari โดยไม่ทิ้งร่องรอยใน system log จึงตรวจจับได้ยากมาก
ความเสี่ยงของ Spectre ที่กลับมาปรากฏอีกครั้งบนอุปกรณ์ Apple
- iLeakage คือการโจมตีแบบ speculative execution side channel ที่มุ่งเป้าไปที่เว็บเบราว์เซอร์ Safari
- เป้าหมายคืออุปกรณ์ macOS และ iOS ที่ใช้ CPU ตระกูล A-series หรือ M-series ของ Apple
- รวมถึง iPhone และ iPad รุ่นใหม่
- และรวมถึงโน้ตบุ๊กกับเดสก์ท็อปของ Apple ตั้งแต่ปี 2020 เป็นต้นมา
- ตามปกติแล้ว โค้ดในแท็บหนึ่งของเบราว์เซอร์ไม่ควรอนุมานเนื้อหาในอีกแท็บได้ แต่ iLeakage สามารถอ่านเนื้อหาของหน้าเว็บเป้าหมายของผู้ใช้ที่เข้าไปยังหน้าโจมตีและคลิกได้
- ข้อมูลที่กู้คืนได้อาจรวมถึงข้อมูลส่วนบุคคล รหัสผ่าน และข้อมูลบัตรเครดิต
- ทีมนักวิจัยเปิดเผยผลการวิจัยให้ Apple เมื่อวันที่ 12 กันยายน 2022 ซึ่งก่อนการเผยแพร่สาธารณะ 408 วัน
ข้อมูลอ่อนไหวที่กู้คืนได้จริง
- ทีมนักวิจัยสาธิตกรณีการกู้คืน ข้อมูลมูลค่าสูง จากบริการยอดนิยม
-
ข้อมูลรับรอง Instagram
- ใช้สถานการณ์ที่ผู้ใช้ล็อกอิน Instagram บน Safari ของ macOS โดยมี LastPass เป็นตัวจัดการข้อมูลรับรองแบบเติมอัตโนมัติ
-
กล่องจดหมาย Gmail
- บน Safari ของ iOS สมมติว่าผู้ใช้ล็อกอิน Google อยู่ แล้วกู้คืนหัวข้ออีเมลล่าสุดของบัญชี Gmail บน iPad
-
ประวัติการรับชม YouTube
- กู้คืนประวัติการรับชม YouTube บน Chrome สำหรับ iOS
- Chrome บน iOS ทำงานเป็นเชลล์ที่ครอบอยู่บนเอนจินการท่องเว็บของ Safari เนื่องจากนโยบายของ Apple App Store
-
รหัสผ่าน Facebook และโทเค็น 2FA
- กู้คืนรหัสผ่าน Facebook ก่อน บน MacBook Pro ที่ใช้ชิป Apple M3, macOS 14.1.1 และ Safari 17.1
- จากนั้นกู้คืนโทเค็น SMS 2FA ที่ส่งไปยังโทรศัพท์ Android ผ่าน Google Messages
วิธีการทำงานของ Spectre และ side channel
- CPU สมัยใหม่ส่วนใหญ่ใช้ speculative execution โดยจะคาดเดาเส้นทางการประมวลผลและดำเนินคำสั่งบนเส้นทางนั้นล่วงหน้า เมื่อผลของ branch ยังไม่ออกมาทันที
- หากคาดเดาผิด CPU จะย้อนการเปลี่ยนแปลงของสถานะกลับ แต่ร่องรอยอาจยังคงอยู่ในสถานะระดับ microarchitecture เช่น cache
- Spectre คือช่องโหว่ฮาร์ดแวร์ที่ใช้ร่องรอยเหล่านี้เพื่ออ่านข้อมูลที่ตามความหมายของโปรแกรมเดิมไม่ควรเข้าถึงได้
- side channel สามารถอาศัยลักษณะการติดตั้งระบบเพื่อโจมตีได้ แม้โปรแกรมจะรันอัลกอริทึมที่ปลอดภัยก็ตาม
- ตัวอย่างเช่น เสียง การแผ่รังสีแม่เหล็กไฟฟ้า การ throttling จากความร้อน และการแชร์ทรัพยากร microarchitecture ของ CPU
- เมื่อผู้โจมตีกับเป้าหมายรันอยู่บน CPU เดียวกัน ก็จะใช้ทรัพยากรร่วมกัน เช่น core, cache และ buffer ภายใน และการแข่งขันใช้ทรัพยากรนี้สามารถวัดทางอ้อมได้ผ่านตัวแปรอย่างเวลาแฝงหรือการใช้พลังงาน
โครงสร้างการโจมตีแบบไม่ใช้ตัวจับเวลาที่หลบเลี่ยงการป้องกันของ Safari
- ผู้พัฒนาเบราว์เซอร์ได้เสริมมาตรการป้องกันต่อการโจมตี speculative execution และ transient execution มาตั้งแต่หลัง Spectre
- การป้องกันของ Safari รวมถึง 35-bit addressing, value poisoning, นโยบายแยกโปรเซสต่อแท็บ และตัวจับเวลาความละเอียดต่ำ
- iLeakage เป็นการสาธิตการโจมตี speculative execution ครั้งแรกต่อ CPU Apple Silicon และ Safari
- การโจมตีเริ่มจากการกู้คืน โครงสร้าง cache ที่ไม่เปิดเผยของ CPU Apple ด้วยการทดลองเชิงประจักษ์
- จากนั้นสร้าง gadget ที่อาศัย speculation เพื่อแยกแยะ cache hit กับ miss โดยใช้เพียงตัวจับเวลาความละเอียดต่ำ
- และยังสาธิตตัวแปรที่ใช้ race condition โดยไม่ต้องมีตัวจับเวลาด้วย
- gadget นี้ถูกใช้ทั้งในการทดสอบสร้าง eviction set และใน covert channel
- หลังจากย้ายเทคนิคมาใช้กับ Safari ก็ทำให้ Safari ระหว่างที่ CPU กำลัง speculative execution รันโค้ดสำหรับชนิดข้อมูลหนึ่งกับอ็อบเจ็กต์ชนิดผิดที่ผู้โจมตีสร้างขึ้น
- ท้ายที่สุดจึงสามารถทำ out-of-bounds read ได้จากทุกตำแหน่งใน address space ของโปรเซสเรนเดอร์ของ Safari
- เมื่อนำไปรวมกับวิธีใหม่ในการรวมเว็บไซต์ต่างโดเมนให้อยู่ใน address space เดียวกัน จึงสามารถทำการโจมตี speculative type confusion เพื่อรั่วไหลข้อมูลอ่อนไหวได้
มาตรการบรรเทา ความยากในการตรวจจับ และผลกระทบตามเบราว์เซอร์
- iLeakage ถูกบรรเทาแล้วใน Safari 17.2 ซึ่ง Safari 17.2 มาพร้อมกับ iOS 17.2 และ macOS 14.2
- วิธีรับมือคืออัปเดตอุปกรณ์ Apple ให้เป็นเวอร์ชัน OS ล่าสุด
- Lockdown Mode ช่วยบรรเทา iLeakage โดยปิดการทำงานของ JIT compilation ใน Safari
- JIT compilation เป็นฟีเจอร์ด้านประสิทธิภาพที่ iLeakage ใช้สร้าง attack primitive
- Lockdown Mode อาจเปลี่ยนพฤติกรรมของอุปกรณ์ เช่น บล็อกไฟล์แนบบางชนิดในข้อความและสาย FaceTime จากผู้ไม่รู้จัก
- รายการทั้งหมดอยู่ใน เอกสาร Lockdown Mode ของ Apple
- การปิด JavaScript ก็ป้องกัน iLeakage ได้เช่นกัน แต่ Safari อาจเรนเดอร์บางเว็บไซต์ผิดพลาดหรือไม่ครบถ้วน และฟีเจอร์เว็บขั้นสูงอย่างการชำระเงินออนไลน์อาจใช้งานไม่ได้
- iLeakage ทำงานอยู่ภายใน Safari และไม่ทิ้งร่องรอยในไฟล์ system log ทำให้ตรวจจับได้ยากมาก
- อย่างไรก็ตาม ร่องรอยการเข้าเว็บโจมตีอาจยังคงอยู่ใน browser cache ของหน้าที่เพิ่งเข้าชมล่าสุด
- ยังไม่มีหลักฐานการถูกนำไปใช้โจมตีจริง
- การประกอบการโจมตีแบบครบวงจรทำได้ยากมาก และต้องใช้ความรู้ระดับสูงเกี่ยวกับการโจมตี side channel บนเบราว์เซอร์และการทำงานภายในของ Safari
- ยังคงแนะนำให้ใช้ตัวจัดการข้อมูลรับรองต่อไป
- iLeakage สามารถกู้คืนข้อมูลรับรองที่ถูกเติมอัตโนมัติลงในหน้าเว็บได้
- หลายแพลตฟอร์มกำหนดให้ต้องมีปฏิสัมพันธ์จากผู้ใช้ก่อนจึงจะเกิดการเติมอัตโนมัติ
- Chrome, Firefox และ Microsoft Edge บน macOS ใช้เอนจิน JavaScript คนละตัว จึงไม่ได้รับผลจาก iLeakage ที่อาศัยลักษณะเฉพาะของเอนจิน JavaScript ใน Safari
- บน iOS เนื่องจากนโยบาย App Store และ sandboxing ของ Apple แอปเบราว์เซอร์อื่นก็ต้องใช้เอนจิน JavaScript ของ Safari ด้วย
- Chrome, Firefox และ Edge บน iOS เป็นตัวห่อ Safari ที่เพิ่มฟีเจอร์เสริม เช่น การซิงก์บุ๊กมาร์กและการตั้งค่า
- แอปเบราว์เซอร์เกือบทั้งหมดใน App Store มีความเสี่ยงต่อ iLeakage
- บทความวิชาการมีให้ที่ iLeakage paper และได้รับการตีพิมพ์ในงาน 2023 ACM Conference on Computer and Communications Security
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ดูเหมือนว่า FAQ นี้ยังขาดบางอย่างไป: อยากรู้ว่านี่เป็น ช่องโหว่ของ WebKit หรือช่องโหว่ของ Safari, Safari บนมือถือไม่มีการตั้งค่าสำหรับนักพัฒนาดังกล่าว แล้วถ้าเปิด Lockdown Mode จะช่วยบรรเทาได้ไหม, และเปิดเผยให้ Apple ทราบเมื่อไร
ต่อมาหน้านี้ได้รับการอัปเดตและมีคำตอบสำหรับคำถามสุดท้ายแล้ว โดยนักวิจัยระบุว่าได้เปิดเผยผลการวิจัยให้ Apple ทราบเมื่อวันที่ 12 กันยายน 2022 ซึ่งเป็นเวลา 408 วันก่อนการเผยแพร่สู่สาธารณะ
การลบ Spectre gadget ทั้งหมดที่เป็นไปได้ออกจาก WebKit นั้นไม่สมจริง ดังนั้นเบราว์เซอร์ควรใช้มาตรการบรรเทา Spectre ของระบบปฏิบัติการ โดยแยกเว็บไซต์ต่าง ๆ ออกจากกันไว้คนละโปรเซส
ใน FAQ ระบุว่า “ท้ายที่สุดสามารถทำ out-of-bounds read ได้จากทุกที่ในพื้นที่แอดเดรสของโปรเซสเรนเดอร์ของ Safari” ดังนั้นโดยส่วนตัวจึงมองว่าเป็นช่องโหว่จากการใช้งาน site isolation ของ Safari ที่ผิดพลาด
จะโจมตีได้ในสภาพแวดล้อมใดนั้นขึ้นอยู่กับรายละเอียดการใช้งานของ gadget ที่ใช้ JavaScript เพื่อกระตุ้นและวัด side channel นี้ ซึ่งอาจอยู่ใน论文ที่ยังไม่ได้อ่าน
Lockdown Mode ช่วยบรรเทาได้เพราะปิดการคอมไพล์แบบ JIT ใน Safari และบอกว่าจะปิดกั้นฟีเจอร์ด้านประสิทธิภาพที่ iLeakage ใช้สร้าง primitive สำหรับการโจมตี
สำหรับคำถาม “การใช้ตัวจัดการข้อมูลรับรองทำให้เสี่ยงหรือไม่?” ส่วนใหญ่ตอบว่าไม่ แต่ถ้าเป็นการรั่วไหลของบางอย่างจากหน่วยความจำ ก็น่าจะกระทบหน่วยความจำทั้งหมดใน พื้นที่โปรเซสของ Safari ไม่ใช่หรือ
ไม่ค่อยคุ้นกับด้านนี้ เลยยังไม่ค่อยเข้าใจว่าทำไมการใช้หรือไม่ใช้ตัวจัดการข้อมูลรับรองถึงเป็นเงื่อนไขยกเว้น
ดูเหมือนพยายามหลีกเลี่ยงไม่ให้คนกลับไปใช้วิธีอย่าง “newpassword2” และถ้าปิดการกรอกอัตโนมัติแล้วใช้คีย์ลัดหรือการโต้ตอบอื่นจากผู้ใช้เพื่อกรอก ก็จะปลอดภัยกว่า
อาจอ่านได้ว่า หากไม่ใช้ password manager ไม่บันทึกไว้ในเบราว์เซอร์ และพิมพ์เองทุกครั้งก็จะปลอดภัยจากเรื่องนี้ แต่ข้อโต้แย้งนั้นไม่ดีด้วยหลายเหตุผล
password manager มีประโยชน์ด้วยเหตุผลอื่นอีกมาก และถึงรหัสผ่านจะถูกขโมย อย่างน้อยก็เสียหายแค่เว็บไซต์เดียว
เทคนิคนี้น่าจะขโมย session token ได้ด้วย ซึ่งแม้จะไม่ร้ายแรงเท่าการขโมยรหัสผ่าน แต่ก็ยังแย่อยู่ดี
ถ้าตั้งค่า password manager ให้ต้องคลิกก่อนจึงจะกรอก ก็สามารถกันการโจมตีนี้ได้เช่นกัน
รหัสผ่านที่ถูกกรอกอัตโนมัติลงในหน้าเว็บสามารถกู้คืนได้เหมือนรหัสผ่านที่พิมพ์เอง แต่ไม่ได้หมายความว่าสามารถอ่าน รหัสผ่านทั้งหมดที่เก็บอยู่ใน password manager ได้โดยตรง
window.openเท่านั้นรหัสผ่านที่เก็บอยู่ในแอป password manager แยกต่างหากจะเข้าถึงไม่ได้ เว้นแต่ว่าแอปนั้นจะกรอกอัตโนมัติลงในหน้าต่างหรือโปรเซส Safari ที่ถูกโจมตี
การโจมตีครั้งนี้คือการหาวิธีทำให้ origin สองแห่งที่ต่างกันแชร์พื้นที่แอดเดรสเดียวกัน และคิดว่าใช้กับส่วนขยายไม่ได้
ใน论文ระบุว่า “เราแสดงเทคนิคใหม่ที่ใช้ประโยชน์จากนโยบาย site isolation ของ Safari โดยเพียงแค่หน้าเว็บของผู้โจมตีเปิดหน้าของเหยื่อใด ๆ ด้วย JavaScript
window.openAPI ก็ทำให้แชร์พื้นที่แอดเดรสกันได้”สับสนว่าการวางกรอบว่าเป็นเฉพาะ WebKit นั้นถูกต้องจริงไหม การใช้แคชในทางที่ผิดเองดูเป็นเรื่องทั่วไป และในข้อความอ้างอิงก็ระบุว่าทำได้แม่นยำเกือบสมบูรณ์ใน Safari, Firefox และ Tor
นอกจากนี้ยังสงสัยว่าการโจมตีผ่าน
window.open()เป็น เฉพาะ WebKit จริง ๆ หรือแค่งานวิจัยนี้เจาะลึกเฉพาะ WebKitwindow.open()บ่งชี้บริบทร่วมกันที่หน้าต่างผู้เรียกได้รับ reference ไปยังหน้าต่างใหม่ และหน้าต่างใหม่มี reference ย้อนกลับผ่านwindow.openerจึงสงสัยว่าเอนจินเบราว์เซอร์อื่น ๆ แยกขาดได้สมบูรณ์หรือไม่ในเบราว์เซอร์มือถือ site isolation ของ Chromium ยังมีข้อจำกัด และ Firefox ยังทำไม่เสร็จ
https://www.chromium.org/Home/chromium-security/site-isolati...
งงมาก เรื่องนี้ดูเหมือนเป็นปัญหาความร้ายแรงสูง แต่การแก้ไขกลับอยู่หลัง เมนูดีบัก ไม่รู้ว่าทำไมถึงถูกเปิดเผยก่อนจะถูกปล่อยใช้งานอย่างถูกต้องครบทุกที่
นอกจากนี้ยังแสดงให้เห็นว่ามาตรการบรรเทา side channel แทบไม่มีประโยชน์ และเราไม่ควรทำเหมือนว่าการโจมตีแบบนี้ถูกแก้แล้ว
ถ้าเป็นโฮสต์ที่รันหลายแอปพลิเคชันบน CPU สมัยใหม่ การรันโค้ดที่ไม่น่าเชื่อถือก็ไม่ปลอดภัย ไม่ว่าจะทำ sandbox ดีแค่ไหนก็ตาม
ผมคิดว่าการแจ้งให้ผู้ใช้ Apple รู้ถึงความเสี่ยงย่อมดีกว่าปล่อยให้พวกเขาถูกทิ้งไว้อีกกว่าหนึ่งปีโดยไม่รู้ถึงอันตราย
ผมเห็นด้วยกับการให้เวลาบริษัทแก้บั๊ก แต่พอถึงจุดหนึ่ง การไม่แจ้งผู้ที่ได้รับผลกระทบกลับกลายเป็นสิ่งที่ไร้ความรับผิดชอบกว่า
ใน论文อธิบายว่า speculative JavaScript sandbox escape ยังทำได้อยู่ แต่ผู้โจมตีจะถูกจำกัดให้อ่านได้แค่ address space และข้อมูลของตัวเอง
ระบุว่า ณ เวลาที่เขียน แพตช์ของ Apple เปิดเผยต่อสาธารณะแล้วและถูกนำไปใช้ใน Safari Technology Preview 173 ขึ้นไป และ [57] คือ https://github.com/WebKit/WebKit/pull/10169
ถัดลงมาจากนั้น วิศวกรยังคงลิงก์แพตช์เสริมความแข็งแกร่งเพิ่มเติมเกี่ยวกับ
window.open()และการแยกโปรเซสSwap Processes on Cross-Site Window Openเปิดอยู่แล้วและถูกระบุว่า Stableผมไม่ได้เปิดเอง เลยคิดว่า Apple อาจเปิดใช้งานไปแล้วและคำอธิบายอาจเก่า แต่ภายหลังพบว่าผมกำลังดู
Swap Processes on Cross-Site Navigationซึ่งชื่อคล้ายกัน และดูเหมือนตอนนี้ยังไม่ได้เปิดเป็นค่าเริ่มต้นควรโทษ Apple ที่ปล่อยไว้นานขนาดนี้ มากกว่านักวิจัยที่เปิดเผยก่อนปล่อยแพตช์
ไม่ใช่ว่าการโจมตี side channel ทั้งหมดถูกแก้แล้ว แต่การบอกว่ามาตรการบรรเทา side channel ไม่มีประโยชน์ก็ไม่เหมาะสม
เหมือนคาดเข็มขัดนิรภัยแล้วคนยังเสียชีวิตจากอุบัติเหตุรถยนต์ได้ แต่ไม่ได้แปลว่าเข็มขัดนิรภัยไร้ประโยชน์ มาตรการบรรเทาช่วยเพิ่มความยากในการใช้ประโยชน์จากช่องโหว่อย่างมาก
เขาบอกว่า “นักวิจัยเปิดเผยผลการค้นพบให้ Apple เมื่อวันที่ 12 กันยายน 2022” ผมสงสัยจริง ๆ ว่าทำไม Apple ถึงแทบปล่อยทิ้งไว้ นานกว่าหนึ่งปี
Apple เป็นหนึ่งใน ผู้มีอำนาจด้าน CVE จึงสามารถปฏิเสธการออก CVE สำหรับผลิตภัณฑ์ของตนเองได้ และเมื่อมีอำนาจแบบนั้น ก็สามารถเดินเรื่องช้าเท่าไรก็ได้ตามต้องการ
ผมเหมือนเคยเห็นข้อความเกี่ยวกับการแก้ไขบนเว็บไซต์ iLeakage แต่ตอนนี้หายไปแล้ว คิดว่าตัวเองจำผิด แต่จริง ๆ แล้วเว็บไซต์มีการเปลี่ยนแปลงในช่วงหนึ่งชั่วโมงที่ผ่านมา
เคยมีข้อความว่า “Apple เพิ่งปล่อย iOS 17.1, iPadOS 17.1, macOS Sonoma 14.1 แล้ว ให้อัปเดตอุปกรณ์ของคุณ” และตอนนี้ถูกย้อนกลับแล้ว
https://github.com/ileakage-authors/ileakage-authors.github....
หลังจากผมชี้ว่าในไซต์ไม่มีไทม์ไลน์การเปิดเผย ก็มีการเพิ่มส่วนสั้น ๆ ใน FAQ และดูเหมือนนักวิจัยเองก็สับสนไปด้วย เพราะสถานการณ์ว่ามีการปล่อยแพตช์แล้วหรือยังนั้นชวนสับสน
Swap Processes on Cross-Site Navigationและเปิดเป็นค่าเริ่มต้นสงสัยว่ามันต่างจาก
Swap Processes on Cross-Site Window Openบน macOS หรือเปล่าข้อความที่ว่า “iLeakage เป็นการโจมตีที่ทำให้สำเร็จตั้งแต่ต้นจนจบได้ค่อนข้างยาก และต้องมีความรู้ขั้นสูงเกี่ยวกับการโจมตี side channel บนเบราว์เซอร์และการใช้งานจริงของ Safari” อาจเป็นเหตุผลที่ Apple ไม่ได้ใส่ใจมากนัก
การตั้งฉายาน่ากลัว ๆ พร้อมชื่อโดเมนให้อีกหนึ่งกรณีแบบนี้ ดูไม่เป็นมืออาชีพและไม่น่าเชื่อถือเท่าไร
ถ้าอุปกรณ์ macOS หรือ iOS ที่มี CPU Apple A series หรือ M series ได้รับผลกระทบ ซึ่งก็คือ iPhone/iPad รุ่นหลัง ๆ และโน้ตบุ๊ก/เดสก์ท็อป Apple ตั้งแต่ปี 2020 เป็นต้นมา ในฐานะผู้ใช้ Intel Mac ที่หาได้ยาก ผมน่าจะไม่ได้รับผลกระทบ
แค่โครงสร้างลำดับชั้นของแคชต่างกันเล็กน้อย และ proof of concept คงต้องปรับเล็กน้อย
ถ้าเป็น iOS ต้องใช้ Lockdown Mode และนั่นคือวิธีเดียวในการใช้ iPhone อย่างปลอดภัย
benchmark ที่ทำโดยไม่มี Lockdown Mode ควรถูกมองว่าไร้ประโยชน์พอ ๆ กับการรัน benchmark CPU ด้วย
mitigations=offนี่เป็นอีกเหตุผลที่ดีที่ควรอนุญาตให้ใช้ เบราว์เซอร์เอนจิน อื่นบนอุปกรณ์ iOS
หากเกิดข้อผิดพลาดเมื่อรันคำสั่งด้านล่าง ให้ให้สิทธิ์ Full Disk Access แก่ Terminal แล้วลองอีกครั้ง
defaults write com.apple.SafariTechnologyPreview IncludeInternalDebugMenu 1