1P by neo 22일전 | favorite | 댓글 1개
  • 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가 업계의 흐름을 따르길 바람. 보고에 대한 보상이 없었는지 궁금함