Nhà nghiên cứu 'lừa' Find My của Apple chia sẻ dữ liệu định vị cho Linux
Một nhà nghiên cứu bảo mật 22 tuổi đã tìm ra cách đưa thiết bị Linux vào mạng lưới Find My của Apple, cho phép nhận dữ liệu định vị thời gian thực mà trước đây chỉ dành riêng cho hệ sinh thái Apple. Kỹ thuật này khai thác các endpoint cũ và quy trình chứng thực chuẩn, mở ra khả năng theo dõi vị trí trên nền tảng mã nguồn mở.

Nhà nghiên cứu 'lừa' Find My của Apple chia sẻ dữ liệu định vị cho Linux
Một nhà nghiên cứu bảo mật trẻ tuổi đã tìm ra cách đưa thiết bị chạy Linux vào mạng lưới Find My của Apple, qua đó đọc được dữ liệu định vị thời gian thực từ những người đã chia sẻ vị trí với tài khoản Apple. Kỹ thuật này khai thác các endpoint kế thừa và giao thức chứng thực tiêu chuẩn, cho thấy khoảng cách bảo mật giữa hệ sinh thái đóng của Apple và nền tảng mã nguồn mở.
Bối cảnh: Find My chỉ dành cho "nhà Táo"
Find My là ứng dụng của Apple dùng để tìm kiếm thiết bị — từ AirTag, iPad cho đến các sản phẩm được hỗ trợ khác. Nó cũng hoạt động cho con người: các gia đình có thể theo dõi vị trí của nhau vì lý do an toàn, bạn bè có thể biết khi nào người khác đang đi chơi mà không có mình.
Theo phong cách đặc trưng của Apple, toàn bộ trải nghiệm Find My bị giới hạn trong phần cứng của hãng như iPhone hoặc Mac. iCloud cũng cung cấp tính năng Find Devices qua website, nhưng thiếu tính năng theo dõi bạn bè mà thiết bị Apple chính hãng mới có.
Kỹ thuật "vượt rào" của Zerotistic
Nhà nghiên cứu 22 tuổi có biệt danh "Zerotistic" đã phát triển một phương pháp để đưa máy Linux vào mạng lưới Find My, khiến Apple tin rằng thiết bị này là một phần của hệ sinh thái và xứng đáng nhận dữ liệu vị trí từ người khác.
Quan trọng: Đây không phải là exploit cho phép truy cập vị trí của bất kỳ người dùng Apple nào một cách tùy tiện. Nó chỉ áp dụng cho những người đã chủ động chia sẻ vị trí với chủ tài khoản Apple trước đó.
Quá trình này gồm nhiều bước phức tạp:
- Bước 1: Lấy
identity delegatethông qua giao thức chứng thực GrandSlam chuẩn của Apple. - Bước 2: Tạo yêu cầu ký chứng chỉ (CSR) tùy chỉnh theo định dạng PKCS#10 với khóa RSA 2048-bit ký bằng SHA-1 — một yêu cầu kỹ thuật bất ngờ vì SHA-1 đã bị coi là không an toàn từ lâu.
- Bước 3: Gửi gói XML nén tới endpoint
authenticateDScủa Apple — một endpoint cũ, có lẽ là lý do tại sao các tiêu chuẩn cũ vẫn được chấp nhận.
Chinh phục APNs và dịch vụ SearchParty
Sau khi có chứng chỉ IDS (Apple Identity Services), thiết bị Linux phải đăng ký sáu dịch vụ con khác nhau, định nghĩa loại mã hóa hỗ trợ và cung cấp khóa công khai cho định dạng nhắn tin thiết bị-tới-thiết bị. Tất cả phải được ký bằng chứng chỉ IDS và chứng chỉ APNs (Apple Push Notification service) lấy được trong quá trình thiết lập mạng ban đầu.
Điểm mấu chốt là tạo một kết nối TLS nhị phân liên tục tới máy chủ APNs riêng của Apple. Khi kết nối này hoạt động, Zerotistic gửi yêu cầu SubscribeAndFetch, buộc thiết bị của bạn bè đã chia sẻ vị trí phải đẩy khóa vị trí mã hóa tới máy Linux mới đăng ký.
Giải mã dữ liệu định vị
Thách thức cuối cùng là giải mã dữ liệu nhận từ dịch vụ SearchParty của Apple. Điều này đòi hỏi một script Linux có khả năng:
- Mở lớp bọc tin nhắn của Apple
- Trích xuất khóa chia sẻ vị trí
- Giải mã dữ liệu Find My gồm tọa độ, dấu thời gian và thông tin độ chính xác
Script này sau đó có thể tự động tìm nạp và giải mã các báo cáo vị trí tiếp theo từ những người đã chia sẻ vị trí.
Ý nghĩa và phản hồi từ Apple
Đáng chú ý, nhà nghiên cứu chỉ mất chưa đầy một tuần để phát triển kỹ thuật xuyên qua Find My. The Register đã liên hệ với Apple để hỏi về vấn đề này nhưng chưa nhận được phản hồi.
Đối với cộng đồng người dùng Linux tại Việt Nam, kỹ thuật này mở ra một hướng thú vị: khả năng theo dõi vị trí người thân trực tiếp từ máy tính cá nhân mà không cần sở hữu iPhone hay Mac. Tuy nhiên, người dùng cần lưu ý rằng việc tự ý can thiệp vào hệ sinh thái Apple có thể vi phạm điều khoản sử dụng dịch vụ.
Các nhà nghiên cứu bảo mật khác đánh giá đây là một kỹ thuật tinh vi, cho thấy ngay cả những hệ sinh thái khép kín nhất cũng có thể bị "thuyết phục" hợp tác nếu hiểu rõ các giao thức nền tảng.