개요

저희 조사 결과, 처음에는 무해하고 서로 관련 없는 용도로 사용되던 여러 크롬 확장 프로그램들이 원격으로 제어되는 콘텐츠 삽입 도구로 변질되는 조직적인 공격 캠페인이 드러났습니다. 이 확장 프로그램들은 겉보기에는 무해해 보였고 특별한 권한도 요구하지 않았지만, 각각 공격자가 제어하는 ​​도메인에서 설정 파일을 주기적으로 다운로드하도록 수정되었습니다. 이러한 동적 규칙 덕분에 확장 프로그램들은 웹 스토어 업데이트 없이도 웹페이지 콘텐츠를 덮어쓰거나, 외부 HTML을 삽입하거나, 사용자가 방문하는 사이트를 조작할 수 있었습니다.

인프라 분석 결과, 해당 확장 프로그램의 악성 기능은 외부에서 도입된 것으로 밝혀졌습니다. 크롬 웹 스토어에서 소유권 이전 직후이는 여러 사례에서 관찰된 패턴입니다. 이와 동시에 원격 명령을 전달하는 데 사용되는 명령 및 제어(C2) 도메인이 등록되었습니다. 업데이트 내용이 유출되기 직전이는 공격자 인프라에 대한 계획적인 준비를 시사합니다. 동일한 주입 로직, 공유된 아키텍처 패턴, 동기화된 도메인 등록, 그리고 획득 후 코드 변경 사항의 수렴은 이러한 확장 프로그램이 공격의 일환으로 침해당하고 운영되었음을 나타냅니다. 조직적이고 인프라가 뒷받침된 캠페인 고립된 사건이 ​​아니라.

기술 분석

각 확장 프로그램은 서로 다른 무해한 기능을 제공하는 것처럼 보였지만, 내부 코드는 동일한 고위험 행위를 구현하고 있었습니다. 분석된 모든 확장 프로그램에서 반복적으로 나타나는 숨겨진 메커니즘을 통해 웹페이지를 원격으로 동적으로 조작할 수 있었습니다. 다음에서는 발견된 모든 확장 프로그램에서 공통적으로 나타나는 악성 행위에 대해 자세히 살펴보겠습니다.

  1. 원격 구성 가져오기

각 확장 프로그램은 5분마다 외부 서버에 접속하여 최신 구성 파일(config.php 또는 theme.php)을 다운로드했습니다.

이 파일에는 다음을 제어하는 ​​지침이 포함되어 있습니다.

  • 어떤 웹사이트를 타겟으로 삼을까요?
  • 어떤 DOM 요소를 수정해야 할까요?
  • 어떤 원격 페이로드를 주입해야 할까요?

그림 1. 'location.href'와 일치하는 정규 표현식

이러한 설정 파일은 공격자가 제어하는 ​​도메인에서 제공되므로 Chrome 웹 스토어를 통한 업데이트 없이도 확장 프로그램의 동작이 즉시 변경될 수 있습니다.

이 디자인은 효과적으로 다음과 같은 결과를 만들어냅니다. 명령 및 제어 채널 브라우저 내부에서.

  1. 동적 DOM 주입

다운로드한 구성 파일에는 다음과 같은 규칙이 정의되어 있습니다.

  • 무늬 – 대상 웹사이트와 일치하는 정규 표현식
  • 선택자 - 덮어쓸 DOM 요소
  • URL – 삽입된 HTML/텍스트를 제공하는 원격 엔드포인트
  • 속성 – 대체할 DOM 속성(예: innerHTML, src, href)

그림 2. DOM 객체 교체

해당 확장 프로그램은 이러한 규칙을 사용하여 공격자가 제어하는 ​​콘텐츠를 가져와 웹페이지에 직접 삽입했습니다.

이를 통해 원격 서버는 다음과 같은 작업을 수행할 수 있습니다.

  • 로그인 양식을 교체하세요
  • 피싱 오버레이를 삽입하세요
  • 금융 또는 쇼핑 페이지를 수정하세요
  • 광고 또는 추적 비콘을 삽입합니다.
  • 소셜 미디어 콘텐츠를 변경하세요

전부의 알림, 권한 또는 사용자 가시성 없이.

  1. MutationObservers를 통한 지속적인 조작

웹사이트에서 수정 사항을 되돌릴 수 없도록 하기 위해 확장 프로그램은 MutationObserver를 사용합니다. 

이 기능은 페이지가 업데이트될 때마다 주입된 콘텐츠를 지속적으로 다시 적용하여 지속적이고 은밀한 조작을 보장합니다.

