
수백만 개의 WordPress 사이트가 또다시 해킹되었습니다
요약
최근 WordPress 플러그인 포트폴리오를 매수한 공격자가 악성 코드를 삽입하여 수백만 개의 사이트를 해킹한 공급망 공격 사례를 다룹니다. WordPress 플러그인 아키텍처의 보안 취약점과 샌드박스 부재 문제를 지적하며, Cloudflare의 새로운 프로젝트를 소개합니다.
핵심 포인트
- 공격자가 플러그인 개발자로부터 포트폴리오를 직접 매수하여 합법적으로 제어권 장악
- WordPress 플러그인은 샌드박스 격리 없이 실행되어 데이터 및 서버 접근 권한을 가짐
- 취약점 악용이 아닌 공급망 공격(Supply Chain Attack) 형태의 새로운 위협 등장
- 플러그인 시스템의 구조적 보안 결함이 전체 생태계의 위협 요소로 작용
비디오: 수백만 개의 WordPress 사이트가 또다시 해킹되었습니다
채널: Fireship
길이: 5분 16초
출처: 자막 (자동 생성, 영어)
8개월 전, 어떤 천재적인 해커가 30개 이상의 WordPress 플러그인(plugins) 뒷문을 조용히 뚫고 들어갔으며, 지금까지 아무도 이를 알아차리지 못했습니다. 어찌 된 일인지, 단순한 UI 업데이트를 위한 이 방대한 WordPress 플러그인 모음이 미친 듯한 공급망 공격 (supply chain attack)을 통해 즉각적으로 악성 코드 (malware)로 변질되었습니다. 이는 방금 전까지 당신의 웹사이트에서 판매를 촉진하던 '카운트다운 타이머 얼티밋 플러그인'이, 다음 순간 당신의 서버를 원격 제어하는 악마가 되어 모든 데이터를 훔치고 당신 아내의 남자친구 사진을 Kiwi Farms에 유출하게 된다는 것을 의미합니다. WordPress는 여전히 세계에서 가장 인기 있는 웹사이트 빌더 (website builder)로 남아 있지만, 많은 이들이 WordPress의 플러그인 아키텍처 (plugin architecture)가 근본적으로 보안에 취약하다고 주장해 왔으며, 이를 대체하기 위한 완전히 새로운 솔루션이 등장했습니다. 오늘 영상에서는 최신의 잔혹한 익스플로잇 (exploit)이 어떻게 발생했는지 알아보고, WordPress를 역사 속으로 사라지게 만들고자 하는 Cloudflare의 새로운 프로젝트를 살펴보겠습니다.
2026년 4월 16일, 여러분은 The Code Report를 시청하고 계십니다. 저는 실제로 WordPress를 좋아하며 그것으로 많은 실패한 사이드 프로젝트를 만들어 왔지만, WordPress 생태계는 지난 몇 년간 격동의 시기를 겪었습니다. 창립자인 Matt Mullenweg는 작년에 Silver Lake가 소유한 WP Engine이 WordPress 호스팅을 통해 수익을 창출하며 자신의 몫을 가로채려 하자, 사모펀드 (private equity) 문제로 폭주했습니다. 그래서 당연하게도, 그는 자신의 로고를 사용하는 대가로 매출의 8%를 지불하라고 요구했습니다. 여러분도 알다시피, 저는 사모펀드가 Hooters의 사례처럼 모든 제품을 더 낫게 만들기 때문에 사모펀드의 열렬한 팬입니다만, WP Engine은 왕에게 로열티를 지불하기를 거부했습니다. 이는 Mullenweg를 더욱 격하게 폭주하게 만들었고, 그가 내뱉은 수많은 말들은 결국 WP Engine이 그를 상대로 명예훼손 소송을 제기하는 결과로 이어졌습니다.
그들은 오늘날까지도 법정에서 서로 싸우고 있으며, 그 뒷이야기는 훨씬 더 깊고 복잡하지만, WordPress에 있어 더 큰 문제는 새로운 취약점(vulnerabilities)의 물결을 겪고 있다는 것이며, 그중 96%가 플러그인 시스템의 직접적인 결과라는 점입니다. 핵심적인 문제는 WordPress 플러그인이 기본적으로 사이트에 바로 연결되어 모든 권한을 가지고 실행되는 단순한 PHP 스크립트라는 것입니다. 샌드박스(sandbox)나 격리(isolation)가 없습니다. 데이터베이스, 파일, 그리고 사용자의 개인 정보까지 모두 건드릴 수 있습니다. 따라서 플러그인을 설치한다는 것은, 기본적으로 낯선 사람이 모든 예외 상황(edge case), 익스플로잇(exploit), 그리고 잘못된 입력값(bad input)을 완벽하게 처리할 수 있기를 바라는 것과 같습니다. 하지만 정말 미친 점은, 최근 31개의 WordPress 플러그인을 대상으로 한 이 공격이 사실 잘못된 코드의 결과가 아니었다는 사실입니다.
그것은 당신의 잘못이 아닙니다.
훨씬 더 무서운 일이었습니다. 이 경우, 공격자는 취약점을 악용한 것이 아니었습니다. 대신, 그들은 Flippa에서 원래 개발자로부터 수십만 달러(mid six figures)로 추정되는 가격에 플러그인 포트폴리오를 단순히 돈을 주고 구매함으로써 합법적으로 이를 획득하고 제어권을 장악했습니다. 원래 개발자가 매각된 후, 새로운 구매자는 코드에 대한 제어권을 갖게 되었고 약 8개월 전에 백도어(back door)를 삽입했으며, 이는 적절한 순간을 기다리며 운영 환경(production)에서 잠복 상태로 머물러 있었습니다. 그러다 적절한 순간이 오자 악성 로직(malicious logic)이 활성화되어 원격 서버에 접속하고, 추가적인 페이로드(payloads)를 내려받았으며, 일부 사례에서는 데이터베이스 연결 정보와 보안 키와 같은 민감한 데이터를 포함하는 wp-config.php와 같은 핵심 파일(core files)을 수정했습니다. 그리고 듣기로는, 명령 및 제어(command and control) 도메인이 Ethereum 스마트 계약(smart contract)을 통해 확인되었다고 합니다. 따라서 익스플로잇이 알려지더라도, 공격자는 언제든지 스마트 계약을 업데이트하여 새로운 도메인을 가리키도록 할 수 있었습니다. 이는 상당히 영리한 수법이지만, 여기서 핵심적인 문제는 모든 것이 신뢰할 수 있는 출처로부터의 정상적인 플러그인 업데이트를 통해 전달되었다는 점입니다. 따라서 일반적인 피싱(phishing) 공격에 대한 통상적인 의심을 우회할 수 있었습니다.
이제 WordPress가 개입하여 해당 플러그인들을 삭제하기는 했지만, 이미 시스템 내부에는 피해가 발생했으며, 일상적인 유지보수처럼 보였던 것을 본격적인 공급망 공격 (supply chain compromise)으로 변질시켰습니다.
다행히도, 만약 오늘날 WordPress 사용을 고려하고 있다면, Cloudflare가 최근 m-라는 새로운 프로젝트를 만들었습니다. 이 프로젝트는 그 모든 오래되고 형편없는 PHP 코드를 가져와서, AI가 작성한 코드라는 훨씬 더 형편없는 JavaScript 코드로 바꿔버립니다. 이 프로젝트는 실제로 기존 WordPress 코드를 전혀 사용하지 않으며 MIT 라이선스를 따르지만, 기존 WordPress API와 완전히 호환되도록 설계되었습니다. 그리고 내부적으로는 콘텐츠 관리 시스템 (CMS)을 위해 멋진 Astro 프로젝트를 기반으로 합니다.
하지만 이 프로젝트를 특별하게 만드는 점은, 플러그인이 전체 권한을 가지고 제멋대로 실행되도록 내버려 두지 않는다는 것입니다. m-는 동적 워커 (dynamic worker)를 통해 각 플러그인을 자체적인 샌드박스 (sandbox) 안에 가둡니다. 프레임워크 자체는 데이터를 직접 넘겨주지 않습니다. 대신, 플러그인은 바인딩 (bindings)을 통해 특정 기능에만 접근할 수 있으며, 이는 매니페스트 (manifest)에서 명시적으로 요청했을 때만 가능합니다. 이는 플러그인에게 "안 돼, 안 돼, 거기 건드리지 마. 거기는 내 금지 구역이야"라고 말하는 것과 비슷합니다. 꽤 멋지지만, 과연 M dash가 WordPress를 완전히 끝장낼 수 있을까요? 대답은 아마 아닐 것이며, 확실히 조만간 일어날 일도 아닙니다.
하지만 저에게 가장 놀라운 점은, 개발자들이 아주 오랫동안 존재해 온 프레임워크들을 얼마나 빠르게 완전한 대체제로 출시할 수 있는지입니다. 그리고 이는 오늘 영상의 스폰서인 Warp와 같은 현대적인 AI 코딩 도구들 덕분에 가능해졌습니다. 만약 여러분이 Claude Code, Codex, Gemini CLI, 그리고 open code를 동시에 사용하며 '바이브 맥싱 (vibe maxing)'을 하고 있지만, 모든 에이전트 (agent)들의 흐름을 놓치고 있다면, 터미널을 에이전트 명령 센터로 바꿔주는 Warp의 새로운 유니버설 에이전트 지원 (universal agent support)을 확인해 봐야 합니다. 수직 탭 (Vertical tabs)을 사용하면 에이전트 세션들을 그룹화할 수 있고, Git 브랜치, 워크 트리 (work tree), 풀 리퀘스트 (pull request) 상태와 같은 유용한 메타데이터를 빠르게 확인할 수 있습니다. 이는 여러분의 터미널에 마침내 객체 영속성 (object permanence)이 생겼음을 의미합니다.
또한 탭 설정 (tab configs) 기능을 통해 여러분의 이상적인 설정을 저장하고, 나중에 즉시 다시 열 수 있습니다. 하지만 가장 좋은 점은 코딩 에이전트 (coding agents)가 주의를 필요로 할 때마다 Warp 내부와 데스크톱에서 알림을 받을 수 있다는 것입니다. 마치 헬리콥터 부모 (helicopter parent)처럼 30초마다 에이전트를 확인하는 대신 말이죠. 따라서 이미 마음에 드는 에이전트가 있거나 여러 에이전트를 동시에 실행해 보고 싶다면, 아래 링크를 통해 Warp를 무료로 확인해 보시는 것을 강력히 추천합니다. 지금까지 Code Report였습니다. 시청해 주셔서 감사하며, 다음 영상에서 뵙겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube Fireship (개발 트렌드)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기