워드프레스 강좌 / 멀웨어 제거, 치료하는 방법

워드프레스와 멀웨어

워드프레스를 사용하는 사이트가 많다보니 공격도 많이 당합니다. 멀웨어에 감염되어서 사이트가 느려지거나, 서버 자원을 필요 이상으로 소비하거나, 다른 사이트로 리다이렉트시키는 등의 문제가 발생합니다.

멀웨어에 감염되면 index.php나 wp-config.php 등 주요 파일이 변형됩니다. 그리고 이상한 파일이 여기저기 잔뜩 생성됩니다. 따라서 치료 방법은 단순합니다. 변형된 파일은 문제 없는 파일로 교체하고, 이상한 파일은 삭제하면 됩니다.

문제는 그러한 파일을 찾는 게 쉽지 않다는 것입니다. 어떻게 처리하는 게 가장 수월할까요?

치료하기 전에

백업

감염된 상태이기는 하지만, 혹시 필요할 수 있으니 백업합니다.

.htaccess, wp-config.php

  • 아래 방법을 적용하기 전에 제일 먼저 할 것은 .htaccess와 wp-config.php의 감염 여부를 확인하는 것입니다. 워드프레스를 설치, 운영하면서 생성된 파일이기 때문입니다.
  • 실행 권한이 있다면 권한을 제거하고, 파일을 열어서 이상한 코드가 있다면 삭제합니다. wp-config.php는 wp-config-sample.php와 비교하면 찾기가 수월합니다.
  • 감염되기 전의 백업 파일이 있다면, 그 파일과 비교해도 됩니다.

비밀번호 변경

  • 워드프레스 로그인 비밀번호부터 호스팅 계정의 비밀번호, 데이터베이스 비밀번호 등 바꿀 수 있는 비밀번호는 다 바꿉니다.
  • 만약 데이터베이스의 비밀번호를 바꾸었다면 wp-config.php에 있는 비밀번호도 수정해주여야 합니다. 코드는 다음처럼 생겼습니다.
define('DB_PASSWORD', 'xxx');

플러그인을 사용할 수 있는 경우

감염된 파일을 찾는 방법은 여러 가지가 있지만, 플러그인의 도움을 받는 게 쉽습니다. 관련 플러그인이 여러 가지가 있는데, 사용자가 많은 Wordfence Security를 사용해보겠습니다.

플러그인을 설치하고 활성화합니다. 이메일을 등록하라고 나오는데, 등록해야 사용 가능합니다.

[Wordfence - Scan]에서 START NEW SCAN을 클릭하면 검사합니다.

검사 결과는 다음처럼 나옵니다.

  • 기존 파일에 악성 코드가 추가된 것은 REPAIR를 클릭해서 교체를 할 수 있습니다.
  • REPAIR가 없는 것은 새로 추가된 악성 파일입니다. FTP 등으로 접속해서 삭제합니다.

플러그인을 사용할 수 없는 경우

만약 플러그인을 사용할 수 없다면 지울 수 있는 것은 다 지우고 깨끗한 파일로 교체합니다.

워드프레스 코어

  • 사용중인 버전과 같은 버전의 워드프레스를 다운로드합니다.
  • wp-content 디렉토리와 .htaccess와 wp-config.php를 제외한 나머지를 다 지웁니다.
  • 다운로드 한 워드프레스를 wp-content를 제외하고 업로드합니다.

플러그인과 테마

  • 플러그인과 테마도 코어를 처리한 방식과 같은 방식으로 교체합니다. 즉, 플러그인과 테마를 새로 다운로드하고, 기존 파일들을 삭제한 후, 다운로드한 것을 업로드합니다.

사용자가 업로드한 파일들

  • 코어와 플러그인, 테마를 교체해도 문제가 계속 된다면 남아있는 건 wp-content/uploads 디렉토리입니다.
  • 사용자가 업로드한 파일들, 플러그인 등이 생성한 파일들은 wp-content/uploads 디렉토리에 모여있는데, 여기는 하나씩 살펴보는 수밖에 없습니다.