이러한 확장 기능들은 원격 서버를 허용하도록 설계된 공통 아키텍처를 공유합니다. 사용자가 방문하는 모든 웹페이지를 다시 작성합니다.이는 조용히 그리고 반복적으로 이루어집니다. 이러한 행위는 무해한 유틸리티로 위장한, 매우 유연하고 위험한 브라우저 조작 프레임워크를 구성합니다.

인프라 분석

조사 결과, 확장 프로그램 소유권 이전, 신속하게 구축된 명령 및 제어(C2) 도메인, 동기화된 악성 업데이트 등 조직적인 생태계가 드러났습니다. 이는 이러한 확장 프로그램이 개별적인 사건이 아니라 구조화된 캠페인의 일환으로 침해당하고 운영되었음을 강력하게 시사합니다.

  1. 확장 소유권 이전 및 획득 후 무기화

크롬 웹 스토어의 과거 메타데이터를 분석한 결과, 확장 프로그램은 소유권이 변경되기 직전까지는 문제없이 작동했다는 일관된 패턴이 나타났습니다. 여러 샘플을 통해 다음과 같은 현상을 관찰했습니다.

  • 악성 업데이트 직전에 확장 프로그램 소유자 또는 개발자 정보가 변경되었습니다.
  • 이전 버전에서는 원격 구성 로직에 대한 증거가 발견되지 않았습니다.
  • 갑작스러운 삽입:
    • 원격 구성 파일의 주기적인 검색
    • DOM 재작성을 위한 규칙 집합
    • Beacon은 install.php를 호출합니다.
    • 영구 콘텐츠 조작을 가능하게 하는 지원 코드

사용자 리뷰는 이러한 타임라인을 뒷받침하며, 업데이트 직후 예상치 못한 동작이 발생했다고 지적합니다.

이는 학위 연장 남용 캠페인에서 흔히 사용되는 전략과 일맥상통합니다. 공격자들은 설치율이 높은 확장 프로그램을 구매한 후 모듈형 악성 프레임워크를 삽입합니다.

  1.  C2 도메인 등록과 악성 업데이트 간의 시간적 연관성

확장 프로그램에서 사용하는 인프라에 대한 WHOIS 기록 분석 결과, 놀라운 시간적 상관관계가 드러났습니다.

주요 관측 :

  • 도메인이 등록되었습니다 며칠에서 몇 주까지 악성 확장 프로그램 버전이 게시되기 전입니다.
  • 악성 업데이트는 온라인에 게시된 직후 거의 즉시 해당 도메인에 대한 쿼리를 시작했습니다.
  • 해당 도메인들은 유사한 명명 규칙과 인프라 특성을 공유하고 있어 중앙 집중식 프로비저닝을 시사합니다.

이러한 패턴은 공격자가 손상된 확장 프로그램을 활성화하기 직전에 운영 인프라를 준비하는 것과 일치합니다.

  1. 정상 버전과 악성 버전

이전 버전과 이후 버전 간의 코드 비교를 통해 명확한 변곡점을 확인할 수 있습니다.

타협 이전(양성) 버전

  • 광고된 기능(예: 이미지 편집, 비디오 감지, DOI 추출)만 포함되어 있었습니다.
  • 외부 구성 리소스가 없습니다.
  • 동적 콘텐츠 삽입은 없습니다.
  • 지속적인 모니터링 메커니즘(예: MutationObservers)이 없습니다.
  • 디버거 또는 지문 인식 API는 제공되지 않습니다.

사후 손상(악성) 버전

  • 원격 구성 검색 루프(일반적으로 5분 간격)를 추가했습니다.
  • 정규 표현식 일치 규칙을 사용하는 명령 기반 DOM 조작 기능을 도입했습니다.
  • 임의의 페이지 콘텐츠를 덮어쓸 수 있는 재사용 가능한 삽입 엔진이 내장되어 있습니다.
  • 공격자가 제어하는 ​​도메인으로 원격 측정 데이터를 전송하기 위한 통합 설치 비콘.

그림 3. kbaofbaehfbehifbkhplkifihabcicoi 전후

이러한 차이는 획득 후 의도적인 무기화라는 가설을 강력하게 뒷받침합니다.

  1. 공유된 툴킷 또는 통합된 위협 행위자의 징후

