첫 번째 시도
- 파이썬으로 작성된 기본적인 스캐너가 Firebase 설정 변수를 체크함.
- 메모리 소모 문제로 인해 한 시간 내에 작동 중단.
두 번째 시도
- Go 언어로 재작성된 스캐너는 메모리 누수가 없음.
- 5백만 개 이상의 도메인을 스캔하는 데 예상보다 더 많은 시간 소요.
모든 도메인 수동 확인
- 55만 줄 텍스트 파일의 각 항목을 수동으로 검사함.
- 136개 사이트와 620만 개의 기록을 확인했으나, 자동화된 방법이 필요함을 인식.
촉매
- 잠재적으로 영향을 받을 수 있는 사이트 목록을 촉매라는 보조 스캐너로 검사함.
- 사이트나 .js 번들에서 공통 Firebase 컬렉션에 대한 읽기 접근을 자동으로 확인함.
- 데이터의 영향력을 평가하기 위해 100개의 기록 샘플을 수집하고 정보 유형을 확인함.
- 결과를 저장하기 위해 Supabase(오픈 소스 Firebase 경쟁자)를 선택함.
숫자
- 전체 기록: 1억 2460만 5664개
- 이름: 8422만 1169개
- 이메일: 1억 626만 766개
- 전화번호: 3355만 9863개
- 비밀번호: 2018만 5831개
- 결제 정보: 2748만 7924개
- 이 숫자들은 실제보다 클 수 있음을 유의.
영향을 받은 사이트 목록
1. Silid LMS
- 학생과 교사를 위한 학습 관리 시스템.
- 가장 많은 사용자 기록 노출, 2700만 명 영향.
2. 온라인 도박 네트워크
- 9개의 사이트로 구성되며, 모두 서로 다른 디자인.
- 일부 게임은 당첨 확률이 0%로 조작됨.
- 문제를 보고하려 할 때 고객 지원이 유혹을 시도함.
- 가장 많은 은행 계좌 정보 노출, 800만 개.
- 가장 많은 평문 비밀번호 노출, 1000만 개.
3. Lead Carrot
- 콜드 콜링을 위한 온라인 리드 생성기.
- 노출된 사용자 정보가 많은 상위 3개 사이트 중 하나, 2200만 명 영향.
4. MyChefTool
- 식당을 위한 비즈니스 관리 앱 및 포인트 오브 서비스 애플리케이션.
- 가장 많은 이름과 두 번째로 많은 이메일 노출, 각각 1400만 개와 1300만 개.
결과
- 13일 동안 842개의 이메일 발송.
- 85% 이메일 도달.
- 9% 이메일 반송.
- 24% 사이트 소유자가 설정 오류 수정.
- 1% 사이트 소유자가 회신.
- 0.2% (2개) 사이트 소유자가 버그 바운티 제공.
GN⁺의 의견
- 이 연구는 Firebase 보안 설정의 잘못된 구성이 얼마나 쉽게 발생할 수 있는지를 보여줌. 이는 개발자들에게 보안 설정에 대한 경각심을 일깨우는 중요한 사례.
- 보안 문제가 발견되었을 때 사이트 소유자들의 반응이 다양했음을 알 수 있음. 대부분은 문제를 수정했지만, 일부는 무시하거나 적절한 보상을 제공하지 않음.
- 이러한 보안 취약점을 찾기 위해 사용된 자동화 도구는 다른 보안 연구자들에게도 유용할 수 있음. 비슷한 기능을 제공하는 도구로는 OWASP ZAP, Burp Suite 등이 있음.
- Firebase와 같은 클라우드 서비스를 사용할 때는 보안 설정을 정확히 이해하고 적용하는 것이 중요함. 잘못된 설정은 대규모 데이터 유출로 이어질 수 있음.
- 이 사례는 오픈소스 대안인 Supabase를 포함한 다른 서비스를 고려할 때, 보안 기능과 사용 용이성을 비교하는 데 도움이 될 수 있음. Supabase는 PostgreSQL을 기반으로 하며, Firebase와 유사한 기능을 제공하지만 오픈소스임.