# 누군가 워드프레스 플러그인 30개를 구매하고 그 모든 플러그인에 백도어를 심었음

> Clean Markdown view of GeekNews topic #28498. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28498](https://news.hada.io/topic?id=28498)
- GeekNews Markdown: [https://news.hada.io/topic/28498.md](https://news.hada.io/topic/28498.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-04-14T09:40:17+09:00
- Updated: 2026-04-14T09:40:17+09:00
- Original source: [anchor.host](https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/)
- Points: 6
- Comments: 8

## Topic Body

- 동일한 공격자가 30개 이상의 **WordPress 플러그인**을 매입한 뒤, 첫 커밋에서 **백도어 코드를 삽입**해 공급망을 감염시킴
- 악성 코드는 약 **8개월간 잠복**하다가 2026년 4월 초 활성화되어 다수의 사이트에 **스팸 링크와 리디렉션**을 주입
- WordPress.org는 2026년 4월 7일 하루 만에 관련 **31개 플러그인을 영구 폐쇄**하고 강제 업데이트를 배포
- 공격자는 Flippa에서 ‘Essential Plugin’ 포트폴리오를 **6자리 금액**에 인수한 뒤, **Ethereum 스마트 컨트랙트**를 이용해 C2 도메인을 은폐
- 이번 사건은 2017년 ‘Display Widgets’ 사례와 유사한 **대규모 공급망 공격 재현**으로, WordPress 플러그인 생태계의 **신뢰 관리 부재**가 드러남

---

### WordPress 플러그인 공급망 공격 사례
- 30개 이상의 **WordPress 플러그인**이 동일한 공격자에 의해 인수된 후 **백도어가 심어진 사건** 발생
- 공격자는 Flippa에서 ‘Essential Plugin’ 포트폴리오를 **6자리 금액**에 매입한 뒤, 첫 커밋에서 악성 코드를 추가
- 백도어는 8개월간 비활성 상태로 잠복하다가 2026년 4월 초에 활성화되어 수많은 사이트를 감염
- WordPress.org는 2026년 4월 7일 하루 만에 관련 플러그인 **31개를 영구 폐쇄**
- 이번 사건은 2017년 ‘Display Widgets’ 사건과 유사한 **공급망 공격 패턴의 재현**으로 평가됨

### 공격 발견과 초기 대응
- 한 클라이언트 사이트의 **wp-admin 보안 경고**를 통해 최초 감염이 확인됨
  - WordPress.org 플러그인 팀은 “Countdown Timer Ultimate” 플러그인에 **무단 접근 가능 코드**가 포함되었다고 경고
  - WordPress.org는 강제 업데이트(v2.6.9.1)를 배포했으나, 이미 일부 사이트는 손상된 상태였음
- 보안 점검 결과, 플러그인의 `wpos-analytics` 모듈이 **analytics.essentialplugin.com**에 접속해 `wp-comments-posts.php` 파일을 다운로드하고, 이를 통해 **wp-config.php에 대규모 PHP 코드 주입**이 이루어짐

### 악성코드의 작동 방식
- 주입된 코드는 **스팸 링크, 리디렉션, 가짜 페이지**를 C2 서버에서 받아와 Googlebot에만 노출
- 공격자는 **Ethereum 스마트 컨트랙트**를 이용해 C2 도메인을 동적으로 관리
  - 블록체인 RPC 엔드포인트를 통해 도메인을 조회하므로, 일반적인 도메인 차단으로는 차단 불가
- WordPress.org의 강제 업데이트는 플러그인의 전화 홈 기능만 중단시켰으며, **wp-config.php의 악성 코드**는 그대로 남아 있었음

### 백업 분석을 통한 감염 시점 추적
- CaptainCore의 **restic 백업**을 이용해 8개의 시점별 `wp-config.php` 파일 크기를 비교
  - 2026년 4월 6일 04:22~11:06 UTC 사이에 파일 크기가 3,345바이트에서 9,540바이트로 증가
  - 감염이 이 6시간 44분 사이에 발생한 것으로 확인됨

### 백도어의 삽입 시점과 코드 구조
- 플러그인 버전 2.6.7(2025년 8월 8일)에서 **191줄의 신규 코드**가 추가되며 백도어 삽입
  - 변경 로그에는 “WordPress 6.8.2 호환성 확인”이라고 기재되어 있었음
- 추가된 코드의 주요 기능
  1. `fetch_ver_info()`가 공격자 서버의 데이터를 `@unserialize()`로 처리
  2. `version_info_clean()`이 원격 데이터에서 받은 함수명을 실행
  3. 인증 없이 호출 가능한 REST API 엔드포인트 생성 (`permission_callback: __return_true`)
- 이 구조는 **임의 함수 실행(RCE)** 을 가능하게 하며, 8개월간 비활성 상태로 유지되다 2026년 4월 5~6일에 활성화됨

### 플러그인 인수 과정
- 원래 개발팀은 인도 기반의 **WP Online Support**로, 2015년부터 플러그인을 개발
  - 이후 **Essential Plugin**으로 리브랜딩하고 30개 이상의 무료·유료 플러그인을 운영
- 2024년 말 매출이 35~45% 감소하자 Flippa에 전체 사업을 매물로 등록
- 2025년 초, **‘Kris’라는 인물**이 SEO·암호화폐·온라인 도박 마케팅 경력을 가진 상태로 인수
  - Flippa는 2025년 7월 이 거래를 **성공 사례로 블로그에 게재**
- 인수 후 첫 SVN 커밋(2025년 8월 8일)에서 바로 백도어 코드가 추가됨
- 2026년 4월 5~6일, `analytics.essentialplugin.com`이 모든 사이트에 악성 페이로드를 배포 시작
- 2026년 4월 7일, WordPress.org가 **Essential Plugin의 모든 플러그인(31개)을 영구 폐쇄**

### 폐쇄된 플러그인 목록
- Accordion and Accordion Slider, Countdown Timer Ultimate, Popup Anything on Click, WP Blog and Widgets, WP Team Showcase and Slider 등 **30개 이상 플러그인**
- WordPress.org에서 해당 작성자 검색 시 결과 없음
- `analytics.essentialplugin.com`은 현재 `{"message":"closed"}` 응답 반환

### 과거 유사 사례
- 2017년, ‘Daley Tias’라는 인물이 **Display Widgets** 플러그인(20만 설치)을 $15,000에 매입 후 스팸 코드 삽입
- 이후 9개 이상의 플러그인을 같은 방식으로 감염
- 이번 사건은 동일한 수법을 **더 큰 규모(30개 이상)** 로 재현한 사례로 확인됨

### 피해 복구 및 패치 작업
- WordPress.org의 강제 업데이트는 임시 조치에 불과
  - `wpos-analytics` 모듈 자체는 여전히 존재
- 자체적으로 **백도어 모듈을 완전히 제거한 패치 버전** 제작
  - 22개 고객 사이트 중 12개에서 Essential Plugin 플러그인 발견, 10개를 직접 패치
  - 패치 버전은 `wpos-analytics` 디렉터리 삭제, 로더 함수 제거, 버전명에 `-patched` 추가
- 예시: Countdown Timer Ultimate, Popup Anything on Click, WP Testimonial with Widget 등

### 직접 패치 방법
- `wpos-analytics/` 디렉터리 삭제
- 메인 플러그인 파일에서 “Plugin Wpos Analytics Data Starts” 또는 `wpos_analytics_anl` 블록 제거
- `Version:` 헤더에 `-patched` 추가 후 재압축
- `wp plugin install your-plugin-patched.zip --force`로 설치
- `wp-config.php` 파일 크기가 약 6KB 증가했다면 **활성 감염 상태**로 간주하고 전체 복구 필요

### WordPress 플러그인 생태계의 신뢰 문제
- 최근 2주간 **공급망 공격이 연속 발생**
  - 신뢰받는 플러그인을 인수 후 악성 코드 삽입
  - WordPress.org 커밋 권한을 그대로 승계받아 검증 없이 배포
- WordPress.org에는 **소유권 변경 감시나 코드 재검토 절차가 없음**
  - 새로운 커미터 등록 시 사용자 알림이나 자동 리뷰 기능 부재
- 플러그인 팀의 대응은 신속했으나, **백도어 삽입 후 8개월간 탐지되지 않음**
- WordPress 사이트 운영자는 플러그인 목록을 점검하고, **Essential Plugin 계열 플러그인을 즉시 제거 또는 패치**, `wp-config.php` 파일도 반드시 확인 필요

## Comments



### Comment 55300

- Author: tebica
- Created: 2026-04-14T13:50:31+09:00
- Points: 1

수십년간 쓰고있는 워드프레스..  
최소한의 플러그인만 쓰고있지만 그래도 언제나 불안하네요.  
그래도 스태틱 보다는 아직도 편해서 이동하고 싶지는 않아요!

### Comment 55259

- Author: turastory
- Created: 2026-04-14T10:26:54+09:00
- Points: 1

요즘 공급망 공격 관련해서 소식들이 많군요ㅠ

### Comment 55327

- Author: tangokorea
- Created: 2026-04-14T21:11:48+09:00
- Points: 1
- Parent comment: 55259
- Depth: 1

그렇게 말입니다. 부쩍 급증한 했어요

### Comment 55250

- Author: xguru
- Created: 2026-04-14T09:44:46+09:00
- Points: 1

워드프레스는 정말.. 계속 문제가 나네요. 이미 사용중이시라면 관련글에 EmDash 같은 걸 참고하세요.  
전 이미 버리고 그냥 스태틱 페이지로 옮겼습니다.

### Comment 55334

- Author: colus001
- Created: 2026-04-14T22:48:34+09:00
- Points: 1
- Parent comment: 55250
- Depth: 1

EmDash 는 설치해봤는데, 일단 너무 느립니다. TTFB 가 뭐 기본 3초는 나와서, 이걸 진짜 쓰라고 만든건가 싶네요.

### Comment 55373

- Author: xguru
- Created: 2026-04-15T11:50:21+09:00
- Points: 1
- Parent comment: 55334
- Depth: 2

헛 글쿤요. 그럼 전 그냥 스태틱으로 만족하기로 ㅎㅎ

### Comment 55328

- Author: tangokorea
- Created: 2026-04-14T21:13:24+09:00
- Points: 1
- Parent comment: 55250
- Depth: 1

ai 로 정적페이지 관리가 레거시 코드로 뒤덥현 CMS 를 대체할 수 있겠구나 라는 생각들을 하게 되는 것 같습니다.

### Comment 55248

- Author: neo
- Created: 2026-04-14T09:40:18+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47755629) 
- Mythos에 대한 과장된 반응이 늘 웃김  
  자동화된 **취약점 탐지** 기술이 보안 업계를 흔들 수는 있겠지만, 진짜 걱정해야 할 건 그게 아님  
  지금의 기술 스택과 기업 거버넌스는 이미 시대에 뒤처져 있음  
  상황을 악화시킨 주범을 꼽자면 **암호화폐**임. 이로 인해 해킹이 수십억 달러 규모의 산업이 되었고, 북한 같은 국가까지 끌어들였음  
  이제는 단순히 종속성을 사들이거나 직원에게 돈을 주고 “실수”를 유도할 수도 있는 현실임  
  우리는 버그가 거의 없는 소프트웨어를 작성할 수 있지만, 대기업을 이 환경에서 안전하게 유지할 **계획**은 없음  
  자율형 LLM 에이전트가 랜섬웨어 조직에 쓰이겠지만, FreeBSD 익스플로잇을 쓸 필요는 없음
  - “버그가 거의 없는 소프트웨어를 쓸 수 있다”는 말에 의문이 듦  
    실제로 매주 **PrimeVue**, **Vue**, **Spring Boot**, **Oracle 드라이버**, **Ansible**, **Nvidia 드라이버** 등에서 버그를 마주침  
    현실적으로 완전한 무결점 코드는 항공기나 우주선 정도에서나 가능할 듯함  
    대부분의 개발자는 버그 없는 코드를 쓰지 않으려는 게 아니라, **환경적 제약** 때문에 불가능한 경우가 많음
  - **LAPSUS$** 사례처럼 단순히 직원에게 뇌물을 주는 방식으로 내부 접근 권한을 얻은 해킹 그룹도 있었음  
    이런 일은 이론이 아니라 현실임. 국가 단위의 자금력이라면 내부자 매수는 훨씬 쉬움
  - 이 문제는 기술보다 **조직 문화**의 문제로 봄  
    OSS 프로젝트는 대기업 소프트웨어보다 “WTF 버그”가 적음  
    혼자 개발하는 환경에서는 상식적으로 하지 않을 실수를 조직에서는 승인 절차나 관행 때문에 그대로 배포함  
    “이게 최선인가?”라는 질문을 던질 수 없는 **비정상적 문화**가 버그를 양산함  
    작은 팀에서는 바꾸기 쉽지만, 대규모 조직에서는 비용이 큼
  - 공격자가 **Ethereum 스마트 컨트랙트**를 통해 C2 도메인을 갱신할 수 있다면, 방화벽이 모든 Ethereum 엔드포인트를 차단해야 하는지 궁금함
  - [The Register 기사](https://www.theregister.com/2026/04/11/trivy_axios_supply_ch...)에서 말하듯, 공격자들이 공급망을 **비용-위험 분석** 대상으로 삼는 건 합리적인 전략임  

- 웹 프로젝트를 보면 항상 “npm install”로 시작하고, 수십 개의 라이브러리가 자동으로 설치됨  
  작성자조차 어떤 **전이적 의존성**이 포함됐는지 모르는 경우가 많음  
  이런 구조에서는 공급망 공격을 검증할 가능성이 거의 없음
  - 이런 이유로 나는 외부 패키지를 최대한 피함  
    최근 **Python 표준 라이브러리**만으로 [날씨 동기화 도구](https://github.com/tmoertel/tempest-personal-weather)를 작성했음  
    `requests` 같은 외부 패키지를 쓰지 않아도 충분했고, **의존성 없는 평안함**을 얻었음
  - “바퀴를 다시 만들지 말라”는 말이 있지만, **적절한 중간 지점**이 필요함  
    암호화 같은 핵심 로직은 직접 구현하면 안 되지만, 단순한 기능까지 라이브러리에 의존하는 건 과함
  - 이건 웹만의 문제가 아니라 **maven**, **Python**, **Ruby** 등 모든 생태계의 공통 문제임
  - **Lockfile**이 생각보다 큰 도움이 됨  
    버전이 고정돼 있으면, 패키지가 매각되어 백도어가 심어져도 직접 업데이트하기 전까지는 영향이 없음  
    오히려 **Dependabot**이 자동으로 “패치 버전” PR을 올려서 위험을 초래하는 경우가 더 무서움
  - 더 나쁜 건 `sudo curl URL | bash` 같은 습관임  

- 소프트웨어 **업데이트 이념** 자체가 문제라고 생각함  
  업데이트는 보안 패치라는 장점이 있지만, 동시에 개발자가 원치 않는 변경을 강제하거나 악의적으로 변할 위험도 있음  
  특히 개인 개발자의 **WordPress 확장**은 자동 업데이트를 절대 허용하지 않는 게 낫다고 봄  
  wordpress.org 마켓플레이스는 이런 구조를 지원하지 않아 위험함  
  나는 예전에 [Chrome 확장 관련 댓글](https://news.ycombinator.com/item?id=47721946#47724474)을 썼는데, Chrome을 WordPress로 바꿔도 여전히 그대로 적용됨  

- **WordPress 플러그인**의 공급망 공격면은 오래전부터 위험했음  
  개별 개발자가 만든 작은 플러그인을 다수 설치하도록 유도하는 생태계 구조 때문임  
  이미 신뢰를 얻은 플러그인을 **인수 후 악용**하는 건 매우 효율적인 공격 방식임  
  “업데이트 알림”이 곧 신뢰 신호로 작동하기 때문에 사용자는 작성자가 바뀌었는지도 모름  
  **패키지 서명 및 투명성 시스템**이 필요하지만, WordPress는 보안 인프라 개선 속도가 느림
  - 대부분 사용자가 무료 플러그인만 쓰려 해서 사이트가 **프리미엄+광고 플러그인**으로 뒤덮임  
    관리자 페이지가 마치 **IE6 툴바 밈**처럼 보일 정도였음
  - 클라이언트용 WordPress 사이트 제작을 그만둔 이유도 이 때문임  
    무료 버전의 **Securi**나 **Wordfence**를 설치만 하고 설정도 안 한 채로 완전한 보안을 기대하는 경우가 많았음
  - **wp.org**가 악성 행위자에게 너무 관대함  
    명백한 악성코드는 차단하지만, 제3자 도메인에서 광고 위젯을 삽입하는 식의 **bait-and-switch**는 묵인함  
    이런 수준이면 거의 **의도된 설계**로 봐야 함  

- **FAIR 패키지 매니저** 프로젝트가 성공하지 못한 게 아쉬움  
  [fair.pm](https://fair.pm/)은 **atproto**에서 영감을 받은 분산형 구조로, 중앙 저장소 없이 누구나 운영 가능함  
  패키지는 DID로 식별되고, **Socket** 같은 기관이 분석 결과를 “라벨러”로 부착할 수 있음  
  사용자는 특정 라벨이 붙은 패키지를 차단하거나, AI 기반 보안 분석 라벨러를 직접 운영할 수도 있음  
  완벽하진 않지만, 중앙집중형 패키지 매니저보다 훨씬 나은 접근임
  - 포기한 게 아니라 **기술 중심으로 전환**했음  
    현재 **Typo3 커뮤니티**와 협력 중이며, 다른 생태계로 확장 중임 (작성자가 FAIR 공동의장임)
  - npm 대안으로 흥미로운 플랫폼이 될 수 있음  
    WordPress보다 **인센티브 구조**가 낫지만, 여전히 충분하지 않을 수도 있음
  - 다수의 저장소가 **SEO용 악성 코드**로 채워질 가능성이 높다면, 검색 엔진만으로 안전한 저장소를 찾는 건 불가능함  
    분산화가 자유를 주긴 하지만, **사용자 입장에서는 불편함**이 큼
  - FAIR이 WordPress 전용인지 궁금함  

- 이번 사건의 흥미로운 점은 플러그인이 **Flippa**에서 인수되었다는 것임  
  Flippa는 WP 전용이 아닌 일반 소프트웨어 매매 마켓플레이스임  
  선의로 인수된 **인디 앱이나 확장**이 나중에 무기화될 가능성이 커서 우려됨  
  이런 앱은 진짜 운영자보다 **공격자에게 더 가치**가 있음  

- 가장 무서운 건 백도어 자체가 아니라, 인수가 너무 **정상적으로 보였다는 점**임  
  신뢰받던 플러그인을 사서 업데이트를 푸시하는 행위가 합법적 유지보수와 구분되지 않음  
  사용자가 의심할 **신호가 전혀 없음**  

- 시장 경쟁을 제한하는 **M&A**는 정부 승인을 받기도 함  
  그렇다면 보안에 중대한 영향을 미치는 인수도 **마켓플레이스나 정부의 승인 절차**가 필요하지 않을까 생각함  
  [Mergers and acquisitions 위키 문서](https://en.wikipedia.org/wiki/Mergers_and_acquisitions) 참고  

- WordPress는 플러그인 덕분에 훌륭했지만, 이제는 그 플러그인 구조 때문에 **위험한 생태계**가 되었음  
  나는 **Hugo**로 이전했고, 다른 사람들에게도 [이전 가이드](https://ashishb.net/tech/wordpress-to-hugo/)를 추천함  

- 기업들이 “IT 아웃소싱”을 하면서 얼마나 많은 **통제권**을 잃었는지 제대로 인식하지 못한 것 같음