교차 확장 비교를 통해 높은 수준의 구조적 유사성이 밝혀졌습니다.

  • 동일한 폴링 간격(300초).
  • 원격 구성 규칙을 분석하는 데 거의 동일한 논리가 사용됩니다.
  • pathMatch, selector, applyMethod, resourceLink와 같은 필드 이름을 일관되게 지정합니다.
  • 반복적으로 사용되는 원격 엔드포인트(config.php, theme.php, install.php).
  • 유사한 오류 억제 패턴과 오류 발생 후에도 조용히 실패하는 fetch() 호출.
  • 삽입된 콘텐츠가 DOM 속성을 대체하는 방식의 패턴을 일치시킵니다.
확장자 ID 소유자 변경 도메인 등록 악성 버전이 배포되었습니다
kbaofbaehfbehifbkhplkifihabcicoi 2025-07-19 2025-07-27 2025-07-30
ijhbioflmfpgfmgapjnojopobfncdeif 2025-07-23 2025-08-20 2025-08-27
nimnhhcainjoacphlmhbkodofenjgobh 2025-07-19 2025-08-20 2025-08-22
jleonlfcaijhkgejhhjfjinedgficgaj 2025-04-14 2025-08-22 2025-08-26
pgfjnclkpdmocilijgalomiaokgjejdm 2025-07-19 2025-08-13 2025-08-16
eekibodjacokkihmicbjgdpdfhkjemlf 2025-09-21 2025-09-23 2025-09-25
ggjlkinaanncojaippgbndimlhcdlohf 2024-09-25 2024-09-30 2024-10-11
ncbknoohfjmcfneopnfkapmkblaenokb 2024-12-13 2025-02-03 2025-02-07

여러 독립적인 브랜드의 확장 프로그램에서 공통적으로 나타나는 현상은 악성 프레임워크를 개발한 단일 개발자가 있거나, 확장 프로그램 무기화 툴킷을 제공하는 범죄 조직이 있음을 시사합니다.

인프라, 일정 및 코드베이스 간의 관계를 종합적으로 살펴보면 이는 기회주의적이거나 무관한 악용이 아니라 조직적인 작전이었음을 알 수 있습니다.

2025년 12월 캠페인

LayerX Security는 이전에는 무해했던 브라우저 확장 프로그램이 악성 프로그램으로 변질되는 사례를 지속적으로 모니터링하고 있습니다. 12월에 동일한 제작자들이 게시한 여러 확장 프로그램이 악성 행위로 전환된 것을 추가로 확인했으며, 이는 무해한 확장 프로그램을 공격적인 애드웨어로 변환하는 데 초점을 맞춘 새로운 캠페인을 보여줍니다.

이 확장 프로그램은 처음에는 간단한 기능을 수행하는 무해해 보입니다. 그러나 명시된 기능 외에도 외부 서버에서 원격 구성을 가져옵니다. 이 구성에는 확장 프로그램이 악성 알림을 삽입하는 도메인 목록이 포함되어 있으며, 각 알림에는 감염 과정을 진행시키는 URL이 포함되어 있습니다.

그림 4. 검색된 구성 파일.

사용자가 이러한 도메인 중 하나를 방문하면 악성 알림이 즉시 표시되고 "사람 인증" 단계를 거치도록 요구됩니다.

그림 5. 가짜 알림.

인증 버튼을 누르면 사용자는 정적인 이미지만 표시되는 "로봇이 아닙니다" 페이지로 순차적으로 이동합니다. 그동안 백그라운드에서는 스크립트가 서비스 워커를 등록하고 사용자의 기기, 브라우저, 운영 체제 정보를 수집하여 pushtorm.net으로 전송합니다. 그런 다음 사용자는 알림 권한을 부여할지 묻는 메시지를 받게 됩니다.

그림 6. 권한 요청.

일단 권한이 부여되면, 해당 확장 프로그램은 동일한 리디렉션 및 알림 악용 메커니즘을 통해 반복적으로 성가신 광고를 표시하여 사용자를 지속적이고 공격적인 애드웨어에 노출시킵니다.

맺음말

분석 결과, 이러한 확장 프로그램들은 개별적인 악성 행위가 아니라 조직적이고 진화하는 배포 프레임워크의 구성 요소인 것으로 드러났습니다. 각 확장 프로그램은 서로 다른 무해한 기능을 제공했지만, 공통의 원격 제어 주입 엔진, 동일한 구성 로직, 그리고 일관된 5분 주기 폴링 방식을 공유했습니다.

인프라 분석에 따르면 대부분의 확장 기능은 다음과 같습니다. 소유권 이전 후에만 무기화됨그리고 공격자가 제어하는 ​​명령 및 제어 도메인은 다음과 같았습니다. 악성 업데이트 직전에 등록됨이러한 긴밀한 연관성은 합법적인 확장 프로그램을 확보하여 모듈식 콘텐츠 삽입 툴킷으로 개조하는 의도적이고 조직적인 캠페인임을 강력하게 시사합니다.

