Phát hiện lỗ hổng nghiêm trọng liên quan tới tính năng Sign in with Apple

An toàn thông tin - Ngày đăng : 14:33, 01/06/2020

Mới đây, Apple đã trả cho nhà nghiên cứu lỗ hổng Ấn Độ Bhavuk Jain khoản tiền thưởng trị giá 100.000 USD do phát hiện ra một lỗ hổng nghiêm trọng liên quan đến tính năng đăng nhập bảo mật "Sign in with Apple" trên các thiết bị của hãng này.

Lỗ hổng cho phép kẻ tấn công từ xa có thể bỏ qua xác thực và đánh cắp tài khoản của người dùng thông qua việc đăng nhập vào các ứng dụng hoặc dịch vụ của bên thứ ba bằng tính năng "Sign in with Apple".

Ra mắt tại hội nghị các nhà phát triển toàn thế giới (WWDC) năm ngoái của Apple, tính năng "Sign in with Apple" giúp người dùng tạo tài khoản cho ứng dụng cũng như các website của bên thứ ba bằng cách sử dụng Apple ID thay vì việc phải cung cấp các thông tin cá nhân. Do không cần địa chỉ email thực tế của người dùng, nên tính năng này được coi là một cơ chế đăng nhập giúp bảo vệ quyền riêng tư hơn.

Trong một cuộc phỏng vấn với The Hacker News, Bhavuk Jain tiết lộ rằng lỗ hổng mà anh phát hiện ra nằm ở cách Apple xác thực người dùng ở phía máy khách (client) trước khi khởi tạo yêu cầu từ các máy chủ xác thực của Apple.

Để xác thực người dùng thông qua tính năng "Sign in with Apple", đầu tiên máy chủ sẽ tạo JWT (JSON Web Token) chứa thông tin bí mật mà ứng dụng bên thứ ba sử dụng để xác nhận danh tính của người dùng đăng nhập. Cách tạo và xác thực JWT như sơ đồ dưới đây:

Phát hiện lỗ hổng nghiêm trọng liên quan tới tính năng Sign in with Apple - Ảnh 1.

Khi xác nhận tài khoản, Apple sẽ cung cấp cho người dùng tùy chọn chia sẻ ID Apple với ứng dụng bên thứ ba hoặc không. Nếu chọn không cho phép chia sẻ, Apple sẽ tự tạo ra Email ID tạm thời gán cho tài khoản đó. Sau khi xác nhận tài khoản thành công, Apple sẽ tạo ra một token JWT chứa Email ID để ứng dụng và trang web bên thứ ba đăng nhập.

Đến bước này thì lỗ hổng bảo mật được phát hiện. Jain cho biết có thể yêu cầu token JWT cho bất kỳ Email ID nào của Apple. Điều này đồng nghĩa với việc tin tặc có thể làm giả một token JWT bằng bất kỳ Apple Email ID nào để chiếm quyền kiểm soát tài khoản Apple của người dùng.

Bhavuk cho hay: "Tôi nhận thấy có thể yêu cầu JWT cho bất kỳ ID Email nào từ Apple và khi các mã xác nhận này được xác minh bằng khóa chung của Apple, chúng được coi là hợp lệ. Điều này có nghĩa là kẻ tấn công có thể giả mạo JWT bằng cách liên kết bất kỳ ID email nào và có quyền truy cập vào tài khoản của nạn nhân".

Bhavuk Jain cũng cho biết thêm lỗ hổng này tương đối nghiêm trọng vì có thể giúp tin tặc chiếm hoàn toàn quyền kiểm soát một tài khoản Apple. Ông đã báo cáo vấn đề với nhóm bảo mật Apple vào tháng trước. Hiện công ty đã vá lỗ hổng này. Về phần mình, Apple cũng đã tiến hành điều tra và chưa phát hiện ra vụ việc nào khai thác lỗ hổng này.

TH