GN⁺: 일렉트로닉 아츠 7억 개 계정 해킹 사건
(battleda.sh)- EA의 개발 환경인 "integration"에서 테스트를 진행하던 중, 특정 게임의 실행 파일에 하드코딩된 자격 증명을 통해 권한 있는 액세스 토큰을 얻음.
인증 문서
- API 문서의 노출 여부를 확인하기 위해 여러 엔드포인트를 스캔함.
-
/connect/api-docs/index.json
에서 Swagger JSON 파일을 발견하여 Nexus Connect API의 전체 Swagger 구현을 확인함. - Swagger 파일을 OpenAPI 3.0 사양으로 업데이트하여 로컬 Swagger UI 서버에서 실행함.
더 많은 것을 찾기 위해
- EA Desktop은 여러 백엔드 서비스를 통합하는 GraphQL API인 "Service Aggregation Layer"를 사용함.
-
gateway.int.ea.com
에서 80개 이상의 서비스 엔드포인트를 발견함.
금광 발견
- 모든 엔드포인트를 요청하고 OpenAPI 사양으로 변환하여 다양한 데이터를 확인함.
- 특정 게임 팀에 대한 데이터와 같은 흥미로운 정보를 발견함.
프로덕션 시간
- 프로덕션 OAuth 클라이언트로 접근 가능한 엔드포인트를 탐색함.
-
/identity/pids/me
와/identity/pids/me/personas
엔드포인트를 통해 계정 정보와 "페르소나" 목록을 확인함.
큰 발견
-
/identity/pids/{pidId}/personas/{personaId}
엔드포인트를 통해 페르소나를 업데이트할 수 있음을 발견함. - 사용자 이름 변경, 페르소나 상태 변경, 다른 계정으로의 페르소나 이동 등의 작업이 가능함.
또 다른 깨달음
-
/identity/namespaces/{namespace}/personas
엔드포인트를 통해 숨겨진 계정도 검색 가능함. - 다른 계정의 페르소나를 자신의 계정으로 이동시켜 계정 데이터를 제어할 수 있음.
세 번째 시도
- Xbox/PSN 토큰을 사용하여 2FA를 우회하고 계정에 로그인할 수 있음을 발견함.
- Xbox에서 게임에 로그인하여 피해자 계정에 접근할 수 있었음.
영향
- 공격자는 페르소나 데이터를 이동시켜 사용자 이름과 게임 데이터를 훔칠 수 있음.
- Xbox를 통해 계정에 로그인하여 피해자 계정에 접근할 수 있음.
- 페르소나를 금지하거나 사용자 이름을 변경할 수 있음.
몇 가지 생각
- EA가 문제를 해결하는 데 시간이 걸렸으며, 버그 바운티 프로그램이 없다는 점이 아쉬움.
- EA와의 협력은 긍정적이었음.
타임라인
- 2024년 6월 16일 - EA에 취약점 보고
- 2024년 7월 8일 - 패치 1 배포 (페르소나 소유권 확인)
- 2024년 9월 10일 - 패치 4 배포 (문서 제거)
Hacker News 의견
-
EA는 모든 게임에 공통 시스템을 사용하는 것을 좋아함. Madden에서 blaze라는 공통 백엔드를 발견했으며, 웹과 TCP 엔드포인트를 가짐. 엔드포인트 호출 도구를 만들었으나 서버를 하나씩 다운시킴. 이후 API를 구축하여 탐색을 막으려 함
-
Xbox를 통해 Battlefield 2042를 설치하고 성공적으로 접속함. 해커들을 좋아함
-
공격을 수행하는 데 얼마나 많은 시간과 노력이 필요한지 보여주는 노트가 흥미로울 것임
-
이 글을 즐긴 사람들은 HackerOne의 "Hacktivity" 같은 버그 바운티 플랫폼에서 더 많은 내용을 읽을 수 있음
-
이 글 덕분에 개발 및 운영 API 서버를 점검하여 OpenAPI UI/JSON 디스크립터 경로가 노출되지 않았는지 확인함
-
EA 게임은 작동 여부가 불확실함. 큰 클라우드에서도 비슷한 상황이 발생할 수 있음. 인프라 세계에서는 불가능한 시나리오지만 EA 소비자 세계에서는 일상적임
-
EA는 Xbox 계정을 새 계정으로 변경하는 것이 "기술적으로 불가능"하다고 주장했으나, 실제로는 가능함. 오래된 Xbox 계정을 연결할 수 없어 EA 게임을 Xbox에서 플레이할 수 없음
-
모든 계정을 차단하고 데이터베이스 백업이 없기를 바라는 것이 재미있을 것임
-
대기업에서 엔지니어로 일하는 것이 어떤 기분일지 궁금함. 여러 팀이 각기 다른 부분을 소유하고 있어 취약점이 존재할 가능성이 큼
-
EA가 아직 버그 바운티 프로그램을 시작하지 않은 것이 실망스러움. 보고할 인센티브가 없어 취약점을 숨기는 사람들도 있음. EA가 업계의 흐름을 따르길 바람. 보고에 대한 보상이 없었는지 궁금함