WordPress 보안을 개선하는 방법

사용자는 WordPress 사이트를 업데이트하고, 엄격한 사용자 액세스 요구 사항을 적용하며, 중요한 취약점과 의심스러운 활동을 정기적으로 검사하여 WordPress 보안을 개선할 수 있습니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • WordPress 보안 위험 이해
  • WordPress 사이트 보안을 위한 전략 비교
  • Cloudflare에서 WordPress 사이트를 보호하는 방법 알아보기

글 링크 복사

WordPress 보안을 개선하는 방법

콘텐츠 관리 시스템(CMS)은 사용자가 직접 코드를 작성하지 않고도 웹 사이트를 구축, 관리, 사용자 지정하는 데 도움이 되는 소프트웨어 애플리케이션입니다. WordPress 는 세계에서 가장 인기 있는 콘텐츠 관리 시스템 중 하나이며, 따라서 사이버 공격자들에게는 높은 가치가 있는 표적이 됩니다.

WordPress 자체 내부 팀에서는 시스템에서 새로 발견된 취약점에 대한 정기적인 보안 업데이트와 패치를 제공하지만, WordPress 사용자도 알려진 위협과 새로운 위협으로부터 사이트를 안전하게 유지하기 위해 몇 가지 조치를 취할 수 있습니다. 이들 조치는 대부분 위협 제거와 위험 저감의 두 가지 범주 중 하나에 속합니다.

위협 제거는 사이버 공격 및 기타 위협을 제거하는 데 중점을 둡니다. 예를 들어 WordPress 사용자는 방화벽을 설치하여 악의적 트래픽을 필터링하고 분산 서비스 거부(DDoS) 공격을 완화하거나 기본 제공 보안 기능을 제공하는 호스팅 공급자를 선택할 수 있습니다.

위험 저감은 공격자가 쉽게 찾을 수 없도록 기본 WordPress 데이터베이스 접두사를 변경하고, 엄격한 사용자 액세스 요구 사항을 적용하며, 정기적인 보안 검사를 수행하는 등의 사전 예방적 보안 관행을 의미합니다.

WordPress 는 얼마나 안전할까요?

WordPress 은 강력하고 유연한 도구이지만 사이버 공격, 취약성, 사용자 실수로 인한 기타 위험으로부터 자유롭지 않습니다.

일반적인 WordPress 공격

  • 비밀번호 기반 공격: 공격자가 로그인 페이지에 서로 다른 사용자 자격 증명(사용자 이름과 비밀번호 조합)을 반복적으로 입력하는 무차별 대입 공격은 WordPress 계정에 무단으로 침입하는 데 자주 사용됩니다. 다른 형태의 비밀번호 공격으로는 자격 증명 스터핑과 사전(dictionary) 공격이 있습니다.
  • Cross-site scripting (XSS): XSS를 사용하면 WordPress 사이트에 악성 코드를 삽입할 수 있습니다. 이는 WordPress 플러그인을 통해 가장 일반적으로 수행됩니다.
  • SQL 삽입(SQLi): 데이터베이스 인젝션이라고도 하는 SQLi 공격은 악성 코드를 데이터 입력 필드(예:문의 양식)를 통해 WordPress 사이트에 삽입합니다.
  • DDoS 공격: DDoS 공격은 WordPress 웹 사이트에 대량의 원치 않는 트래픽을 폭주시켜 심각한 성능 저하 또는 서비스 중단을 초래합니다.

WordPress의 취약점

  • WordPress의 오래된 버전: WordPress에서는 기존 취약점을 패치하고 새로 나타나는 위협에 대한 방어를 강화하기 위해 핵심 소프트웨어를 정기적으로 업데이트합니다. 이전 버전의 WordPress에는 이러한 보호 기능이 없으며 공격에 계속 취약할 수 있습니다.
  • 타사 테마 및 플러그인: 타사 WordPress 테마 및 플러그인은 다양한 기능을 제공하지만, 최신 보안 요구 사항을 항상 준수하지는 않을 수 있습니다. 따라서 이들을 WordPress 사이트에 설치하면 위험이 초래될 수 있습니다.
  • 백도어: 공격자가 WordPress 계정을 침해하면 보안 조치를 우회하는 은밀한 방법인 백도어가 생성될 수 있습니다. 백도어를 통해 공격자는 WordPress 사이트에 반복적으로 액세스하거나 추가 공격을 시작할 수 있습니다.
  • 취약한 사용자 인증: 적절한 비밀번호 위생 관리(강력한 비밀번호 생성, 정기적으로 비밀번호 변경 등)를 하지 않거나 다단계 인증(MFA)을 구현하지 않으면 침해 위험이 높아질 수 있습니다.
  • 기본 WordPress 설정: WordPress에는 공격자가 일반적인 진입 지점(예: /wp-login.php URL)과 중요한 사이트 정보(예: wp-config.php 파일)를 쉽게 식별할 수 있는 몇 가지 기본 설정이 있습니다.

