모든 Firefox 확장 프로그램 설치

1 day ago 4
  • Mozilla의 Add-ons API를 이용해 84,000여 개 Firefox 확장 프로그램 전체를 수집·설치한 대규모 실험 진행
  • 스크래핑을 통해 84,235개 고유 확장 확보, 총 용량 49.3GB, 데이터셋은 Hugging Face에 공개
  • 설치 과정에서 피싱·스팸·PUA(잠재적 원치 않는 앱) 등 다양한 악성 확장이 다수 발견됨
  • 최종적으로 84,194개 확장 설치에 성공했으나 브라우저는 사실상 사용 불가 상태로 확인
  • 실험은 Firefox 확장 생태계의 규모, 품질, 보안 문제를 총체적으로 드러낸 사례로 평가됨

모든 Firefox 확장 프로그램 설치 실험

  • Firefox용 84,000여 개 확장 프로그램 전체를 수집·분석·설치한 대규모 실험
  • Mozilla의 공개 Add-ons API를 통해 전체 확장 목록을 스크래핑하고, 실제 설치까지 수행
  • 데이터셋은 Hugging Face에 공개되어 누구나 접근 가능
  • 여러 차례 시도 끝에 84,194개 확장 설치에 성공, 그러나 브라우저는 사실상 사용 불가 상태
  • 실험을 통해 확장 생태계의 규모, 품질, 악성 확장, 스팸, PUA(잠재적 원치 않는 앱) 등이 드러남

Firefox 확장 프로그램 스크래핑

  • Mozilla의 addons-server API는 인증 없이 접근 가능하며, search 엔드포인트로 확장 목록을 페이지 단위 조회 가능
  • 기본 정렬(recommended,users)로는 약 30,000개만 조회되어, created, rating, hotness, updated 등 다양한 정렬 옵션을 조합해 누락된 확장을 확보
  • exclude_addons 파라미터를 활용해 페이지 600 이후의 확장도 추가 수집
  • 카테고리별 병렬 요청으로 총 84,235개 고유 확장 확보, 평균 크기 584.9KB, 총 용량 49.3GB
  • 최종 데이터셋은 Hugging Face에 업로드되어 공개됨
  • 2026년 4월 11일 업데이트에서는 created__gte, created__lte 필터를 이용해 정확하고 효율적인 전체 스크래핑 구현

Firefox 확장 프로그램 분석

  • 가장 큰 확장dmitlichess(196.3MB)로, 오디오 파일 2000개 이상 포함
    • 상위 10개 확장은 대부분 AI 모델, Unity 앱, 이미지 리소스 등 대용량 콘텐츠 포함
  • 가장 작은 확장theTabs-saver(7.5KB)로 코드 없음
  • 평점 최하 확장Tab Stack for Firefox
  • 가장 오래된 확장Web Developer
  • 스크린샷 최다 확장RDS Bar(54장)
  • 권한 요청 최다 확장FalscheLaden(3,695개 권한 요청), 다음은 Google Dark Theme(2,675개)
  • 가장 많은 확장을 배포한 개발자Dr. B(84개 확장), 대부분 README 포함, 아이콘 없음
  • 피싱 및 악성 확장

    • 데이터셋에서 암호 지갑 피싱 확장 다수 발견
      • 예: “Іron Wаllеt”은 설치 3초 후 NocoDB에서 URL을 받아 피싱 페이지로 이동
      • 일부 확장은 시드 문구를 입력받아 서버로 전송
    • 보고 후 다음날 Mozilla에서 대부분 제거됨
    • API 키가 쓰기 권한을 가진 사례도 발견되어 직접 데이터 삭제 수행
  • SEO 스팸 확장

    • 확장 페이지의 “Homepage” 링크를 백링크용으로 악용
    • Typo Sniper, Tab Fortune TellerAI 생성 확장이 카지노 사이트로 연결
    • “Code Injector”류 확장 다수 존재, 동일 코드 구조와 무작위 도메인 사용
    • 대부분 2025년에 생성된 것으로 확인
  • PUA(잠재적 원치 않는 앱) 확장

    • “Custom Web Search” 패턴을 가진 확장 20여 종, 총 사용자 70만 명 이상
    • 모두 동일한 구조와 도메인, “Innover Online Group Ltd” 명시
    • Mozilla가 일부(115,000명 사용자 보유) 비활성화 조치
    • Yahoo 제휴 코드 safeplexsearch 사용, Firefox 전용 버전 존재
    • 유사 기업 Atom Apps도 동일한 방식으로 확장 배포, 총 22만 일일 사용자
  • 통계 요약

    • 34.3% 확장은 일일 사용자 0명
      • 10명 이상 사용자: 25.1%, 100명 이상: 10.6%, 1,000명 이상: 3.2%, 10,000명 이상: 0.7%
    • 76.7% 오픈소스(SPDX 라이선스 기준)
    • 23% 는 글 작성 이후 생성된 확장
      • 그중 19% 는 사용자·리뷰·아이콘·다운로드 모두 없음
    • 2.4% 유료 확장, 그중 38.1% 는 오픈소스

