모든 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 Teller 등 AI 생성 확장이 카지노 사이트로 연결
- “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”은 문학적 복선 장치로 언급됨
-
Homepage
-
개발자
- 모든 Firefox 확장 프로그램 설치