Tìm ra lỗ hổng bảo mật của Sign in with Apple, hacker Ấn Độ được thưởng 100 nghìn USD
Bhavuk Jain, một hacker 27 tuổi đến từ Delhi, Ấn Độ vừa tìm ra và thông báo cho Apple một lỗ hổng zero-day 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, cho phép hacker có thể đánh cắp thông tin tài khoản của người dùng thông qua việc đăng nhập vào một ứng dụng hoặc dịch vụ trực tuyến bằng Sign in with Apple.
Với phát hiện này, Jain được Apple thưởng 100.000 USD. Nhưng anh vẫn có bài viết giải thích cách lỗ hổng này hoạt động.
Theo Jain, Sign in with Apple hoạt động tương tự như Oauth 2.0. Có hai cách để xác nhận người dùng đăng nhập. Một là dùng JWT (JSON Web Token) hoặc một đoạn code gửi về từ máy chủ của Apple. Đoạn code này được dùng để tạo ra token JWT như sơ đồ dưới đây mà hacker Ấn Độ mô tả:
Bước thứ hai, khi xác nhận tài khoản, Apple sẽ cho người dùng tùy chọn chia sẻ ID Apple email với ứng dụng bên thứ ba. Nếu người dùng quyết định không cho bên thứ ba biết địa chỉ Apple Email, Apple sẽ tự tạo ra Email ID private relay tạm thời gán cho tài khoản đó. Tùy vào lựa chọn của anh em khi đăng nhập, 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ứ 3 đăng nhập. Trông một JWT từ Apple trông sẽ như thế này:
Đến bước này thì lỗ hổng bảo mật được phát hiện. Jain phát hiện ra anh có thể xin token JWT cho bất kỳ Email ID nào của Apple, và khi chữ ký của những token này được Apple xác nhận, chúng sẽ được coi là token chính chủ cho phép đăng nhập dịch vụ. Điều này đồng nghĩa, hacker 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 một người dùng nào đó:
Jain cho biết, tác động của lỗ hổng này tương đối nghiêm trọng vì như đã nói, nó có thể giúp hacker chiếm hoàn toàn quyền kiểm soát một tài khoản Apple. Về phần Apple, họ cũng đã điều tra và chưa phát hiện ra vụ việc nào nơi lỗ hổng này bị lợi dụng.
Bạn nghĩ sao ?