HOME
Newspaper 워드프레스

Newspaper 테마 – 멀웨어 (wp-zexit 플러그인) 발견 및 조치

on
2023-09-25

관리하는 워드프레스 사이트 하나가 며칠 전부터 로딩 속도가 굉장히 느려졌다. 특히 상단 admin bar의 로딩이 너무 늦다. 다른 업무로 바빠서 나뒀는데 오늘은 사이트를 접속하니 V3에서 해로운 사이트로 경고창이 떴다.

상당히 당황스럽다. 설마 멀웨어가… php 버전을 업데이트 하긴 해야하는데 그것이 문제인가..?

어쩔 수 없이 오늘은 해당 사이트 문제 해결을 하는데 시간을 써보기로 했다.

결론적으로 일단의 조치를 취했는데 효과가 있어서 공유해본다.

문제 살펴보기

해당 사이트의 테마는 Newspaper(뉴스페이퍼) 테마로 국내 유저들에게도 알려진 뉴스 및 매거진 전용 테마이다. 크롬 개발자 도구로 네트워크 영역을 살펴봤더니 DOM이 구성된 후에 다수의 스크립트 파일을 가져오는데 시간이 상당히 걸렸다. 기존에 보였던 자원들이 아닌데 틀림없이 누군가 사이트에 장난을 치고 있다. 💢

일단은 멀웨어 때문에 외부와 데이트를 주고 받는 스크립트들이 생긴 것으로 판단되었다. js 파일들을 가만히 보니 광고와 관련된 것들도 보이고. 혹시 내 자원을 본인들 광고하는데 사용하는 건지도 모르겠다. 멀웨어가 의심되면 가장 편하게 찾게 되는 것이 멀웨어 스캔 플러그인이다.

Anti-Malware Security and Brute-Force Firewall라는 플러그인을 설치하고 스캔을 돌렸는데 아무것도 발견되지 않았다. 이러면 코드를 다 까봐야 된다는 것인데….😭

편집기를 열어서 우선 플러그인 폴더를 살펴보니 내가 설치하지 않은 플러그인이 떡 하니 설치되어 있다.

wp-zexit 이름만 봐도 뭔가 구린 것이 백도어가 되기에 충분한 이름이다.

해결

wp-zexit로 구글링을 해보니 역시 이미 문제를 겪고 있는 사람들이 있다. 최근 며칠 레딧의 워드프레스 포럼에서 wp-zexit라는 주제로 논의가 벌어지고 있었다.

여러 가지 유의미한 정보가 적혀 있어서 해당 내용을 기반으로 문제를 해결해 보기로 했다.

우선 wp-zexit가 설치된 주 원인은 바로 Newspaper테마를 사용하면 반드시 사용해야 하는 플러그인 중 하나인 ‘td-composer’였다.

포럼에는 Newspaper테마에 문제가 많다는 의견을 내는 이들이 있는 것을 보니 사용자로서 뭔가 찝찝한 기분이 든다. 테마 갈아타려면 작업할 게 만만치 않은데 말이다.

포럼에서 제시된 내용을 참고하여 수행한 내용은 아래와 같다.

#첫번째 – 사용자 리스트에 greeceman이라는 사용자가 등록되었는지 확인. -> 확인 후 삭제함.

회원 가입이 허용되는 사이트도 아닌데 어떻게 신규 사용자를 생성했지? 대체 newspaper테마는 왜 이렇게 허술하게 만든거지?

#두번째 – wp/content/plugins/td-composer/css-live/css-live.php 파일에서 특정 구문 삭제 혹은 주석처리

// if ( !empty( $css_buffer ) ) {

// echo ' <style id="tdw-css-placeholder">' . $css_buffer . '</style>';

// }

결국 td_live_css_inject_css 함수에서 내용을 지우는 셈이다.

#세번째 – td_live_css_local_storage라는 wp_option을 삭제해야 한다.

td_llive_css_local_storage의 값이 무엇인지 확인해보니 배열로 된 데이터인데 첫번째 value는 ‘0’, 두번째 value는 ‘css’로 나왔다. 별 내용은 없지만, 아무튼 삭제.

차후에 해당 값으로 지속적으로 장난칠 듯 하여 난 아예 init 훅으로 페이지가 로딩되기도 전에 해당 옵션 값을 지우도록 세팅해 놓았다.

이렇게 3가지를 처리하니까 기존에 요청되던 스크립트 일부가 사라진 것으로 보였다. 여기까지 진행하면 V3에서도 유해한 사이트라는 메시지를 띄우지 않게 되었다.

난 추가적으로 확실하게 td_live_css_local_storage와 관련된 함수 적용을 막고 싶어서 td-composer 플러그인 폴더의 css-analyze/includes/td_analyze_css_storage.php 파일에서 관련된 내용을 추가로 주석 처리해버렸다.

이렇게 하고 나니 불필요한 스크립트 요청이 싹 사라짐. 그러나 예전에 비해서 admin-ajax 처리 시간이 좀 딜레이 되는 듯 해서 웬만한 파일들을 다 확인했으나 원인을 찾지 못함.

아무튼 이렇게 잘 나가는 테마가 보안이 허술하다니…

추가) 다 해결된 것이 아님

결국 취약점이 다 해결된 것이 아니다 보니 멀웨어 활동이 감지되어 서버 이전 및 테마 변경함. 😆


reddit 포럼 : https://www.reddit.com/r/Wordpress/comments/16nlg60/wpzexit/

TAGS

Comments

RELATED POSTS
검색하기