같은 카테고리의 다른 글

워드프레스 / 우커머스 / 구입 완료 페이지에 구글 애드 전환 추적 코드 넣는 방법

워드프레스 / 우커머스 / 구입 완료 페이지에 구글 애드 전환 추적 코드 넣는 방법

구글 광고를 하면, 그 광고를 클릭한 후 어떤 액션이 있을 때 기록을 할 수 있습니다. 이를 전환이라고 합니다. 예를 들어 쇼핑몰이라면, 구글 광고를 클릭하고 들어와서 상품 구매 완료 시 신호를 보내서 기록을 하는 것이죠. 그러면 광고 효과 분석이 용이해집니다. 이를 하기 위해서는 전체 사이트 태그, 이벤트 스니펫 두 가지 코드를 넣어야 ...

워드프레스 강좌 / 플러그인 / WP Super Cache / 캐시를 이용하여 사이트 속도 빠르게 해주는 플러그인

워드프레스 강좌 / 플러그인 / WP Super Cache / 캐시를 이용하여 사이트 속도 빠르게 해주는 플러그인

WP Super Cache 웹사이트 속도는 중요합니다. 홈페이지에 접속했을 때 속도가 느리다면 방문자가 금방 떠나고, 검색 엔진에서도 불이익을 받습니다. 따라서 속도 개선은 사이트 관리자의 중요 업무 중의 하나입니다. 워드프레스는 기본적으로 페이지를 동적으로 만듭니다. 요청이 있으면 데이터베이스에서 자료를 가져와서 테마의 파일들을 이용해 출력을 하기에, 방문자가 접속할 때마다 페이지를 생성합니다. 그래서 정적인 페이지보다 속도가 느립니다. 이를 ...

워드프레스 강좌 / 자동 업데이트와 자동 업데이트 끄는 방법

워드프레스 강좌 / 자동 업데이트와 자동 업데이트 끄는 방법

자동 업데이트 워드프레스는 코어, 플러그인, 테마, 번역 네가지 분류로 업데이트를 하고, 업데이트는 보통 마이너 업데이트, 메이저 업데이트로 구분합니다. (코어는 워드프레스 자체를 의미합니다.) 워드프레스 기본 설정 하에서는 마이너 업데이트와 번역 업데이트는 자동으로 업데이트합니다. 즉, 사용자가 아무런 작업을 하지 않아도 백그라운드에서 업데이트를 해버리는 것이죠. 메이저 업데이트는 알림이 뜨고, 사용자가 직접 업데이트를 합니다. 보안 측면에서는 자동 ...

워드프레스 강좌 / 플러그인 / Google Site Kit by Google / 구글 서비스 통계 보여주는 플러그인

워드프레스 강좌 / 플러그인 / Google Site Kit by Google / 구글 서비스 통계 보여주는 플러그인

사이트나 블로그를 구글 검색 엔진에 등록하려면 Search Console을 이용합니다. 접속 통계는 Google Analytics를 이용하죠. 수익을 얻고 싶다면 구글 애드센스 광고를 게재합니다. 각 서비스의 분석 결과를 보려면 각 사이트에 접속을 해야 하는데, 꽤 귀찮은 작업니다. 만약 워드프레스로 사이트나 블로그를 만들었다면 Google Site Kit by Google 플러그인을 설치하세요. 워드프레스 관리자에서 주요 분석 자료를 ...

워드프레스 / 우커머스 / 잡다한 정보들

상품 페이지 라이트박스 제거 functions.php에 다음 코드 추가 add_filter( 'woocommerce_single_product_image_thumbnail_html', 'wc_remove_link_on_thumbnails' ); function wc_remove_link_on_thumbnails( $html ) { return strip_tags( $html, '<img>' ); } 우커머스 스타일 제거 functions.php에 다음 코드 추가 add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' ); 관련 상품 제거 CSS에 다음 코드 추가 .single-product .related.products { display: none; } Database Pending 작업 실행하는 방법 예약된 데이터베이스 작업이 진행되지 않는다면 강제로 실행할 수 있습니다. ...