모든 확장 설치 시도

  • 각 확장의 .xpi 파일을 프로필 폴더에 GUID명으로 저장 후 extensions.json 수정
  • addonStartup.json.lz4 삭제 및 extensions.json 조작으로 자동 활성화
  • 시도 0: 65,335개 (Windows VM)

    • Enterprise Policy 방식으로 설치 시도했으나 메모리 부족 및 시스템 정지
  • 시도 1: 약 1,000개

    • 직접 다운로드 후 수동 배치, 설치 성공
    • 일부 확장은 모든 텍스트를 특정 문자열로 변경
    • 다수의 보안 확장으로 인해 도메인 차단, 경고 팝업 빈번
  • 시도 2: 65,335개

    • addonStartup.json.lz4 삭제 누락으로 실제 활성화는 1,000개 수준
    • about:addons 열람 중 Firefox 프리징 및 재시작 불가
  • 시도 3: 65,335개 (Mac)

    • 병렬 다운로드 시 속도 저하, 총 6시간 소요
    • Firefox 실행 시 응답 없음, extensions.json 크기 144MB
    • 디스크 쓰기량 400GB 이상 발생
  • 시도 4~10: 1,000~6,000개

    • 3,000개까지는 웹페이지 로드 가능
    • 4,000개 이상부터 모든 사이트 차단, 6,000개 시 about:addons만 로드 가능
  • 시도 11: 84,194개 (6개월 후)

    • 16~24GB RAM 환경에서 가상머신(VM) 사용
    • 다운로드 1시간 43분 소요, 일부 확장은 Defender 탐지
    • Firefox 실행 시 extensions.json이 189MB까지 증가, 39분 후 강제 종료
    • 이후 enable.js 실행으로 재시도
    • Launch 1~3 결과

      • Launch 1: 렌더링 없이 39분 대기 후 중단
      • Launch 2: 브라우저 표시 후 3분 내 크래시
      • Launch 3: 장시간 대기 후 안정화 성공, 84,194개 확장 로드 확인

모든 확장 사용 테스트

  • about:addons

    • 설정 페이지 로드 실패, 인덱스 페이지는 6시간 후 완전 로드
    • 메모리 사용량 27~37 GiB 유지
    • 아이콘 미표시, 응답 지연 심각
  • about:support

    • 총 84,205개 확장 표시되었으나 내장 확장 포함
    • 실제 설치된 외부 확장은 84,194개로 확인
  • about:preferences

    • New Tab 옵션 다수 존재, 충돌 및 크래시 발생
  • New Tab

    • Firefox Home만 정상 로드, 나머지 확장은 모두 실패
  • moz-extension

    • buyPal 확장이 자동으로 탭을 대체하며 유일하게 정상 로드
    • 이후 Firefox 재크래시
  • example.com

    • 24시간 대기에도 페이지 미로드, 차단 확장 다수 존재 추정
  • about:telemetry

    • Environment Data 클릭 시 즉시 크래시

사용 가능성 평가

  • 불가능
  • Firefox는 84,000개 확장 설치 상태에서 사실상 작동 불가

추가 탐구 제안

  • about:addons의 6시간 로드 원인 및 example.com 미로드 원인 분석
  • .xpi를 지원하는 Kagi Orion, GNOME Web 등 타 브라우저 실험
  • 테마(50만 개 이상)나 사용자 스크립트·스타일 전체 설치 실험
  • Chrome Web Store 전체 확장 설치는 규모상 불가능

각주 요약

  • 총 8개 확장은 스크래핑 누락 또는 삭제됨
  • 2025년 9월 작성된 초기 버전 이후 2026년 4월 수치 갱신
  • “Foreshadowing”은 문학적 복선 장치로 언급됨
Read Entire Article