드물지만 사이트가 해킹당하거나 멀웨어에 감염되면서 구글 등 검색엔진에 일본어 콘텐츠가 검색되는 경우가 있을 수 있습니다. 구글에서 워드프레스 사이트 주소를 검색했을 때 일본어 쇼핑 관련 콘텐츠가 노출되는 문제로 클라이언트로부터 연락을 받았습니다.
구글에서 사이트 주소로 검색해보니 그림과 같이 일본어 키워드들로 된 콘텐츠가 검색되었습니다.
이런 증상은 사이트가 해킹되거나 악성코드에 감염되었을 때 나타날 수 있습니다.
워드프레스 사이트에서 일본어 키워드 스팸 해킹 문제
워드프레스 사이트는 보안에 강하지만 다음의 경우 보안이 취약해져서 사이트가 해킹되거나 멀웨어에 감염될 수 있습니다.
- 워드프레스 코어, 테마, 플러그인을 최신 버전으로 업데이트하지 않는 경우
- 보안에 취약한 플러그인이나 테마 사용 시
- 쉬운 비밀번호나 admin과 같은 관리자 아이디를 사용하는 경우
보안을 위해 다음과 같은 조치가 도움이 될 수 있습니다.
- 워드프레스, 테마 및 플러그인을 최신 버전으로 업데이트
- 한 동안 업데이트가 안 되고 방치되는 테마나 플러그인 삭제
- 보안 취약점이 발견된 플러그인은 제거하기
- 보안 플러그인 설치
- 정기적인 백업
요즘 악성코드는 사용자가 로그인 상태에서는 인식하지 못하도록 증상이 없고 비로그인 사용자(게스트 사용자)가 접속할 때에는 이상한 광고 사이트로 리디렉션되는 등의 증상이 나타날 수 있습니다.
카페24 등의 웹호스팅은 일정 기간(예: 일주일, 10일, 20일 등) 동안 백업본을 제공할 수 있습니다. 카페24는 지난 7일 이내의 백업본이 유지되므로 문제가 시작된 시점이 며칠 되지 않았다면 사이트를 롤백(복원)시켜 문제를 해결할 수도 있습니다. 하지만 증상을 너무 늦게 인식하게 되면 복원이 가능한 시점을 놓칠 수 있습니다.
클라우드웨이즈나 케미클라우드 등 일부 호스팅에서는 멀웨어 감지 기능이 제공되기도 합니다.
문제의 사이트의 경우 구글에서 [**/?s=123456**]과 같이 검색 결과 페이지가 구글에서 노출되고 있었고 클릭하면 일본어로 된 이상한 상품 정보 페이지가 표시되었습니다.
보통 [**/?s=123456**]과 같은 검색 결과 페이지에는 noindex 로봇 태그가 추가되어 있으므로 검색엔진에 노출이 안 되어야 합니다.
<meta name='robots' content='noindex, follow' />
멀웨어에 감염된 것으로 의심되었던 사이트의 경우 [**robots.txt**] 파일이 변조되어 있었습니다.
User-agent: *
Allow: /
sitemap:https://example.com/sitemap.xml
sitemap:https://example.com/sitemap-1.xml
sitemap:https://example.com/sitemap-2.xml
sitemap:https://example.com/sitemap-3.xml
sitemap:https://example.com/sitemap-4.xml
...
sitemap:https://example.com/sitemap-20.xml
아마 sitemap.xml 등의 파일에 [**/?s=123456**]과 같은 URL이 포함되어 있지 않았을까 추정되었습니다. 문제의 사이트맵 파일들은 삭제된 상태여서 정확한 내용은 확인하지 못했습니다.
멀웨어에 감염되거나 해킹되는 경우 서버에 이상한 파일들이 생성되어 있을 수 있습니다. 해당 사이트도 살펴보니 이상한 이름의 파일들이 있었습니다.
bv_connector_로 시작하는 파일들은 검색해 보니 보안 플러그인에서 멀웨어로 인식할 수 있지만 정상적인 파일 같습니다. 문제는 infos.php 파일인데요. 이런 이름의 파일이 루트 폴더에 있어서는 안 됩니다. 이 파일을 열어보니 난독화된 코드로 되어 있어 내용을 파악하기 어렵게 되어 있었습니다.
악성코드에 감염된 파일은 위의 그림과 같이 난독화된 코드로 악성코드를 알아볼 수 없도록 되어 있는 경우가 많습니다. 위와 같은 코드는 전형적인 악성코드의 특징을 보여주고 있습니다.
온라인 멀웨어 검색 스캐너로 검색해보니 멀웨어가 감지되었다는 경고가 표시되었습니다.
멀웨어에 감염되어도 잘 감지하지 못할 수도 있지만, 이 사이트의 경우 [**spam-seo?japanse.0**]이라는 알려진 스팸이 감지되었다고 표시되네요.
이와 관련하여 리서치해보니 악성코드에 감염된 파일들을 치료하고 wp_posts에서 일본어 텍스트도 찾아서 제거해야 한다고 되어 있어서 DB를 스캔해 보았지만 일본어 텍스트가 감지되지 않았습니다. phpMyAdmin에 접속하여 다음과 같은 쿼리로 일본어 텍스트가 존재하는지 체크할 수 있습니다.
SELECT *
FROM wp_posts
WHERE post_content REGEXP '[ぁ-んァ-ン]';
위와 같은 쿼리를 실행하면 히라가나와 가타카나 문자가 있는지 체크하게 됩니다.
멀웨어에 감염될 경우 악성코드에 감염된 파일들을 완전히 삭제하고 DB도 체크하여 악성코드가 없는지 확인해야 합니다. 제대로 악성코드를 제거하지 않으면 다시 재발할 가능성이 높습니다.
또한, 업데이트를 제대로 하지 않았거나 보안에 취약한 플러그인 또는 테마를 사용하여 문제가 발생했다면 멀웨어 제거 후에 사이트를 최신 버전으로 업데이트하고 보안에 취약한 플러그인이나 테마를 삭제하거나 보안 문제를 해결해야 합니다.
보통 플러그인에서 보안 취약점이 많이 발생하지만, 간혹 테마에서도 취약점이 발견됩니다. 예를 들어, 뉴스페이퍼 테마가 보안 취약점 때문에 많은 사이트들이 멀웨어에 감염된 적이 있습니다. 이후에도 꾸준히 패치하지 않는 뉴스페이퍼 테마를 사용하는 사이트들이 악성코드에 감염되고 있습니다.
어떤 이유로 인해 사이트를 업데이트할 수 없는 경우 그 상태에서 악성코드를 제거할 수는 있겠지만, 그런 경우 근본적인 원인이 제거되지 않았기 때문에 추후에 다시 문제가 될 소지가 있습니다.
멀웨어 제거 후에 [**robots.txt**] 파일에서 잘못된 콘텐츠를 제거하고 올바른 사이트맵 URL을 추가했습니다. 그리고 [**/?s=123456**]과 같이 검색 결과가 없는 검색 결과 페이지는 홈으로 리디렉션되도록 코드를 추가했습니다. 또한, [**robots.txt**]에 검색 결과 페이지가 색인되지 않도록 코드를 추가로 넣었습니다. (SEO 플러그인에서 noindex 메타 태그가 추가되기 때문에 꼭 넣을 필요는 없을 것 같습니다.)
[팁*악성코드 감염 등 워드프레스 관련 문제나 웹호스팅 관련 문제로 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.*]
참고
https://avada.tistory.com/3458
https://avada.tistory.com/3495
https://avada.tistory.com/2897