워드프레스 강좌 / 플러그인 / GS Logo Slider Lite / 파트너, 고객사 로고 슬라이더 만드는 플러그인

워드프레스 강좌 / 플러그인 / GS Logo Slider Lite / 파트너, 고객사 로고 슬라이더 만드는 플러그인

기업 홈페이지에 가면 파트너 또는 고객사 로고가 가로 방향으로 흘러가는 것을 볼 수 있습니다. 이를 보통 로고 슬라이더라고 합니다. 로고 슬라이더는 직접 코딩하거나 공개된 오픈 소스를 이용하여 만들 수 있는데, 워드프레스라면 플러그인으로 쉽게 구현할 수 있습니다. 플러그인 추가 화면에서 logo slider로 검색하면 상당히 많은 플러그인이 나오는데, 사용법은 비슷합니다. 가장 먼저 나오는 ...

워드프레스 강좌 / 언어 변경하기

워드프레스 강좌 / 언어 변경하기

언어 변경 워드프레스를 특정 언어로 설치한 후에 다른 언어로 변경할 수 있습니다. 언어 변경에는 사이트 전체 언어 변경과 사용자별 언어 변경 두 가지가 있습니다. 사이트 전체 언어 변경 사이트 전체 언어 변경은 에서 합니다. 에서... 원하는 언어를 선택한 후... 을 클릭하면... 적용됩니다. 사용자별 언어 변경 사용자별로 다른 언어를 사용할 수 있습니다. 사용자의 프로필로 이동한 후 에서 ...

워드프레스 강좌 / 플러그인 / Loco Translate / 번역 파일을 수정하거나 새로 만드는 플러그인

워드프레스 강좌 / 플러그인 / Loco Translate / 번역 파일을 수정하거나 새로 만드는 플러그인

번역 워드프레스, 플러그인, 테마는 번역 파일을 이용해서 각 나라의 언어로 표현될 수 있도록 만들어집니다. 번역 파일은 보통 자동으로 설치되고, 다운로드 받아서 사용할 수도 있습니다. 하지만, 번역 파일이 존재하지 않는 플러그인이나 테마가 있을 수도 있고, 번역 파일이 있어도 번역이 마음에 들지 않을 수도 있습니다. 그럴 땐 직접 번역 파일을 만들거나 수정하여 사용할 수 있습니다. Loco Translate Loco ...

워드프레스 강좌 / 플러그인 / Search Exclude / 글 또는 페이지를 검색에서 제외시키는 플러그인

워드프레스 강좌 / 플러그인 / Search Exclude / 글 또는 페이지를 검색에서 제외시키는 플러그인

워드프레스는 검색 기능을 갖고 있습니다. 글이나 페이지를 검색할 수 있는 기능인데, 대부분의 테마는 검색 기능을 사용할 수 있게 해놓았습니다. 워드프레스 공식 테마 중의 하나인 Twenty Twenty라면, 상단 오른쪽의 돋보기 아이콘을 클릭하여 검색할 수 있습니다. 흔한 경우는 아니지만, 특정 글이나 페이지가 검색에서 노출되지 않도록 해야할 때가 있습니다. URL을 정확히 아는 사람만 내용을 볼 ...

워드프레스 강좌 / 데모 콘텐츠 추가하는 방법

워드프레스 강좌 / 데모 콘텐츠 추가하는 방법

워드프레스를 공부하거나 테마를 만들 때, 빈 워드프레스 사이트보다는 콘텐츠가 어느 정도 있는 것이 편합니다. 테스트를 위한 콘텐츠를 만드는 방법은 몇 가지가 있는데, 그 중 한가지 방법은 WordPress.ORG에 있는 Theme Unit Test를 이용하는 것입니다. 이를 이용하여 콘텐츠를 추가하는 방법을 알아보겠습니다. Theme Unit Test 다운로드 Theme Unit Test 사이트에 접속합니다. 화살표가 가리키는 링크를 클릭하여 XML ...