WordPress 보안 모범 사례

일반적인 사이버 위협과 알려진 취약점으로부터 WordPress 웹 사이트를 보호하기 위해 사용자가 취할 수 있는 몇 가지 조치가 있습니다. 이들 조치는 일반적으로 사이트 설정, 사전 예방적 보안 기능, 사용자 액세스, 사용자 권한, 사이트 보안 업데이트 중 한 가지 범주에 속합니다.

안전한 사이트 설정

  • 안전한 WordPress 호스팅을 사용합니다. WordPress 웹 사이트는 호스팅 공급자(사용자를 대신하여 콘텐츠를 제공하는 타사 서비스)의 보안 수준만큼만 안전합니다. 정교한 공격을 방어하고, 새로 나타나는 취약점과 위협을 검사하며, 재해 복구 리소스를 제공할 수 있는 호스트를 선택합니다.
  • 기본 WordPress 로그인 페이지 URL 및 데이터베이스 접두사를 변경합니다. 각각 /wp-login.php/wp-admin으로 끝나는 이들 URL은 모든 WordPress 사이트에서 기본적으로 사용하도록 설정되어 있어 공격자가 쉽게 찾을 수 있습니다. 이들의 이름을 변경하면 무차별 대입 공격 및 기타 대상을 지정한 위협을 피할 수 있습니다.
  • wp-config.php 파일을 이동시킵니다. wp-config.php 파일에는 WordPress 보안 키 및 기타 중요한 WordPress 설치 세부 정보가 포함되어 있습니다. 안타깝게도 이 파일은 쉽게 찾을 수 있습니다. 이 파일을 WordPress 루트 디렉터리 위로 이동시켜 공격자가 찾기 어렵게 만드세요.
  • 안전한 WordPress 테마를 설치합니다. 일부 WordPress 테마는 최신 버전 WordPress를 지원하도록 업데이트되지 않았거나 기존 WordPress 보안 기준을 준수하지 않을 수 있습니다. 따라서 공격자가 테마를 더 쉽게 악용할 수 있습니다. WordPress 테마 디렉터리에 포함된 테마를 선택하거나 설치하기 전에 WordPress 테마 유효성 검사기를 통해 실행합니다.
  • 사용 중인 WordPress 버전을 숨깁니다. 많은 WordPress 공격에서는 WordPress 의 여러 버전에 있는 특정한 취약점이 악용됩니다. 사용자가 사용 중인 WordPress 버전을 숨기면 이러한 위협을 피하거나 공격자가 사이트의 기존 취약점을 찾아내기 어렵게 만들 수 있습니다.

사전 예방적 보안 기능 설치

  • SSL/TLS 인증서를 사용합니다. 보안 소켓 계층(SSL)Transport Layer Security(TLS)라고도 하며, 웹을 통해 전송되는 데이터를 보호하고 암호화하는 데 도움이 되는 보안 프로토콜입니다. SSL 인증서는 호스팅 공급자 또는 Cloudflare와 같은 타사 보안 서비스에서 받을 수 있습니다.
  • 방화벽을 설치합니다. 웹 애플리케이션 방화벽(WAF)은 WordPress 사이트 앞에 위치하여 무단 트래픽을 필터링하고 차단합니다. WAF를 설치하면 사이트 서비스에 큰 영향을 미치는 DoS 및 DDoS 공격을 방지하는 데 도움이 됩니다.
  • XML-RPC 프로토콜을 사용하여 HTTP 요청을 차단합니다. XML-RPC는 종종 볼류메트릭 사이버 공격이나 무차별 대입 시도를 수행하는 데 사용됩니다. 플러그인 또는 방화벽 규칙을 사용하여 XML-RPC 기능을 사용하지 않도록 선택할 수 있습니다.
  • 핫링크를 방지합니다. 핫링크를 사용하면 타사에서 직접 호스팅하지 않고도 WordPress 사이트의 콘텐츠를 임베드할 수 있습니다. 이러한 상황이 반복해서 발생하면 콘텐츠의 원래 호스트의 대역폭 비용이 증가할 수 있습니다.

