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

워드프레스와 멀웨어

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

멀웨어에 감염되면 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 디렉토리에 모여있는데, 여기는 하나씩 살펴보는 수밖에 없습니다.

같은 카테고리의 다른 글

워드프레스 / 우커머스 / 상점 페이지, 카테고리 페이지 등에서 진열되는 상품 수 설정하는 방법

워드프레스 / 우커머스 / 상점 페이지, 카테고리 페이지 등에서 진열되는 상품 수 설정하는 방법

기본적인 설정 방법 를 변경하면 진열되는 상품의 개수도 바뀝니다. 만약 이 방법이 통하지 않거나, 포스트와 다른 개수로 정하고 싶다면 아래의 방법을 이용합니다. 우커머스에서 제공하는 코드 우커머스에서는 아래의 코드를 functions.php에 추가하면 된다고 합니다. 15를 적절히 수정합니다. function new_loop_shop_per_page( $cols ) { $cols = 15; return $cols; } add_filter( 'loop_shop_per_page', ...

워드프레스 강좌 / 플러그인 / Responsive Lightbox & Gallery / 이미지 클릭했을 때 확대하는 플러그인

워드프레스 강좌 / 플러그인 / Responsive Lightbox & Gallery / 이미지 클릭했을 때 확대하는 플러그인

워드프레스 테마는 일반적으로, 이미지를 본문에 넣을 때 이미지가 아무리 커도 본문 가로폭을 넘어가지 못하게 만듭니다. 보기에는 좋지만, 그렇게 하면 큰 이미지가 작게 보여서 이미지 안의 내용을 보기 힘들 수가 있습니다. 이를 해결하는 방법은 라이트박스 플러그인을 사용하는 것입니다. 이미지를 클릭하면 원본 이미지로 또는 크게 확대 되는 걸 본 적 있으시죠? 그게 ...

워드프레스 강좌 / Compress JPEG & PNG images / 이미지 압축 플러그인

워드프레스 강좌 / Compress JPEG & PNG images / 이미지 압축 플러그인

워드프레스에 이미지를 업로드하면, 여러 가지 크기의 썸네일이 만들어져서 디스크를 많이 사용하게 됩니다. 따라서 디스크 사용량을 줄이고 싶을 때 제일 먼저 하는 것이 이미지 압축입니다. 이미지를 압축하는 방법은 여러 가지가 있는데, 그 중 하나가 플러그인을 이용하는 것입니다. Compress JPEG & PNG images는 이미지 압축을 도와주는 플러그인입니다. Smush와는 다르게 원본 이미지 압축도 가능합니다.(Smush도 유료는 원본 ...

워드프레스 강좌 / Shortcode로 애드센스 광고 본문에 삽입하는 방법

워드프레스로 만든 사이트에 애드센스 광고를 다는 방법은 여러 가지입니다. 사이드바에 넣고 싶다면 위젯 설정에서 사용자 정의 HTML을 이용하면 됩니다. 본문 상단이나 하단에 넣고 싶다면 플러그인을 사용하는 게 편합니다. 만약 본문 중간 원하는 위치에 광고를 넣고 싶다면 어떻게 할까요? 그 때는 쇼트코드(Shortcode)를 이용하는 게 편합니다. 테마의 functions.php에 다음 코드를 추가합니다. 애드센스 광고 ...

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

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

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

워드프레스 강좌 / 플러그인 / Duplicate Menu / 메뉴 복사하는 플러그인

워드프레스 강좌 / 플러그인 / Duplicate Menu / 메뉴 복사하는 플러그인

워드프레스에서 메뉴를 만드는 게 그리 쉽지는 않습니다. 어렵다기 보다는 손이 많이 갑니다. 메뉴 아이템이 많으면 지루한 작업을 한참 해야 합니다. 메뉴 작업을 하다보면 비슷한 메뉴를 여러 개 만들어야 하는 경우도 있고, 긴 메뉴를 분할해야 하는 경우도 있습니다. 그 때마다 메뉴를 새로 만드는 건 너무 번거롭습니다. Duplicate Menu는 이러한 작업을 도와주는 플러그인입니다. 이름 ...

워드프레스 강좌 / 플러그인 / Awesome Support / 일대일 상담 플러그인

워드프레스 강좌 / 플러그인 / Awesome Support / 일대일 상담 플러그인

쇼핑몰 등 인터넷 서비스를 하면 문의가 많이 들어옵니다. 그 문의들이 공개되지 않게 하는 방법 중의 하나는 비밀글입니다. 하지만 글 제목 등 글의 일부가 노출된다는 단점이 있습니다. 그래서 일대일 상담 게시판을 많이 사용합니다. 워드프레스에서 일대일 상담 게시판을 만드는 방법은 여러 가지가 있고, KBoard로 만드는 방법을 소개한 적이 있습니다. 이번에 소개해드릴 것은 외국형인 ...

워드프레스 강좌 / 관리자 이메일 주소 변경하는 방법

워드프레스 강좌 / 관리자 이메일 주소 변경하는 방법

워드프레스를 설치할 때 관리자 계정을 만들고 메일 주소를 입력합니다. 워드프레스가 자동 업데이트 되거나, 댓글이 달리는 등 주요 사건이 발생하면 그 메일로 알림을 보냅니다. 따라서 수신 가능한 메일 주소로 설정하고, 변경이 필요하면 바로바로 업데이트하는 것이 좋습니다. 워드프레스 이메일 주소 변경하기 으로 이동합니다. 이메일 주소를 입력합니다. 을 클릭합니다. 새로운 이메일 주소로 인증 메일이 ...

워드프레스 강좌 / 워드프레스, 테마, 플러그인 업데이트 하는 방법

워드프레스 강좌 / 워드프레스, 테마, 플러그인 업데이트 하는 방법

업데이트 워드프레스는 워드프레스 코어, 플러그인, 테마, 번역 네가지 범주로 업데이트 됩니다. 기능 추가/개선을 위한 업데이트라면 업데이트를 하지 않거나 미룰 수 있지만, 보안 관련 업데이트는 바로바로 해주는 것이 좋습니다. 업데이트는 워드프레스 관리자에서 할 수도 있고, FTP 등을 이용하여 파일 교체 방식으로 할 수도 있습니다. 워드프레스 관리자에서 하는 게 편하므로, 특별한 이유가 없다면 관리자 ...

워드프레스 강좌 / 플러그인 / Schema / 구조화된 데이터 만들어주는 플러그인

워드프레스 강좌 / 플러그인 / Schema / 구조화된 데이터 만들어주는 플러그인

구조화된 데이터 SEO와 관련해서 해야 할 것 중의 하나가 구조화된 데이터를 만드는 것입니다. 구조화된 데이터는 콘텐츠에 관련된 정보를 검색 엔진에 알려주는 역할을 합니다. 만약 구조화된 데이터가 없으면 구글 웹마스터도구에서 다음과 같은 메시지를 보여줍니다. 사이트에 구조화된 데이터가 없습니다. 구조화된 데이터은(는) Google에서 사이트의 콘텐츠를 파악하여 검색결과에 리치 스니펫을 표시하는 데 도움을 줍니다. 구조화된 데이터는 HTML 마크업을 ...