피드로 돌아가기
Firefox Extension IDs: The Bad and the Ugly
Dev.toDev.to
Security

Firefox 확장 프로그램 ID의 함정, CSRF 보안 공백과 프라이버시 위험

Firefox Extension IDs: The Bad and the Ugly

Adam Tauber2026년 4월 9일6intermediate

Context

Chrome과 Firefox의 Extension ID 처리 방식 차이로 인한 보안 취약점 발생. Firefox는 설치 시마다 고유한 internal UUID를 생성하여 Origin 헤더에 할당하는 구조. 정적 ID 기반의 Origin 검증이 불가능하여 표준적인 CSRF 방어 체계 구축에 한계.

Technical Solution

  • Chrome의 경우 manifest에 정의된 Public Key를 통해 모든 설치 환경에서 동일한 정적 Extension ID 유지
  • 정적 ID를 활용해 서버 측에서 chrome-extension://[ID] 형태의 Origin 헤더 화이트리스트 검증 수행
  • Firefox의 internal UUID 방식은 설치마다 Origin 값이 변경되어 서버 측 정적 검증 불가능
  • 대안으로 서버에서 생성한 Shared Secret 토큰을 사용자가 직접 확장 프로그램 설정에 입력하는 수동 인증 방식 도입
  • HTTP 레이어의 자동 Origin 검증 대신 애플리케이션 레이어에서 토큰 유효성을 확인하는 우회 전략 적용
  • Firefox의 internal UUID가 쿠키와 달리 삭제나 차단이 불가능하여 브라우저 설치 단위의 영구적 추적 도구로 작용하는 설계 결함 확인

Key Takeaway

브라우저 엔진별 식별자 생성 전략의 차이가 보안 모델의 일관성을 무너뜨릴 수 있음. 플랫폼 제공 식별자에 의존하기보다 독립적인 인증 메커니즘을 설계하여 환경 종속성을 제거하는 전략이 필요.


Firefox 확장 프로그램 개발 시 Origin 헤더 기반 CSRF 방어를 신뢰하지 말고 별도의 API Key 또는 토큰 인증 체계를 구축할 것

원문 읽기