2P by GN⁺ 3시간전 | ★ favorite | 댓글 1개
  • 자동화된 MITM(중간자 공격) 기반 스캐닝 파이프라인을 통해 287개의 Chrome 확장 프로그램이 사용자의 브라우징 기록을 외부로 전송하는 행위를 탐지
  • 이들 확장 프로그램은 총 약 3,740만 회 설치되어 있으며, 이는 전 세계 Chrome 사용자 약 1%에 해당
  • 데이터 유출 행위에는 Similarweb, Curly Doggo, Offidocs, Big Star Labs 등 주요 데이터 브로커와 다수의 소규모 업체가 연루
  • 분석 결과, 일부 확장 프로그램은 ROT47, AES‑256, LZ‑string 등 암호화 기법을 사용해 URL 데이터를 은폐하며 전송
  • 단순한 개인정보 침해를 넘어 기업 내부망·관리 콘솔 URL 노출 등 보안 리스크로 이어질 수 있는 심각한 위협임

자동화된 스캔 파이프라인 구축

  • 연구팀은 Docker 환경의 Chrome 브라우저를 MITM 프록시로 감싸고, URL 길이에 따른 출력 트래픽 상관관계를 측정하는 자동화 시스템을 구축
    • URL 길이에 비례해 전송량이 증가하면 해당 확장 프로그램이 URL을 외부로 전송하는 것으로 판단
  • 스캔은 두 단계로 진행되었으며, 총 930 CPU일이 소요됨
    • 1차로 4개 URL 길이를 테스트하고, 의심 비율(0.1 ≤ R < 1.0)이 감지되면 6개 추가 길이로 재검증

데이터 유출 탐지 및 분석

  • 287개 확장 프로그램이 브라우징 기록을 외부 서버로 전송하는 것으로 확인
  • 이들 확장 프로그램의 총 설치 수는 약 3,740만 회로, 전 세계 Chrome 사용자 약 1% 규모
  • 유출된 데이터는 Similarweb, Curly Doggo, Offidocs, Big Star Labs 등으로 전달되며, 일부는 Kontera 스크레이퍼를 통해 재수집됨
  • Honeypot 서버를 운영해 실제 데이터 수집 IP를 추적한 결과, HashDit, Blocksi AI Web Filter, Kontera 등 5개 주요 IP 대역이 반복적으로 접근

주요 행위자 및 연관성

  • OSINT 분석을 통해 각 확장 프로그램의 개발자 이메일, 개인정보처리방침, 인증서 정보 등을 조사
  • Similarweb의 “Similar Sites” 확장 프로그램이 Kontera 스크레이퍼 및 Curly Doggo, Offidocs와 연결되어 있음이 확인
  • Big Star Labs는 Similarweb과 동일한 코드 패턴을 공유하며, 동일 조직일 가능성이 높음

대표적 유출 사례

  • Poper Blocker: ROT47로 URL을 난독화해 api2.poperblocker.com으로 전송
  • Stylish: AES‑256과 RSA 공개키 암호화를 이용해 URL을 암호화 후 userstylesapi.com으로 전송
  • BlockSiteVideo Ad Blocker Plus: LZ‑string UTF16 압축을 사용해 URL을 전송, 동일한 데이터 스키마 사용
  • Similarweb: rank.similarweb.com으로 다중 URL 인코딩된 브라우징 데이터 전송
  • WOT (Web of Trust) : XOR 기반 커스텀 인코딩으로 URL을 암호화, Similarweb과 동일한 구조
  • Smarty, CrxMouse, ApkOnline, Knowee AI, Super PiP 등도 각각 URL 파라미터, 헤더, Google Analytics API 등을 통해 데이터 전송

위협 규모 및 영향

  • 3,740만 명의 사용자, 즉 폴란드 인구 규모에 해당하는 사용자가 영향받음
  • 일부 확장 프로그램은 기능상 브라우징 기록 접근이 필요할 수 있으나, 다수는 명시적 동의 없이 데이터 수집
  • 유출된 데이터는 광고 타기팅, 기업 스파이 행위, 세션 탈취 등에 악용될 수 있음
    • 특히 기업 환경에서 “생산성 향상” 확장 프로그램을 사용하는 직원의 내부 URL 노출 위험 존재

