홈으로 돌아가기

YouTube 패널로 위장한 악성 Chrome 확장 프로그램

YouTube 패널로 위장한 악성 Chrome 확장 프로그램의 기술 분석. 선언된 기능 부재, 원격 인터페이스 관리 존재, 사용자 데이터 수집, 타사 도메인을 통한 숨겨진 수익화 시연.

악성 Chrome 확장 프로그램의 모습: 가짜 YouTube 패널 분석
Advertisement 728x90

YouTube 사이드바로 위장한 악성 Chrome 확장 프로그램 분석

Chrome Web Store에서 "Youside — YouTube Sidebar"라는 Chrome 확장 프로그램이 발견되었습니다. 이 확장은 YouTube 기능과 무관합니다. 약속된 기능—내장 플레이어, 구독 관리, 빠른 액세스—대신 타사 백엔드용 슬림 클라이언트를 구현하며, 원격 인터페이스 제어, 사용자 데이터 수집, 숨겨진 수익화가 포함되어 있습니다.

아키텍처: 로직 없는 클라이언트

ID가 mmecpiobcdbjkaijljohghhpfgngpjmk인 이 확장은 전형적인 악성 소프트웨어 아키텍처를 보여줍니다: 최소한의 로컬 로직과 외부 서버에 대한 과도한 의존성입니다. 실행 시 localStorage에서 영속적인 user_id를 생성하거나 불러온 후 https://mines.cloudapi.stream/user_info의 API를 쿼리합니다. 서버 응답이 사용자 인터페이스 동작을 완전히 좌우합니다—요소 가시성부터 HTML 블록 내용까지.

주요 특징:

Google AdInline article slot
  • YouTube API나 youtube.com 도메인 호출 없음
  • IFrame Player API 구현 없음
  • 구독 처리, 비디오 검색, 비디오 스트리밍 로직 없음
  • 모든 동작이 외부 서버 응답으로 제어됨

이 구조는 공격자들이 스토어에서 코드 업데이트 없이도 확장의 동작을 동적으로 변경할 수 있게 합니다.

원격 인터페이스 제어

서버는 success, is_valid, rating, protxt 같은 필드를 포함한 JSON 객체를 반환합니다. 클라이언트는 검증 없이 이 데이터를 DOM에 직접 적용합니다:

if (result.is_valid) {
  proplansID.classList.add('h_');
  playBtn.classList.remove('h_');
} else {
  playBtn.classList.add('h_');
}

이 접근 방식은 기능 플래그를 모방하지만 주입 공격에 대한 보호가 없습니다. 직접적인 HTML 삽입은 특히 위험합니다:

Google AdInline article slot
if (result.protxt) {
  proplansID.innerHTML = result.protxt;
}

내용이 필터링이나 세정되지 않았기 때문에 서버는 innerHTML을 통해 임의의 JavaScript를 주입할 수 있으며, 확장의 격리된 컨텍스트에서도 XSS 공격을 가능하게 합니다.

숨겨진 수익화와 추적

.buyBtn 클래스를 가진 모든 버튼이 가로채여 외부 도메인으로 리다이렉트됩니다:

document.querySelectorAll('.buyBtn').forEach(btn => {
  btn.setAttribute(
    'href',
    `https://topup.cloudapi.stream/?user_id=${encodeURIComponent(localStorage.getItem("user_id"))}&type=game`
  );
});

이 요소 클릭 시 사용자의 고유 ID가 URL 매개변수로 전달되어 사용자 동작을 프로필과 연결합니다. 이를 통해 수익화나 추가 프로파일링이 가능합니다.

Google AdInline article slot

신뢰성 있는 추적을 위해 다음을 결합합니다:

  • localStorageuser_id (영속적 식별자)
  • chrome.runtime.id (브라우저 내 고유 확장 ID)
  • navigator.language (사용자 언어 코드)

이 조합은 IP 변경이나 쿠키 삭제 시에도 높은 정확도의 식별을 보장합니다.

약속된 기능 부재

스토어 설명에도 불구하고 이 확장은 YouTube 관련 코드가 전혀 없습니다:

  • YouTube Data API 호출 없음
  • iframe을 통한 내장 비디오 플레이어 없음
  • 재생 이벤트 처리 없음
  • 플레이리스트나 채널 로직 없음

YouTube와의 유일한 상호작용은 Play 버튼 클릭 시 리다이렉트입니다:

playBtn.addEventListener("click", () => {
  window.location = "https://youtube.com/";
});

이는 확장이 유용한 도구의 외관일 뿐이며, 실제 목적이 데이터 수집과 트래픽 수익화임을 확인합니다.

주요 요약

  • 확장은 약속된 YouTube 기능을 제공하지 않습니다.
  • 인터페이스가 보안되지 않은 API를 통해 외부 서버에 의해 완전히 제어됩니다.
  • 임의의 HTML 주입이 가능하며 XSS 위험이 있습니다.
  • 결합된 식별자를 통한 숨겨진 사용자 추적.
  • 모든 수익화 링크가 user_id를 전달하며 타사 도메인으로 리다이렉트됩니다.

— Editorial Team

Advertisement 728x90

다음 읽기