워드프레스 wp-config.php 파일에 이상한 코드가 삽입되어 있는 경우

워드프레스 블로그에서 아마존 광고가 표시되는 문제 해결을 의뢰받았습니다. 사이트를 검토해보니 wp-config.php 파일에 이상한 코드가 삽입되어 있는 것을 발견했습니다.

워드프레스 wp-config.php 파일에 이상한 코드가 있는 경우

wp-config.php 파일에 비정상적인 코드가 포함되어 있다면 이는 악성코드의 흔한 징후 중 하나입니다.

wp-config.php 파일 내에 비정상적인 코드가 포함되어 있는 경우 확인해야 할 사항과 이 문제를 해결하는 방법에 대해 간단히 알아보겠습니다.

워드프레스 wp-config.php 파일에 이상한 코드가 삽입되어 있는 경우

워드프레스 사이트가 악성코드에 감염되면 .htaccess 파일이나 wp-config.php 파일과 같은 중요 파일들에 비정상적인 코드가 추가될 수 있습니다.

/*d8f2a*/

@include /*x4c*/("/home/.../px75blic_html/wpx2dinclx75des/blocks/separator/.2a2fb101.oti");

/*d8f2a*/

위와 같은 코드가 wp-config.php 파일에 추가되어 있어서 이 코드가 어떤 의미를 갖는지 살펴보았습니다.

우선 /*…*/은 주석입니다. /*d8f2a*/와 /*x4c*/는 코드를 잘 이해하지 못하도록 하기 위해 추가한 주석 같습니다. 주석 제거 도구에서 주석을 삭제해 보면 다음과 같이 쉽게 이해할 수 있는 코드가 됩니다.

wp-config.php 파일에 추가된 코드의 의미를 파악하기 위해 검토해 보았습니다.

먼저, /*…*/는 코드 내에서 주석을 나타냅니다. /*d8f2a*/와 /*x4c*/ 같은 부분은 코드의 이해를 어렵게 하려는 의도로 추가된 주석으로 보입니다. 주석 제거 툴을 사용하여 이러한 주석들을 삭제하면 보다 이해하기 쉬운 코드로 변환됩니다.

@include ("/home/.../px75blic_html/wpx2dinclx75des/blocks/separator/.2a2fb101.oti");

위에서 x2di와 x75 같은 코드는 난독화된 문자열로, 악성코드에서 실제 경로나 코드의 목적을 숨기기 위해 자주 사용되는 방법입니다.

  • x2d – 하이픈 (-)
  • x75 – 문자 u

상기 코드는 최종적으로 다음과 같이 이해할 수 있습니다.

@include ("/home/.../public_html/wp-includes/blocks/separator/.2a2fb101.oti");

/wp-includes/blocks/separator/ 폴더 내의 .2a2fb101.oti 파일은 워드프레스 파일이 아닙니다.

워드프레스 사이트 멀웨어 파일

*.oti 파일은 일반적으로 흔히 사용되는 파일 확장자가 아닙니다. 이러한 이상한 파일이 워드프레스 환경 내에서 발견된다면, 사이트가 멀웨어에 감염되었을 수 있는 위험신호일 수 있으므로 멀웨어 감염 여부를 확인해야 합니다.

실제로 wp-config.php 파일 내의 이상한 코드를 삭제하고 .2a2fb101.oti 파일만 제거해도 아마존 광고가 표시되는 증상이 사라졌습니다.

그러나 이러한 조치만으로 멀웨어가 완전히 제거되는 것은 아닙니다. 사이트 전반을 검사하여 이상한 파일들을 제거한 다음, Wordfence와 같은 보안 플러그인으로 악성코드를 스캔하여 멀웨어를 철저히 제거해야 합니다.

악성코드에 이미 감염된 상태에서 Wordfence를 설치하여 악성코드를 제거해 보아도 완벽하게 제거되지 않을 수 있습니다. 그러므로 악성코드를 제거한 후에 Wordfence를 사용하는 것이 좋습니다.

멀웨어를 완전히 제거한다 하더라도 보안 취약점을 해결하지 않으면 다시 감염될 위험이 있습니다.

사이트를 자세히 살펴본 결과, 테마 폴더와 플러그인 폴더 내에도 이상한 테마와 폴더가 설치되어 있는 것을 발견했습니다.

악성 코드 감염이 의심되는 워드프레스 테마 관련 썸네일

위의 스크린샷은 테마 폴더를 보여주며, 의미 없어 보이는 이름의 테마 디렉터리가 있습니다. 이런 의미 없는 이름의 폴더나 파일은 위험 징후일 수 있습니다.

멀웨어로부터 사이트를 복구하고자 할 때, 가장 간단한 방법은 백업본을 이용해 사이트를 복원하는 것입니다. 그런 다음, 모든 테마와 플러그인을 최신 상태로 업데이트한 뒤 추가적인 보안 조치를 취해야 합니다.

백업본이 없다면 수동으로 악성코드를 제거하고 보안 강화 조치를 해야 합니다. 단지 눈에 띄는 몇몇 파일을 제거한다고 해서 문제가 해결되지는 않습니다.

워드프레스 코어, 테마, 플러그인을 최신 버전으로 업데이트하지 않으면 보안이 취약해질 수 있습니다.

워드프레스 블로그를 안전하게 운영하기 위한 다음과 같은 관행이 도움이 됩니다.

  1. 워드프레스, 테마, 플러그인을 항상 최신 버전으로 유지하기
  2. 장기간 업데이트되지 않는 플러그인이나 테마는 제거하기
  3. 정기적으로 사이트를 백업하고, 그 백업을 안전한 곳에 보관하기
  4. 보안 플러그인 설치하여 사용하기
  5. ‘admin’이나 사이트의 이름(예: example.com의 경우 ‘example’)을 관리자 ID로 사용하지 않기
  6. 비밀번호를 강하고 복잡하게 설정하며, 타인과 공유하지 않기

문제가 되었던 사이트의 경우, PHP 버전이 7.3으로 낮아 일부 플러그인을 업데이트할 수 없는 상태였습니다. 또한, 사용 중인 테마가 오래 전에 단종되어 오랜 기간 업데이트되지 않고 있었습니다.

PHP 버전 호환성 문제로 업데이트가 불가능한 Contact Form 7 플러그인

이와 같은 문제 때문에 사이트가 해킹당하거나 멀웨어에 감염될 위험이 높아집니다.

PHP 버전은 최소한 7.4 이상이어야 하며, 가능하다면 PHP 8.1 이상을 사용하는 것이 바람직합니다. 현재 최신 버전은 8.3이며, 카페24, 클라우드웨이즈 등 많은 호스팅 업체들이 PHP 8.2까지 지원하고 있습니다.

패스트코멧의 경우 2024년 2월에 PHP 8.3에 대한 지원을 추가했습니다. PHP 8.3을 사용하면 속도가 이전 버전보다 개선된다고 합니다.

카페24를 사용 중이시라면 PHP 8.2로 업데이트하는 것을 권장드립니다. PHP 버전을 높게 유지하는 것은 보안 면에서 더 안전할 뿐만 아니라 성능 면에서도 향상됩니다.

카페24를 사용하는 경우 매니지드 워드프레스 호스팅을 이용하면 SSL 인증서를 무료로 제공받을 수 있으므로, 수동으로 SSL 인증서를 설치하거나 유료로 구매할 필요가 없습니다.

멀웨어를 포함한 워드프레스 관련 문제로 곤란을 겪고 계시다면, 여기에서 서비스를 유료로 의뢰하실 수 있습니다.

참고

 

Leave a Comment