안전한 사용자 액세스

  • MFA를 적용합니다. MFA는 사용자가 보호된 시스템이나 계정에 액세스하기 전에 추가 인증 양식을 제공하도록 요구하며, 공격자가 정상적인 사용자의 사용자 이름/비밀번호 조합을 해독했다고 하더라도 WordPress 사이트에 침투하기 어렵게 만듭니다.
  • 로그인 시도 실패 횟수를 제한합니다. 비밀번호 공격은 공격자가 로그인 페이지에서 자격 증명 입력을 무제한으로 시도할 수 있을 때 성공할 가능성이 높습니다.
  • 비활성 사용자를 자동으로 로그아웃시킵니다. 일부 사용자는 공용 컴퓨터에서 WordPress 계정에 액세스하거나 기타 안전하지 않은 브라우징 습관이 있을 수 있습니다. 일정 기간 사용하지 않으면 사용자를 자동으로 로그아웃시켜 스누핑 및 기타 형태의 무단 타사 액세스 가능성을 줄입니다.
  • 비활성 사용자 계정을 삭제합니다. 사용자가 더 이상 자신의 계정을 사용하여 WordPress 사이트에 액세스하지 않더라도 해당 계정과 로그인 자격 증명이 공격자의 표적이 될 수 있습니다.

사용자 권한 관리

  • 파일 및 폴더 권한을 제한합니다. 사용자는 꼭 필요한 경우가 아니면 관리자 수준의 권한을 가져서는 안 됩니다. WordPress 사이트에서 사용자가 수행할 수 있는 기능을 제한하여 원치 않는 데이터 공유의 가능성을 줄이고 침해의 영향을 최소화합니다. ( 최소 권한 원칙에 대해 자세히 알아보세요.)
  • 파일 편집을 허용하지 않습니다. 기본 WordPress 파일 편집기를 사용하면 PHP 파일을 쉽게 편집할 수 있습니다. WordPress 계정이 침해된 경우 이 기능을 통해 공격자도 사이트 파일의 코드를 대폭 수정할 수 있습니다.
  • 사용자 활동을 모니터링합니다. WordPress 공격은 외부 및 내부 소스에서 발생할 수 있습니다. 사용자 활동을 정기적으로 기록하고 검토하여 의심스러운 행동이 있는지 추적합니다(예: 파일 변경, 무단 플러그인 설치 등).

WordPress 보안 기능 업데이트

  • WordPress의 최신 버전으로 업데이트 합니다.WordPress는 알려진 취약점을 방어하기 위해 정기적으로 업데이트됩니다. WordPress 대시보드 상단에서 새 버전이 출시되면 사용자에게 알려주는 알림을 찾아보세요.
  • WordPress 테마 및 플러그인을 업데이트합니다. 모든 테마와 플러그인은 공격자가 진입할 가능성이 있는 지점이 될 수 있습니다. 이전 버전의 WordPress에 심각한 취약점이 있을 수 있으므로 공격자는 오래된 테마와 플러그인을 사용하여 WordPress 사용자를 대상으로 공격을 수행하는 경우가 많습니다.
  • 정기적인 보안 검사를 수행합니다. 신뢰할 수 있는 보안 플러그인, 소프트웨어, 타사 서비스를 사용하여 맬웨어 및 기타 보안 위험을 자동으로 검사합니다.
  • 사이트 데이터를 정기적으로 백업합니다. 공격이 성공한 경우 사용자는 최근 사이트 백업에서 손실된 데이터를 복원할 수 있습니다.

Cloudflare에서는 WordPress 사이트를 어떻게 보호할까요?

Cloudflare 자동 플랫폼 최적화(APO)는 WordPress 플러그인으로, 사용자가 Cloudflare WAF 규칙 세트, Universal SSL, DDoS 방어 등 다양한 보안 및 성능 기능에 액세스할 수 있게 해줍니다. 또한 Cloudflare Zero Trust를 사용하면 MFA를 활성화하고, 로그인 시도를 모니터링하며, 내부 자산에 대한 사용자 액세스를 제한하여 WordPress 보안을 더욱 강화할 수 있습니다. Cloudflare에서 WordPress 사이트를 보호하는 방법에 대해 자세히 알아보세요.