Khai thác lỗ hổng của Touch ID, tin tặc có thể chiếm đoạt tài khoản Apple iCloud

Đầu năm nay, Apple đã cho vá một lỗ hổng bảo mật trên iOS và macOS có khả năng cho phép kẻ tấn công truy cập trái phép vào tài khoản iCloud của người dùng.

Lỗ hổng này được phát hiện vào tháng 2 bởi Thijs Alkemade, một chuyên gia bảo mật thuộc công ty an ninh mạng Computest. Được biết nó xuất hiện trong quá trình Apple triển khai tính năng sinh trắc học TouchID (hay FaceID) dùng để xác thực người dùng khi họ đăng nhập vào các trang web trên Safari, đặc biệt là những trang sử dụng đăng nhập bằng Apple ID.

Sau khi vấn đề này được báo cáo với Apple thông qua một chương trình phát hiện lỗ hổng, hãng sản xuất iPhone đã nhanh chóng giải quyết lỗi bảo mật bằng một bản cập nhật máy chủ.

Một lỗ hổng xác thực

Tiền đề hoạt động chính của lỗ hổng này như sau. Khi người dùng đăng nhập vào một trang web có yêu cầu Apple ID, một lời nhắc (login prompt) sẽ được hiển thị để giúp họ xác thực thông tin đăng nhập bằng Touch ID. Nếu thao tác như vậy thì sẽ bỏ qua bước xác thực hai yếu tố vì nó đã sử dụng xác thực đa yếu tố để nhận dạng, bằng cách kết hợp thiết bị (thông tin người dùng có) và thông tin sinh trắc học của họ.

Ngược lại, nếu đăng nhập vào các tên miền của Apple (ví dụ:”icloud.com”) theo cách thông thường với ID và mật khẩu, thì trên các trang web này sẽ nhúng một iframe dẫn tới một máy chủ của Apple (“https://idmsa.apple.com“). Máy chủ này có chức năng xác thực thông tin đăng nhập của người dùng.

Apple Touch ID Flaw

Như đã mô tả trong video minh họa, URL của iframe còn chứa hai tham số khác. Tham số “client_id” dùng để xác định dịch vụ (ví dụ: iCloud) và “redirect_uri” có chứa một URL được dùng để chuyển hướng về sau khi thực hiện xác minh thành công.

Nhưng trong trường hợp người dùng sử dụng Touch ID để xác thực, iframe sẽ xử lý theo cách khác. Nó sẽ giao tiếp với AuthKit daemon (akd) để xử lý quá trình xác thực sinh trắc học và sau đó truy xuất một mã token (“grand_code”) mà icloud.com sẽ sử dụng để tiếp tục quá trình đăng nhập.

Để làm được điều này, daemon sẽ giao tiếp với một API trên “gsa.apple.com”. Đây là nơi nó sẽ gửi request của mình và cũng là nơi nó nhận được mã token để hoàn tất việc đăng nhập.

Lỗ hổng bảo mật được Computest phát hiện nằm trong phần API gsa.apple.com đã đề cập ở trên. Về mặt lý thuyết, kẻ tấn công có thể lợi dụng các tên miền đó để xác minh một client ID mà không cần qua khâu xác thực.

“Mặc dù client_id và redirect_uri đều được bao gồm trong phần dữ liệu gửi cho API bởi akd. Nhưng API này lại không kiểm tra xem liệu URL chuyển hướng có trùng khớp với client ID hay không. Mà thay vào đó, chỉ có một danh sách trắng được AKAppSSOExtension áp dụng trên các tên miền. Và tất cả các tên miền kết thúc bằng đuôi apple.com, icloud.com hay icloud.com.cn thì đều được thông qua,” Alkemade lưu ý.

Apple Touch ID Flaw

Điều đó có nghĩa là kẻ tấn công có thể khai thác một lỗ hổng cross-site scripting̣ (̣XSS) trên bất kỳ tên miền phụ nào của Apple để cho chạy một đoạn mã JavaScript độc hại. Đoạn script này có thể kích hoạt một login prompt bằng cách sử dụng một client ID của iCloud, và sau đó sử dụng mã token được cấp để chiếm được một phiên (session) trên icloud.com.

Thiết lập các điểm phát Wifi giả để chiếm tài khoản iCloud

Trong một kịch bản khác, khi thiết bị kết nối với mạng Wi-Fi lần đầu (qua “captive.apple.com”) thì cuộc tấn công còn có thể thực hiện bằng cách nhúng một đoạn JavaScript vào trang web được hiển thị đồng thời khi quá trình kết nối diễn ra. Từ đó cho phép kẻ tấn công truy cập vào tài khoản của người dùng đơn giản bằng cách chấp nhận một lời nhắc TouchID từ trang web đó.

“Một mạng Wi-Fi độc hại có thể phản hồi với một trang web chứa JavaScript mà trước đó đã được chứng thực OAuth qua tài khoản iCloud,” Alkemade nói. “Người dùng nhận được lời nhắc TouchID, nhưng lại không rõ mục đích đằng sau nó. Nếu họ thực hiện xác thực theo lời nhắc đó, mã token của họ sẽ bị gửi đến một trang web độc hại, và giúp kẻ tấn công có được một phiên cho tài khoản iCloud của chúng.”

“Bằng cách thiết lập một điểm phát wifi giả tại những địa điểm mà người dùng thường nhận được captive portal (ví dụ như sân bay, khách sạn hay nhà ga), kẻ tấn công có thể giành được quyền truy cập vào một lượng lớn các tài khoản iCloud. Từ đó cho phép chúng truy cập vào các bản sao lưu hình ảnh, các file thông tin của nạn nhân, biết được vị trí điện thoại và nhiều hơn nữa,” chuyên gia bảo mật này nói thêm.

Đây không phải là lần đầu tiên các lỗ hổng bảo mật được tìm thấy trên cơ sở hạ tầng xác thực của Apple. Vào tháng 5 vừa qua, công ty đã vá một lỗ hổng ảnh hưởng đến hệ thống “Sign in with Apple” của mình. Lỗ hổng cho phép kẻ tấn công từ xa có thể vượt qua khâu xác thực và chiếm tài khoản của người dùng trên các dịch vụ và ứng dụng của bên thứ ba đã được đăng ký bằng hệ thống đăng nhập này của Apple.

Theo The Hacker News

Theo Securitydaily.net