이러한 결과들을 종합해 보면 명확한 패턴이 드러납니다. 확장 가능하고 중앙에서 관리되는 이 시스템은 웹페이지를 조작하고, 임의의 페이로드를 배포하며, 새로운 웹 스토어 업데이트 없이도 빠르게 진화하도록 설계되었습니다. 이는 현행 확장 프로그램 검토 모델의 중요한 사각지대를 보여주며, 원격 구성 행위 및 획득 후 확장 프로그램 악용에 대한 더욱 강력한 탐지 필요성을 강조합니다.

IOC

확장 프로그램 ID - 현재 활성화된 확장 프로그램

ID 이름 설치하는 방법
kbaofbaehfbehifbkhplkifihabcicoi PhotoExpress 편집기 5,000
ijhbioflmfpgfmgapjnojopobfncdeif 크롬용 Canva 확장 프로그램 | 디자인, 예술 및 AI 편집기 1,000
nimnhhcainjoacphlmhbkodofenjgobh 인터넷 아카이브 세이버 2,000
jleonlfcaijhkgejhhjfjinedgficgaj CapCut 비디오 편집기 및 다운로더 6,000
pgfjnclkpdmocilijgalomiaokgjejdm Chrome용 SnapConnect 2,000
jnkmepoonohhfijlbajdphhinhkoefjn HP 인쇄 서비스 플러그인

 

1,000
gmmhcbmmnclgmmjimiiefhiagmpamdlb 무엇이든 수정하고, 모든 페이지를 홍보하세요. 780
ooobfpifjkgeopllkalfgkbiefhooggl 블루켓 해커 프로

 

2,000
cehifnkfcddaeppdajpfldbpommggaca 카훗 해커

 

1,000
eggegjdejilddmnlglakcaigeffcdaf 인터랙티브픽스

 

350

확장 프로그램 ID - 스토어 확장 프로그램에서 제거됨

ID 이름 설치하는 방법
eekibodjacokkihmicbjgdpdfhkjemlf 인터랙티브픽스 3,000
ggjlkinaanncojaippgbndimlhcdlohf PaperPanda — 수백만 편의 연구 논문을 찾아보세요 100,000
ncbknoohfjmcfneopnfkapmkblaenokb Vytal - 시간대, 지리적 위치, 지역 및 보안 위장 40,000

도메인 및 지원 이메일

TTP

술책 기술
자원 개발 LX2.001(T1588) – 역량 확보
자격 증명 액세스 LX8.008 – 네트워크 변조
발견 LX9.003 (T1082) – 시스템 정보 검색
명령 및 제어 LX11.004 – 네트워크 연결 설정
영향 LX13.004.1 (T1565) – 데이터 조작: 콘텐츠 조작

개선 및 완화

사용자 용

  • 원격 설정 파일을 불러오는 확장 프로그램을 제거하세요. 알 수 없는 서버에서 config.php 또는 theme.php 파일을 가져오는 모든 확장 프로그램은 위험합니다.

  • 명확한 이유 없이 웹 콘텐츠를 수정하는 확장 프로그램은 사용하지 마십시오. DOM 재작성과 원격 콘텐츠 수정은 위험도가 매우 높습니다.

  • 평판이 좋고 잘 알려진 개발자의 확장 프로그램을 선호하세요. "신규", "알 수 없는" 또는 리뷰 수가 적은 확장 프로그램은 피하세요.

  • 크롬에 내장된 확장 프로그램 도구를 사용하여 확장 프로그램 활동을 검토하고 예기치 않은 네트워크 연결이 있는지 확인하십시오.

보안 팀을 위해

  • 일반적인 아티팩트 감지 - 다음과 같은 확장 프로그램에 플래그를 지정합니다.

    • 원격 주입 구성 가져오기
    • 타임스탬프가 포함된 캐시 우회 쿼리를 사용하세요.
    • 셀렉터와 패턴을 사용하여 주입 규칙을 정의합니다.
    • MutationObserver를 적극적으로 활용하세요
    • 크롬 디버거 API를 불필요하게 사용하지 마세요.
  • 행동 샌드박스 테스트 수행 - 모니터링:

    • DOM 변경
    • 발신 네트워크 통화
    • 수정된 요소
      원격 구성 가져오기의 타이밍
  • 알려진 악성 자산 도메인을 차단하세요. 이러한 확장자 계열과 관련된 도메인을 모니터링하세요.