Ngày 27/9/2019 một chuyên gia với bí danh axiomx, tức Tiên Đề X, tung ra một công cụ bom tấn tên là
checkm8, tức Chiếu Bí, cho phép jailbreak hầu hết các phiên bản iPhone có trên thị trường. Công cụ jailbreak không phải là hiếm, nhưng điểm đặc biệt của Chiếu Bí là Apple sẽ không thể nào ngăn được nó. Tại sao lại như vậy?
Trước tiên chúng ta cần phải hiểu jailbreak là làm gì. Đây là đề tài rất thú vị vì nó liên quan đến chuyện gì diễn ra khi chúng ta bấm nút power để khởi động iPhone. Lúc đó iPhone sẽ thực hiện một quá trình gọi là Verified Boot, tức là khởi động có kiểm soát. Verified Boot đảm bảo phần mềm chạy trên chiếc điện thoại của bạn là phần mềm đã được Apple cho phép. Vậy Verified Boot hoạt động như thế nào?
Để trả lời câu hỏi này chúng ta hãy xem qua quá trình khởi động của một chiếc máy tính bình thường. Quá trình này bao gồm nhiều giai đoạn. Khi bạn bấm nút power, đoạn chương trình đầu tiên được chạy là BIOS, viết tắt của Basic Input Output System. Đây là chương trình rất nhỏ, chỉ vài trăm KB. Ngày nay chương trình này phức tạp hơn và được gọi là UEFI nhưng ý tưởng vẫn như BIOS. Ví dụ, trên một chiếc Chromebook, chương trình UEFI/BIOS này chỉ gói gọn trên một con chip 64MBit tức là 8MB gắn liền với bo mạch chủ.
Bạn có thể chạy chương trình UEFI của mình bằng cách gửi chương trình của mình cho chip trên máy Chromebook. Credit: wasabi / 404podcast
BIOS có nhiệm vụ kiểm tra sơ bộ các thiết bị phần cứng rồi chuyển giao việc khởi động cho một chương trình lớn hơn ở trên ổ cứng, gọi là boot loader. Boot loader có nhiệm vụ kiểm tra, nạp lõi hệ điều hành và chuyển giao cho lõi hệ điều hành. Lõi hệ điều hành tiếp tục nạp các chương trình lớn hơn, để cuối cùng chúng ta có giao diện đồ họa thân thiện như bạn thấy. Tất cả quá trình này chỉ tốn vài chục giây.
Một chiếc điện thoại iPhone cũng là một chiếc máy tính thu nhỏ và phần lớn các giai đoạn để khởi động điện thoại rất giống với một chiếc máy tính thông thường. Điểm khác biệt duy nhất là thay vì bạn có BIOS thì bạn có một chương trình không thay đổi được (read-only), được ghi trên một bộ phận phần cứng đặc biệt gọi là BootROM. BootROM này được Apple dùng với hai mục đích. Múc đích đầu tiên là chỗ dựa cuối cùng khi phần mềm trên điện thoại bị hư, ví dụ như khi quá trình cập nhật phần mềm gặp sự cố. Mục đích thứ hai của BootROM là giúp Apple đảm bảo iPhone chỉ chạy hệ điều hành của Apple. Tìm cách vượt qua được cơ chế này chính là jailbreak.
Cách mà BootROM hoạt động cũng khá đơn giản. Nó sẽ nạp boot loader vào bộ nhớ, kiểm tra sự toàn vẹn và nguồn gốc của boot loader, đảm bảo boot loader là do Apple tạo ra và không bị thay đổi. Sau đó nó sẽ chuyển giao quyền thực thi cho boot loader. Bình thường thì BootROM chỉ nạp boot loader từ ổ cứng của điện thoại, nhưng BootROM còn có thể tải thông qua USB, khi người dùng đưa điện thoại vào chế độ Recovery, tức là khôi phục điện thoại. Đoạn mã của BootROM khi tương tác với USB có lỗi và công cụ jailbreak Chiếu Bí khai thác lỗ hổng này để đánh lừa BootROM, cung cấp cho nó một boot loader mạo danh. Boot loader mạo danh này có thể tiếp tục nạp một lõi hệ điều hành không phải do Apple tạo ra.
Khi khai thác thành công lỗ hổng này, bạn có thể thay đổi ví dụ như hình trái táo của Apple bằng hình của bạn. Vài năm trước, tôi có nhớ một lỗ hổng tương tự, một nhà phát triển tráo hình trái táo bằng hình trái dứa lên trên chiếc iPhone 3GS của mình, đó là jailbreak gọi là redsn0w được coi là một kỳ tích lúc bấy giờ.
Vậy thì đối với một người dùng bình thường, điều này có ảnh hưởng gì?
Trước tiên, những dòng iPhone mới hơn như iPhone XS, XR hay 11 không bị ảnh hưởng. Nên nếu nhà có điều kiện thì bạn hãy nâng cấp ;-).
Nếu iPhone cũ hơn thì cũng đừng quá lo lắng. Để khai thác được lỗ hổng này thì kẻ tấn công phải chôm được iPhone của bạn. Để tự bảo vệ, bạn nên cài đặt một mật khẩu cho điện thoại. Lúc này đây dữ liệu của bạn sẽ được mã hóa và chìa khoá giải mã được lưu trong một bộ phận phần cứng tên là Secure Enclave. Nếu không biết mật khẩu của bạn thì không ai có thể giải mã và đánh cắp dữ liệu mà bạn lưu trên điện thoại.
Tuy nhiên, nếu điện thoại của bạn rơi vào tay người khác, dẫu chỉ trong một thời gian ngắn, thì nếu muốn người ta vẫn có thể cài đặt mã độc vào điện thoại. Khi bạn nhận lại và mở khóa điện thoại thì mã độc có thể chôm mật khẩu và dữ liệu của bạn. Để tự vệ, mỗi khi nhận lại điện thoại từ ai khác, bạn hãy khởi động lại điện thoại trước khi sử dụng.