결론 및 경고

  • 분석된 확장 프로그램 중 다수는 의도적 암호화 및 은폐 기법을 사용해 탐지를 회피
  • 이는 단순한 버그가 아니라 데이터 수집을 기반으로 한 비즈니스 모델로 판단됨
  • 무료이지만 오픈소스가 아닌 소프트웨어는 사용자가 ‘제품’이 될 수 있음을 상기해야 함
  • Chrome 확장 프로그램 설치 시 권한 검토 및 출처 확인이 필수적임
Hacker News 의견들
  • 15년 전쯤 특정 기능만 하는 Chrome 확장 프로그램을 만들어 꽤 인기가 있었음
    몇 천 달러에 팔고 잊었는데, 지금 보니 악의적인 사람들이 이런 정상 확장 프로그램을 사들여 사용자 데이터로 돈을 버는 패턴이 명확히 보임
    여러 사례를 직접 목격했음

    • 10년 넘게 인기 있는 크로스 브라우저 확장 프로그램을 유지 중인데, 수익화 제안이 끊이지 않음
      관련 논의는 GitHub 토론에 정리되어 있음
    • 이런 건 전형적인 공급망 공격(supply-chain attack)
      게이머들이 고레벨 캐릭터를 팔거나, SNS 계정이 주인을 바꾸는 것과 비슷한 방식임
      이제 보안의 새로운 전선은 브라우저 확장, 클라우드 통합, 앱 접근 권한 같은 영역임
      Gmail이나 Google Drive 전체 접근 권한을 아무 앱에 주면 랜섬웨어에 노출될 수 있음
      로컬 OS에는 흔적도 안 남고, 바이러스 스캐너도 잡지 못함
      보안 점검 절차가 너무 번거로워서 하나씩 접근 해제하는 게 고역임
      더 나은 방법이 필요함
    • 15년 전이면 이런 거래가 막 시작되던 시기였을 것임
      확장 프로그램 판매 자체를 막을 수는 없지만, Chrome Web Store의 검증 절차를 강화해야 함
    • 판매자에게 악의가 없더라도, 판매 후 발생한 문제에 대해 법적 책임이 일부 있어야 한다고 생각함
      다만 이런 책임은 개인이 아니라 스토어 운영자가 관리해야 함
  • 신뢰하던 확장 프로그램이 악성으로 변할 때를 대비해 스스로 보호하는 방법을 정리했음

    • Extensions Update Notifier로 업데이트를 감시하고, 소유권 변경 여부를 확인함
    • Brave 브라우저에서는 brave://flags/#brave-extension-network-blocking 기능으로 트래픽 필터링 규칙을 직접 설정할 수 있음
    • GitHub 저장소를 클론 후 Claude Code로 보안 점검하고, 직접 빌드해 수동 업데이트하는 것도 방법임
      • 이 방법이 정말 좋다고 생각함
        혹시 확장 코드베이스를 결정론적으로 감사할 수 있는 도구가 있는지 궁금함
  • 나는 오직 오픈소스 확장 프로그램만 사용함
    uBlock Origin, SponsorBlock처럼 코드가 공개되고 개발자가 익명 아닌 경우만 신뢰함
    Chrome Web Store는 사실상 규제 없는 시장이고, Google은 수익만 챙김
    오픈소스만이 설치 전 코드를 직접 확인할 수 있는 최소한의 안전장치임

    • 신뢰할 만한 비익명 개발자의 오픈소스 확장은 좋은 신호지만, 실제 배포된 패키지가 공개 코드와 완전히 동일하다는 보장은 없음
      pip, npm, rpm 같은 다른 오픈소스 배포 채널도 마찬가지임
    • 그렇다면 설치된 확장 코드가 공개된 코드와 정확히 일치하는지 어떻게 검증할 수 있을까 궁금함
    • 그래서 Tampermonkey가 오픈소스가 아니라는 점이 아쉽다는 의견임
      관련 논의는 GitHub 토론에 있음
    • 모든 걸 직접 감사할 수는 없으니, 신뢰할 수 있는 기관의 검증 체계가 필요하다고 생각함
      “Google을 믿지 말자”보다 “제도를 개선하자”가 더 현실적인 접근임
    • 자동 업데이트를 끄고 버전 고정(version lock) 을 하는 것도 안전함
      Chrome보다는 Firefox나 Safari가 이런 설정에 유리함
  • 대부분의 확장 프로그램 코드는 난독화되어 있지만, 누구나 소스 코드를 볼 수 있음
    방법은 이 링크에 정리되어 있음
    나도 2천 명 정도가 쓰는 작은 확장을 운영 중인데, 악성 코드로 바꾸자는 매입 제안이 자주 옴
    예시는 One Click Image Saver

  • 초등학생 딸이 학교에서 Chromebook으로 Google Classroom을 쓰는데, 확장 프로그램 제한이 거의 없음
    로그인할 때마다 Chrome이 “악성 활동으로 인해 확장 프로그램이 제거됨”이라는 알림을 띄움

    • 딸이 확장이 카메라나 검색 기록을 훔치는 걸 모를 수도 있음
      그래서 아예 오픈소스 확장만 사용하거나 직접 만드는 게 낫다고 생각함
      간단한 기능이라면 Tampermonkey로 직접 작성하고 코드도 직접 검토할 수 있음
      요즘은 나도 대부분의 확장을 직접 만들어 씀
      Tampermonkey는 코드 수정과 검토가 간단하고, AI 도구로 보안 점검하기도 쉬움
  • 나는 자동 업데이트를 모든 소프트웨어에서 비활성화
    “즉시 업데이트 안 하면 해킹당한다”는 말은 허상임
    오히려 업데이트 후 해킹당할 가능성이 더 높다고 느낌

    • 결국 업데이트를 해도, 안 해도 위험한 상황
  • 신뢰할 수 없는 확장 프로그램은 언젠가 매각되어 악성 코드로 변할 가능성이 큼
    그래서 나는 오직 uBlock Origin만 설치함

    • 나도 10만 명 이상이 쓰는 확장을 운영 중인데, 매각 제안 메일이 수백 통이나 옴
      전부 Google이 강제한 공개 이메일 주소로 옴
      정작 유용한 메일은 한 통도 없었음
      그래서 나도 uBlock Origin, Bitwarden, 그리고 내가 만든 확장만 신뢰함
      예시는 Old Reddit Redirect
    • 나도 uBlock Origin만 씀
      예전엔 Tree Style Tab을 썼지만, Firefox가 세로 탭 기능을 기본 지원해서 이제 불필요함
      새 확장을 설치하는 건 너무 위험함
    • 참고로 uBlock Origin의 원조인 uBlock 프로젝트는 한때 신뢰할 수 없는 사람에게 넘어갔다가
      개발자 Raymond Hill이 다시 포크해서 만든 것임
  • 많은 확장이 검색 쿼리의 "u": "https://www.google.com/search?q=target"; 같은 URL 파라미터를 수집
    이는 단순한 브라우징 기록을 넘어서 인증 토큰까지 탈취할 수 있음을 의미함

    • 만약 어떤 서비스가 인증 토큰을 URL 파라미터로 전송한다면, 그 서비스 자체를 쓰지 말아야 함
      그런 토큰은 항상 공개 상태임
  • 세계에서 가장 부유한 회사 중 하나인 Google이 이런 문제를 왜 직접 해결하지 않았는지 의문임
    광고 차단기를 막는 데는 그렇게 열심인데, 이런 건 방치함

    • 어쩌면 Google이 이미 이 문제를 알고 있었을 수도 있음
      그렇다면 “왜 공개하지 않았는가”가 더 중요한 질문이 됨
  • macOS에서 설치된 모든 Chrome 확장 ID를 나열하는 명령어를 공유함

    find "$HOME/Library/Application Support/Google/Chrome" \
      -type d -path "*/Extensions/*" -not -path "*/Extensions/*/*" \
      -print 2>/dev/null | sed 's#.*/Extensions/##' | sort -u
    

    결과를 악성 확장 목록과 비교하면 됨