- Trong lúc kiểm thử trong môi trường phát triển "integration" của EA, đã lấy được access token có đặc quyền thông qua thông tin xác thực được hardcode trong file thực thi của một trò chơi cụ thể.
Tài liệu xác thực
- Đã quét nhiều endpoint để kiểm tra liệu tài liệu API có bị lộ hay không.
- Phát hiện tệp Swagger JSON tại
/connect/api-docs/index.json, từ đó xem được toàn bộ triển khai Swagger của Nexus Connect API.
- Cập nhật tệp Swagger sang đặc tả OpenAPI 3.0 và chạy nó trên máy chủ Swagger UI cục bộ.
Tìm thêm manh mối
- EA Desktop sử dụng "Service Aggregation Layer", một GraphQL API tích hợp nhiều dịch vụ backend.
- Phát hiện hơn 80 endpoint dịch vụ tại
gateway.int.ea.com.
Phát hiện mỏ vàng
- Đã gửi yêu cầu tới tất cả endpoint và chuyển đổi chúng sang đặc tả OpenAPI để kiểm tra nhiều loại dữ liệu khác nhau.
- Tìm thấy những thông tin đáng chú ý như dữ liệu về các đội ngũ game cụ thể.
Thời điểm vào production
- Khám phá các endpoint có thể truy cập bằng OAuth client production.
- Thông qua các endpoint
/identity/pids/me và /identity/pids/me/personas, đã xem được thông tin tài khoản và danh sách "persona".
Phát hiện lớn
- Phát hiện rằng có thể cập nhật persona thông qua endpoint
/identity/pids/{pidId}/personas/{personaId}.
- Có thể thực hiện các thao tác như đổi tên người dùng, thay đổi trạng thái persona, hoặc chuyển persona sang tài khoản khác.
Một nhận ra khác
- Có thể tìm kiếm cả các tài khoản bị ẩn thông qua endpoint
/identity/namespaces/{namespace}/personas.
- Có thể kiểm soát dữ liệu tài khoản bằng cách chuyển persona của tài khoản khác sang tài khoản của mình.
Lần thử thứ ba
- Phát hiện rằng có thể dùng token Xbox/PSN để vượt qua 2FA và đăng nhập vào tài khoản.
- Có thể đăng nhập vào game trên Xbox để truy cập tài khoản của nạn nhân.
Tác động
- Kẻ tấn công có thể chuyển dữ liệu persona để đánh cắp tên người dùng và dữ liệu game.
- Có thể đăng nhập vào tài khoản qua Xbox để truy cập tài khoản của nạn nhân.
- Có thể cấm persona hoặc thay đổi tên người dùng.
Một vài suy nghĩ
- Đáng tiếc là EA mất nhiều thời gian để khắc phục vấn đề và không có chương trình bug bounty.
- Việc phối hợp với EA nhìn chung là tích cực.
Dòng thời gian
- 16/06/2024 - Báo cáo lỗ hổng cho EA
- 08/07/2024 - Triển khai bản vá 1 (xác minh quyền sở hữu persona)
- 10/09/2024 - Triển khai bản vá 4 (gỡ bỏ tài liệu)
1 bình luận
Ý kiến trên Hacker News
EA thích dùng một hệ thống chung cho mọi trò chơi. Trong Madden, họ phát hiện một backend dùng chung tên là blaze, có các endpoint web và TCP. Họ đã tạo công cụ để gọi các endpoint nhưng lại làm sập từng máy chủ một. Sau đó họ cố xây dựng API để ngăn việc bị dò tìm
Đã cài Battlefield 2042 qua Xbox và kết nối thành công. Thích các hacker
Sẽ rất thú vị nếu có ghi chú cho thấy cần bao nhiêu thời gian và công sức để thực hiện cuộc tấn công
Những ai thích bài viết này có thể đọc thêm trên các nền tảng bug bounty như "Hacktivity" của HackerOne
Nhờ bài viết này mà đã kiểm tra các máy chủ API phát triển và vận hành để xác nhận rằng các đường dẫn OpenAPI UI/JSON descriptor không bị lộ
Không rõ game của EA có hoạt động hay không. Điều tương tự cũng có thể xảy ra ở các đám mây lớn. Đây là kịch bản bất khả thi trong thế giới hạ tầng, nhưng lại là chuyện thường ngày trong thế giới người dùng của EA
EA khẳng định việc đổi tài khoản Xbox sang tài khoản mới là "bất khả thi về mặt kỹ thuật", nhưng thực tế là làm được. Không thể liên kết tài khoản Xbox cũ nên không thể chơi game EA trên Xbox
Sẽ rất buồn cười nếu chỉ còn cách khóa tất cả tài khoản và hy vọng không có bản sao lưu cơ sở dữ liệu
Tò mò không biết cảm giác làm kỹ sư ở một công ty lớn sẽ như thế nào. Nhiều đội cùng sở hữu các phần khác nhau nên khả năng tồn tại lỗ hổng là rất lớn
Thật đáng thất vọng khi EA vẫn chưa triển khai chương trình bug bounty. Cũng có người giữ kín lỗ hổng vì không có động lực để báo cáo. Mong EA đi theo xu hướng của ngành. Cũng tò mò liệu có phần thưởng nào cho việc báo cáo hay không