워드프레스 사이트 악성코드 감염 복구

워드프레스 정보를 제공하는 블로그 Avada 2023. 10. 21. 06:24 • 댓글:

저는 테스트 사이트와 중요하지 않은 몇 개의 사이트를 가성비 좋은 곳으로 알려진 국내의 한 웹호스팅 업체에서 호스팅하고 있습니다. 국내에서 가성비가 좋아도 해외 호스팅과는 비교가 되지 않지만 내년 말까지 계약이 되어 있고 이전하는 것이 귀찮아서 이용해오고 있었습니다.

어제는 해당 웹호스팅에 연결된 총 6개 사이트(7개 도메인)가 동시에 악성코드(멀웨어)에 감염되었습니다. 다행히 호스팅 담당자에게 부탁하여 백업본을 이용하여 과거 버전으로 복원했습니다.

워드프레스 사이트 악성코드 감염 복구

어제 워드프레스 사이트 중 하나에 접속하니 그림과 같이 이상한 깨진 문자가 표시되었습니다.

멀웨어에 감염된 것이 아닐까 생각되어 FTP에 접속하니 실제로 이상한 파일들이 생성되어 있었습니다.

[**ge.php**라는 파일이 10월 20일에 생성되어 있고, .htaccess, about.php, index.php 파일 등이 10월 21일에 최종 수정된 것으로 표시되었습니다. (날짜는 서버 날짜 기준인 것 같습니다. 살펴보니 우리나라 시각보다 9시간 더 빠르게 설정되어 있네요. 가령, 우리나라 시각이 2023년 10월 21일 오전 5시라면 서버상의 시간은 2023년 10월 21일 오후 2시로 표시되는 것 같습니다.)

[**ge.php**] 파일의 내용을 보려고 텍스트 에디터로 열려고 시도하니 윈도우 시스템에서 바이러스로 인식하여 삭제해 버리네요.

[**.htacess**] 파일을 열어보니 그림과 같이 이상한 코드가 추가되어 있었습니다.

워드프레스 사이트 악성코드 감염 복구

정상적인 [**.htaccess**] 파일에서 발견되지 않는 코드들이 추가되었는데요. 

<FilesMatch ".(py|exe|php)$">
    Order allow,deny
    Deny from all
</FilesMatch>

<FilesMatch 
"^(about.php|radi.php|index.php|content.php|lock360.php|admin.php|wp-login.php|wp-l0gin.php|wp-theme.php|wp-scripts.php|wp-editor.php|mah.php|jp.php|ext.php)$">
    Order allow,deny
    Allow from all
</FilesMatch>

위의 코드로 검색해 보니 동일한 코드로 감염된 사례가 있네요.

 

Weird .htaccess

Support » Fixing WordPress » Weird .htaccess Weird .htaccess zardiw (@zardiw) 1 year, 9 months ago My .htaccess file is being rewritten…..is this by WP?…….. Because be…

wordpress.org

코드를 삭제하고 이상한 파일들을 삭제해도 사이트는 보통 정상화되지는 않습니다. 또한, 악성코드에 감염된 상태에서 보안 플러그인을 설치하여 악성 파일들을 제거해도 사이트에서 악성코드가 완전히 제거되지 않습니다. 사이트가 되돌아왔다고 해도, 멀웨어를 치료해도 근본적인 원인을 제거하지 않으면 재발되는 경우가 많습니다. 모든 파일을 다 교체하고 보안 조치를 취해야 문제가 재발되지 않습니다.

동일 계정에 있는 사이트 6개가 모두 동일한 현상이 나타났습니다. 저는 백업본이 대부분 있었지만, 웹호스팅 담당자께 연락하여 전체 사이트를 과거 날짜로 롤백한 후에 보안 조치를 취했습니다.

테스트 사이트에 많은 테마와 플러그인을 설치하다 보니 보안에 허점이 생긴 것이 아닌가 생각되었습니다.

얼마 전에 뉴스페이터 테마에서 보안 취약점이 발견되어 문제가 수정된 업데이트가 나왔습니다. 뉴스페이퍼 테마가 설치되어 있다면 최신 버전으로 업데이트해야 합니다. 패치되지 않은 뉴스페이퍼 테마도 설치되어 있었는데, 이것이 원인이 된 것은 아닌지 모르겠습니다.

테스트 사이트에 대하여 내 IP 주소 이외에는 접속하지 못하도록 다음 코드를 [**.htaccess**] 파일에 추가했습니다.

	Order Deny,Allow
	Deny from All
	Allow from MY IP Address

이제 다른 IP 주소의 기기에서 사이트에 접속하면 다음과 같은 화면이 표시되면서 사이트에 접속이 되지 않습니다.😁😁 (상기 코드를 함부로 사용하지 마세요. 위의 코드를 추가하면 다른 방문자들이 사이트에 접속하지 못하게 됩니다. 저는 저만 접속해야 하는 상황이어서 위와 같은 코드를 추가했습니다.)

하위 폴더에 접속을 시도하면...

You don't have permission to access /wp on this server.

위와 같이 액세스 권한이 없다는 에러 메시지가 표시됩니다.

사이트 접속을 제한하고 싶다면 상기에 제시된 코드를 [**.htaccess**] 파일에 추가하는 것을 고려할 수 있을 것입니다. 참고로 클라우드웨이즈의 경우 특정 애플리케이션을 비활성화하여 사용하지 않을 때에는 접근이 되지 않도록 할 수 있습니다.

  1. 사이트를 과거 날짜로 롤백
  2. 업데이트 실시
  3. 불필요한 테마와 플러그인 삭제
  4. 테스트 사이트에는 내 컴퓨터에서만 접속이 가능하도록 코드 추가
  5. 기타 보안 조치

위와 같은 과정으로 복구 작업을 진행했습니다. 반나절 정도 지났는데, 더 이상 악성코드가 생성되지 않네요. 며칠 정도 관찰하면서 악성코드가 생성되는지 체크해 볼 생각입니다. 아마도 상기 조치 때문에 악성코드가 재발할 것 같지는 않습니다.

악성코드에 감염될 경우 백업본이 없다면 복구가 쉽지 않을 수 있습니다. 먼저는 백업본이 있는지 체크하고, 없다면 웹호스팅 업체에 연락하여 백업본을 유지하고 있는지 확인하여 백업본이 있다면 과거 버전으로 사이트를 되돌려볼 수 있습니다. 만약 사이트를 롤백해도 문제가 해결되지 않는다면 수동으로 멀웨어를 제거해야 합니다. 악성코드를 제거하는 데 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다.

참고

https://cafe.naver.com/wphomepage/35060

 

워드프레스 Divi 테마: Divi Code AI 도입 ... 이제 코딩까지 해주네요.

워드프레스 Divi 테마는 아바다 테마와 비슷한 판매량을 자랑하는 베스트셀링 테마 중 하나입니다. Divi 테마가 Divi AI에 이어 이제 HTML, CSS, 자바스크립트...

cafe.naver.com

https://avada.tistory.com/2897

 

엘리멘터 무료 버전 vs. 프로 버전 비교

엘리멘터(Elmentor)는 500만 개가 넘는 사이트에 설치되어 사용되고 있는 인기 워드프레스 페이지 빌더 플러그인입니다. 엘리멘터는 무료 버전과 프로 버전으로 제공됩니다. Elementor 프로 버전에서

avada.tistory.com