• 워드프레스

실제 위협으로부터 워드프레스 사이트를 보호하는 방법

  • Felix Rose-Collins
  • 15 min read

소개

대부분의 워드프레스 해킹은 누군가가 당신의 사이트를 노리고 침입하는 것이 아닙니다. 보통은 오래된 플러그인, 취약한 로그인, 또는 방치된 설정과 같은 일반적인 취약점을 찾아 인터넷을 스캔하는 자동화된 봇에 의한 것입니다. 만약 당신의 사이트가 침입하기 쉬워 보인다면, 봇들은 몇 분 안에 공격을 시도할 수 있습니다.

사이트를 보호하기 위해 보안 엔지니어의 전문 기술이 필요한 것은 아닙니다. 서로 잘 어우러지는 몇 가지 기본적인 보안 조치만 있으면 됩니다. 주요 워드프레스 설정을 철저히 잠그고, 서버 규칙을 추가하며, 모든 것을 최신 상태로 유지하세요. 백업과 모니터링은 반드시 수행해야 할 필수 사항으로 삼으세요. 그러면 문제를 조기에 발견하고 빠르게 복구할 수 있으며, 몇 주 뒤에야 피해를 알게 되는 상황을 피할 수 있습니다.

이 가이드는 실용적인 내용을 다룹니다. 먼저 영향력이 큰 기본 사항부터 시작하여, 더 심층적인 보안 강화 단계로 넘어갑니다.

워드프레스 사이트에 대한 일반적인 보안 공격 {#common-security-attacks-on-wordpress-sites}

대부분의 워드프레스 공격은 익숙한 패턴을 따릅니다. 봇은 먼저 일반적인 진입점을 탐색한 다음, 악용하기 가장 쉬운 곳으로 이동합니다.

Common Security Attacks on WordPress Sites

다음은 실제 워드프레스 사이트에서 마주칠 수 있는 가장 흔한 위험 요소들입니다.

무차별 대입 공격 {#brute-force}

무차별 대입 공격은 자동화하기 쉽고 여전히 효과가 있기 때문에 통합니다. 봇은 하나의 비밀번호를 추측하는 대신, 로그인 페이지에서 분당 수천 개의 사용자 이름과 비밀번호를 시도합니다. 크리덴셜 스터핑은 다른 침해 사고에서 유출된 인증 정보를 사용하기 때문에 훨씬 더 효과적입니다. 유출된 인증 정보가 일치하면 즉시 관리자 권한을 획득하게 됩니다.

이러한 공격이 발생하면 트래픽 급증, 반복적인 리디렉션, 플러그인 또는 서버 인증 로그에 기록된 수많은 로그인 실패 사례를 확인할 수 있습니다. 해킹 사고가 발생하지 않았더라도 CPU 자원을 소모하고 사이트 속도를 저하시키며 로그를 넘쳐나게 만듭니다.

취약한 플러그인과 테마 {#vulnerable-plugins-and-themes}

워드프레스 코어에 문제가 발생하기도 하지만, 대개 진짜 문제는 플러그인과 테마에 있습니다. 공격자들은 버전 확인이 쉽고 악용 코드가 빠르게 확산되기 때문에 이를 표적으로 삼습니다.

랭크트래커를 만나보세요

효과적인 SEO를 위한 올인원 플랫폼

모든 성공적인 비즈니스의 배후에는 강력한 SEO 캠페인이 있습니다. 하지만 선택할 수 있는 최적화 도구와 기법이 무수히 많기 때문에 어디서부터 시작해야 할지 알기 어려울 수 있습니다. 이제 걱정하지 마세요. 제가 도와드릴 수 있는 방법이 있으니까요. 효과적인 SEO를 위한 Ranktracker 올인원 플랫폼을 소개합니다.

드디어 랭크트래커에 무료로 등록할 수 있게 되었습니다!

무료 계정 만들기

또는 자격 증명을 사용하여 로그인

주의해야 할 징후로는 개발이 중단된 플러그인, 유료 도구의 무료 복제본, 업데이트 지연 등이 있습니다. 이로 인한 영향은 원격 코드 실행부터 데이터베이스 탈취, SEO 스팸 삽입에 이르기까지 다양합니다.

악성코드 삽입 {#malware-injection}

악성 코드는 종종 쓰기 권한이 있거나 간과되기 쉬운 곳에 숨어 있습니다. 이는 wp-content/uploads/에 삽입된 악성 스크립트, 엉망인 PHP 코드로 은밀하게 수정된 플러그인 파일, 또는 템플릿이나 게시물을 통해 확산되도록 데이터베이스에 주입된 코드일 수 있습니다.

전형적인 징후로는 모바일 전용 리디렉션, 정체불명의 관리자 사용자, 이상한 크론 작업, 비정상적인 예약 작업, 외부 요청 급증, 그리고 Search Console 또는 호스팅 업체의 악용 경고 등이 있습니다. 이는 종종 반복적인 감염, 스팸, 그리고 블랙리스트 등재 위험으로 이어집니다.

SEO 스팸 공격 {#seo-spam-attacks}

SEO 스팸은 사람이 항상 눈에 띄는 것은 아닙니다. 공격자는 크롤러만 볼 수 있는 숨겨진 링크, 스팸 페이지 또는 콘텐츠를 추가합니다. 데이터베이스에 스팸을 주입하거나, 승인되지 않은 사이트맵을 추가하거나, .htaccess를 조작하여 봇에게 다른 콘텐츠를 제공할 수도 있습니다.

첫 번째 징후는 대개 검색 결과에서 나타납니다: 이상한 색인 URL과 갑작스러운 트래픽 감소가 그것입니다. 도메인이 스팸 키워드로 순위가 매겨지기 시작하고, 실제 페이지의 노출은 줄어듭니다. 스팸이 데이터베이스 전반에 흩어져 있는 경우가 많아 정리에 더 많은 시간이 소요됩니다.

SQL 인젝션 {#sql-injection}

SQL 인젝션은 플러그인이나 사용자 정의 코드가 안전하지 않은 데이터를 데이터베이스로 전송할 때 발생합니다. 흔한 징후로는 이상한 URL 쿼리 문자열, 방화벽 로그의 SQLi 경고, 갑작스러운 데이터베이스 부하 급증 등이 있습니다. 공격자가 사용자 계정이나 설정을 변경할 경우 데이터 도난, 콘텐츠 변경, 지속적인 접근 권한 획득으로 이어질 수 있습니다.

크로스 사이트 요청 위조(CSRF) {#cross-site-request-forgery}

크로스 사이트 요청 위조(CSRF)는 사용자가 워드프레스에 로그인된 상태에서 플러그인이 적절한 보안 검사를 수행하지 않을 때 발생합니다. 공격자는 사용자를 속여 링크를 클릭하게 함으로써 사용자 생성, 이메일 변경, 설정 업데이트와 같은 작업을 유발할 수 있습니다.

클릭 직후 의도하지 않은 관리자 변경이 발생하는 것은 위험 신호입니다. 공격이 사용자의 세션을 통해 수행되기 때문에 로그상으로는 정상적으로 보일 수 있지만, 권한을 은밀하게 변경하여 시스템 장악으로 이어질 수 있습니다.

크로스 사이트 스크립팅 {#cross-site-scripting}

크로스 사이트 스크립팅(XSS)은 플러그인이나 테마가 사용자 콘텐츠를 사전 검증 없이 표시할 때 발생합니다. 저장형 XSS는 악성 코드가 저장되어 나중에 관리자 영역에서도 실행될 수 있어 더욱 위험하며, 공격자가 설정을 변경하거나 사용자를 추가하거나 플러그인을 설치할 수 있게 합니다.

게시물이나 설정에서 이상한 스크립트가 보이거나, 로그인 전용 리디렉션이 발생하거나, 자신이 변경하지 않은 내용이 나타나는 것을 볼 수 있습니다. 이는 세션 탈취와 데이터베이스에 저장된 지속적인 감염으로 이어질 수 있습니다.

기본 보안 필수 사항 {#baseline-security-essentials}

기본적인 조치부터 시작하여 취약점을 제거하고, 기본적으로 시스템이 해킹당하기 어렵게 만드세요.

안전한 워드프레스 호스팅 선택하기 {#choose-a-secure-wordpress-hosting}

워드프레스를 강화하더라도 호스팅 환경이 취약하면 피해를 입을 수 있습니다. 호스팅은 사이트가 실행되는 환경을 제어하며, 이 환경은 보안에 큰 영향을 미칩니다.

보안 중심 호스팅에는 다음이 포함되어야 합니다.

  • 격리 및 안전한 기본 설정

계정 간에 상호 영향을 미칠 수 있는 과밀한 서버에 사이트가 호스팅된다면, 처음부터 추가적인 위험에 노출되는 것입니다. 강력한 계정 격리, 합리적인 파일 권한 설정, 그리고 기본적으로 위험한 서비스를 열어두지 않는 설정을 갖춘 호스팅을 찾으세요.

  • 서버 수준 보호

신뢰할 수 있는 호스팅 업체는 방화벽 규칙, 봇 필터링, 보안 패치, 강화된 구성을 처리합니다. 단순히 충분한 안전성을 확보하기 위해 서버에 로그인하여 설정을 직접 조정할 필요가 없어야 합니다.

  • 백업 및 빠른 복원

문제가 발생했을 때는 속도가 중요합니다. 자동 백업과 신속한 복구는 비즈니스를 구합니다.

  • 가시성

액세스 로그, 오류 로그, 성능 지표는 서비스 중단으로 이어지기 전에 무차별 대입 공격, PHP 문제, 리소스 급증 등을 포착하는 데 도움이 됩니다.

  • SSL

SSL 인증서는 로그인 및 세션을 암호화하여 전송 중인 데이터의 기밀성을 보장합니다. 안전한 호스팅은 인증서 설정을 간편하게 하고 만료 문제를 방지하기 위해 자동 갱신을 지원합니다.

랭크트래커를 만나보세요

효과적인 SEO를 위한 올인원 플랫폼

모든 성공적인 비즈니스의 배후에는 강력한 SEO 캠페인이 있습니다. 하지만 선택할 수 있는 최적화 도구와 기법이 무수히 많기 때문에 어디서부터 시작해야 할지 알기 어려울 수 있습니다. 이제 걱정하지 마세요. 제가 도와드릴 수 있는 방법이 있으니까요. 효과적인 SEO를 위한 Ranktracker 올인원 플랫폼을 소개합니다.

드디어 랭크트래커에 무료로 등록할 수 있게 되었습니다!

무료 계정 만들기

또는 자격 증명을 사용하여 로그인

관리형 WordPress 플랫폼에서는 일반적인 위협이 WordPress에 도달하기 전에 차단하기 위한 다양한 보호 장치가 이미 마련되어 있습니다. 예를 들어, Cloudways 관리형 호스팅에는 방화벽, 자동 백업, 선택적 WAF 애드온, SafeUpdates와 같은 플랫폼 수준의 보안 기능이 포함되어 있습니다. 이 경우에도 업데이트와 접근 제어는 여전히 귀하의 책임이지만, 더 안전한 기반에서 시작할 수 있습니다.

Cloudways는 전문가가 지원하는 웹사이트 마이그레이션 서비스도 제공하며, 첫 번째 마이그레이션은 무료로 제공됩니다.

SSL 인증서 설치 {#install-an-ssl-certificate}

웹사이트 URL 옆에 있는 작은 자물쇠 아이콘을 본 적이 있나요? 이는 사이트가 HTTPS를 사용하고 있음을 의미합니다. 이는 방문자에게 사이트 연결이 안전하며 그들의 데이터가 보호받고 있음을 알려줍니다. SSL이 없다면 해커가 로그인 정보나 결제 데이터와 같은 민감한 정보를 가로챌 수 있습니다.

SSL(Secure Sockets Layer)은 웹사이트와 방문자 간의 데이터를 암호화합니다. 이를 통해 트래픽을 보호하여 비밀번호와 고객 데이터가 일반 텍스트로 전송되지 않도록 합니다. 블로그, 온라인 스토어, 포트폴리오 등 어떤 사이트를 운영하든 SSL 인증서 설치는 더 이상 선택 사항이 아니라 필수입니다.

SSL 옵션 선택하기

대부분의 호스팅 제공업체는 몇 번의 클릭만으로 활성화할 수 있는 무료 SSL 옵션을 제공합니다. Cloudways에서는 플랫폼에서 바로 무료 Let’s Encrypt 인증서를 활성화할 수 있습니다.

비즈니스용 인증서나 특정 유효성 검증이 필요한 경우, DigiCert나 Sectigo와 같은 공급업체에서 구매할 수도 있습니다.

CSR 생성

인증서 서명 요청(CSR)은 서버가 인증서 제공업체에 보내는 요청입니다. 일반적으로 호스팅 대시보드 내에서 'CSR 생성' 옵션을 찾을 수 있습니다.

도메인, 조직명, 위치와 같은 기본 정보를 입력한 후 CSR을 생성하세요. 인증서 제공업체는 이를 사용하여 인증서를 발급합니다.

도메인 소유권 확인

인증서가 발급되기 전에 도메인 소유권을 증명해야 합니다. 제공업체에 따라 일반적으로 확인 이메일 수신, DNS 레코드 추가, 또는 작은 확인 파일 업로드 중 하나를 수행해야 합니다. 이 검증이 완료되면 인증서가 발급됩니다.

인증서 설치

호스팅 대시보드에서 인증서를 설치하거나 업로드하세요. 'SSL 관리'나 '보안 설정'과 같은 메뉴를 찾아 안내에 따라 해당 도메인에 인증서를 연결하세요.

Install the certificate

HTTPS 강제 적용

SSL 설치가 완료되면 모든 트래픽이 기본적으로 HTTPS로 연결되도록 설정하십시오. 이렇게 하면 방문자가 항상 사이트의 보안 버전에 접속할 수 있습니다.

'Really Simple SSL'과 같은 플러그인을 사용하거나, wp-config.php 파일의 다음 설정을 통해 워드프레스 관리자 대시보드에 HTTPS를 강제 적용할 수 있습니다:

내부 링크 업데이트

사이트의 설정이나 데이터베이스에 여전히 구형 HTTP URL이 참조되어 있다면, 브라우저에서 혼합 콘텐츠 경고가 표시될 수 있습니다. 모든 콘텐츠가 HTTPS를 통해 로드되도록 해당 내부 링크를 업데이트하십시오.

보안 외에도 SSL은 신뢰도를 높이고 SEO에 도움이 됩니다. 이는 방문자에게 귀하가 개인정보 보호를 중요하게 여긴다는 것을 알리는 간단한 업그레이드입니다.

워드프레스, 테마, 플러그인 최신 버전 유지 {#keep-wordpress-themes-and-plugins-updated}

업데이트는 보안입니다. 대부분의 릴리스는 알려진 취약점을 수정합니다. 취약점이 공개되면 봇이 구버전을 사용하는 사이트를 스캔하며, 이 과정에서 감염이 발생합니다.

워드프레스 코어 업데이트

코어 업데이트에는 겉보기에는 사소한 업데이트라도 보안 수정 사항이 포함되는 경우가 많습니다.

Update WordPress Core

워드프레스 코어를 업데이트하려면 다음 단계를 따르세요:

  • 워드프레스 관리자 대시보드 → 업데이트로 이동합니다.
  • 워드프레스에서 업데이트가 가능한 경우 '지금 업데이트'를 클릭합니다.
  • 업데이트가 완료된 후 사이트를 열어 정상적으로 로드되는지, 로그인이 가능한지 확인하세요.

실용적인 업데이트 루틴

  • 최소한 마이너 버전에 대해서는 자동 업데이트를 활성화하세요.
  • 주요 업데이트 시에는 스테이징 환경을 사용하십시오.
  • 패치 및 회귀 테스트를 위해 매월 유지보수 시간을 확보하십시오.

Cloudways와 같은 호스팅 플랫폼을 선택하면, SafeUpdates 기능이 백업 및 스테이징 워크플로를 통해 워드프레스 코어, 플러그인, 테마 업데이트를 예약하고, 변경 사항을 프로덕션 환경에 적용합니다.

테마 업데이트

워드프레스 테마를 업데이트하려면 다음 단계를 따르세요:

  • 워드프레스 관리자 대시보드 → 업데이트로 이동하세요.

Updates

  • 테마 업데이트가 나열되어 있다면, 체크박스를 선택한 다음 '테마 업데이트'를 클릭하세요.
  • 업데이트가 완료된 후, 홈페이지, 메뉴 및 주요 페이지가 올바르게 로드되는지 확인하세요.

사용하지 않는 플러그인과 테마 제거

사용하지 않는 플러그인과 테마는 서버에 남아 있습니다. 이를 삭제하여 보안 위험을 줄이고 공격 표면을 축소하세요.

themes

정리 체크리스트:

  • 사용하지 않는 플러그인과 테마를 삭제하세요. 비활성화만 하면 파일이 남아 있습니다.
  • 양식, 캐싱, SEO 또는 전자상거래와 관련된 플러그인의 경우, 먼저 스테이징 환경에서 제거를 테스트하십시오.
  • 활성 테마 하나와 백업용 테마 하나만 남겨두세요.
  • 정리 후 로그인, 양식, 결제, 검색 기능이 정상적으로 작동하는지 확인하십시오.
  • 매월 설치된 플러그인과 테마를 검토하십시오.

​​사용하지 않는 워드프레스 플러그인을 삭제하려면 다음 단계를 따르세요:

  • 워드프레스 관리자 대시보드에서 플러그인설치된 플러그인으로 이동하세요.
  • 필요하지 않은 플러그인을 찾으세요.
  • '비활성화'를 클릭하세요. 그러면 '삭제' 옵션이 나타납니다.
  • '삭제'를 클릭하고 메시지가 표시되면 확인하십시오.

다음으로, 사용하지 않는 테마를 삭제하려면 다음 단계를 따르세요:

  • 워드프레스 관리자 대시보드에서 '외관 ' → '테마'로 이동하세요.
  • 필요 없는 테마를 클릭하세요.
  • '삭제'를 클릭하고 메시지가 나타나면 확인하세요.

신뢰할 수 있는 테마와 플러그인을 선택하세요

기능이 훌륭해 보인다고 해서 모든 플러그인이 신뢰할 만한 것은 아닙니다. 꾸준한 최근 업데이트, 명확한 설명서, 활발한 지원, 그리고 최신 워드프레스 버전과의 호환성을 확인하세요.

설치 전 확인 사항:

  • 사용이 중단된 플러그인과 테마는 피하십시오.
  • 무료화된 플러그인과 테마는 피하십시오.
  • 공식 마켓플레이스 외의 다운로드의 경우, 공급자를 신뢰할 수 없는 한 주의하십시오.
  • 최근에 업데이트되지 않았거나 현재 사용 중인 WordPress 버전을 명확하게 지원하지 않는 것은 건너뛰세요.

실용적인 보안 운영 {#practical-security-operations}

다음은 일상적인 위험을 줄이고, 봇의 무분별한 접속을 차단하며, 문제를 조기에 발견하는 데 도움이 되는 정기적인 절차입니다.

공격자들은 로그인 페이지가 예측 가능하고 항상 접근 가능하기 때문에 이를 노립니다. 관리자 접속 경로를 철저히 차단하여 봇이 막히게 하고, 도난당한 비밀번호가 즉시 접근 권한으로 이어지지 않도록 하십시오.

2단계 인증 사용 {#use-two-factor-authentication}

2단계 인증은 대부분의 크리덴셜 스터핑 및 자격 증명 재사용을 통한 해킹을 차단합니다. 관리자 계정에 이 기능을 활성화하면 비밀번호가 유출되더라도 로그인이 차단됩니다.

워드프레스 사이트에서 2단계 인증을 활성화하려면 신뢰할 수 있는 2단계 인증 플러그인과 휴대폰용 인증 앱을 선택하세요. 일반적인 2단계 인증 플러그인으로는 miniOrange 2FA, WP 2FA, Wordfence Login Security, Two Factor 등이 있습니다.

2단계 인증 활성화:

  • 워드프레스 대시보드에서 플러그인새로 추가로 이동하세요.
  • 2FA 플러그인을 검색한 다음, 설치하고 활성화하세요.
  • 왼쪽 사이드바에서 플러그인 메뉴를 엽니다(보통 '보안' 아래에 있거나 별도의 항목으로 표시됨).
  • '2단계 인증 ' 또는 '2FA'를 찾아 '인증 앱'을 선택하세요.
  • 인증 앱에서 QR 코드를 스캔하거나 설정 키를 입력하세요.
  • 확인을 위해 일회용 코드를 입력한 다음, '활성화 '를 클릭하세요.
  • 복구 코드를 다운로드하여 비밀번호 관리자에 저장하세요.

관리자 역할에 2단계 인증 적용:

  • 플러그인 설정을 엽니다(보통 '설정' 또는 '보안''2FA' 아래에 있습니다).
  • '2FA 필수'를 켭니다.
  • 관리자편집자 역할에 대해 이 기능을 적용하고, 전자상거래 스토어를 운영하는 경우 '쇼핑몰 관리자'를 추가하세요.
  • 별도의 기기에서 최소 두 개의 관리자 계정을 등록한 후 변경 사항을 저장하세요.

2FA

기본 로그인 URL 변경 {#change-the-default-login-url}

대부분의 워드프레스 사이트는 로그인용 /wp-login.php와 관리자 대시보드용 /wp-admin/과 같은 동일한 기본 URL을 사용합니다. 봇은 이러한 URL을 알고 있으므로 계속해서 시도합니다.

로그인 URL을 변경한다고 해서 집요한 공격자를 막을 수는 없지만, 자동화된 로그인 스팸과 무차별 대입 공격 시도를 줄일 수는 있습니다.

다음 단계에 따라 워드프레스의 기본 로그인 URL을 변경하세요:

  • 플러그인새로 추가로 이동합니다.
  • 로그인 URL 변경 플러그인을 설치한 다음 활성화하세요.
  • 설정 또는 보안에서 플러그인 설정을 엽니다.
  • 새로운 로그인 URL 을 설정하고 변경 사항을 저장하세요.
  • 로그아웃한 후 시크릿 창에서 새 URL을 테스트하세요.

고유한 관리자 사용자 이름 사용 {#use-a-unique-admin-username}

** **“admin”은 모든 무차별 대입 공격 목록에서 가장 먼저 시도되는 단어입니다. 이 이름을 사용하면 공격자에게 필요한 정보의 절반을 제공하게 됩니다.

워드프레스에서 고유한 관리자 사용자 이름을 사용하려면 다음을 따르세요:

  • 사용자새로 추가로 이동합니다.
  • 고유한 사용자 이름으로 새 사용자를 생성하세요. 도메인 이름, 브랜드 이름 또는 이메일 접두사를 사용하지 마세요.
  • 역할을 '관리자'로 설정한 후 계정을 생성하세요.
  • 로그아웃한 후 새 관리자 계정으로 다시 로그인하세요.
  • 사용자전체 사용자로 이동합니다.
  • 기존 관리자 계정을 찾아 역할을 더 낮은 역할로 변경하거나 삭제하십시오. 계정을 삭제하는 경우, WordPress에서 메시지가 표시되면 해당 콘텐츠를 새 관리자에게 할당하십시오.

로그인 시도 횟수 제한 {#limit-login-attempts}

봇이 무제한으로 비밀번호를 시도하지 못하게 하세요. 몇 번의 실패 후, 해당 IP를 잠시 차단하세요.

먼저 간단한 옵션부터

  • Wordfence, Limit Login Attempts Reloaded 또는 Loginizer와 같이 속도 제한을 처리하는 플러그인을 설치하십시오.
  • 가능하다면 호스팅 업체의 방화벽 대시보드에서 속도 제한을 활성화하세요.

고급 서버 설정

Nginx 속도 제한 예시 (Nginx 구성을 직접 관리하는 경우 권장):

Nginx HTTP 컨텍스트에 다음을 추가하세요:

그런 다음 서버 블록 내부에 로그인 엔드포인트에 대한 제한을 추가하세요:

팁: 정상 사용자가 차단되는 경우 “rate” 또는 “burst” 값을 늘리세요. 철저히 테스트하십시오.

강력한 관리자 비밀번호 사용 {#use-strong-admin-passwords}

관리자 비밀번호는 기억하기 쉬울 필요는 없습니다. 추측하기 어렵게 만들어야 합니다. 비밀번호 관리자를 사용하여 길고 무작위적인 비밀번호를 생성하고, 각 관리자 계정에 고유한 비밀번호를 설정하십시오. 이렇게 하면 한 서비스가 해킹당하더라도 WordPress 관리자 계정에 대한 접근 권한이 함께 유출되지 않습니다.

설정 팁:** **

  • 가능하다면 조직 정책에서 비밀번호 재사용을 비활성화하십시오.
  • 팀원이 퇴사하면 즉시 관리자 비밀번호를 변경하십시오.

워드프레스에서 관리자 비밀번호를 변경하려면 다음 단계를 따르세요:

  • 사용자모든 사용자로 이동하십시오.
  • 관리자 사용자를 편집합니다.
  • '새 비밀번호 설정'을 클릭한 다음 '사용자 업데이트'를 클릭하십시오.

권장되는 워드프레스 보안 플러그인 사용하기 {#use-recommended-wordpress-security-plugins}

보안 플러그인이 모든 문제를 해결해 주지는 않지만, 신속한 보호 기능과 훨씬 더 나은 가시성을 제공할 수 있습니다. 문제가 발생했을 때 실제로 활용할 수 있는 로그를 확인해야 합니다.

좋은 보안 플러그인은 다음 기능을 포함합니다:

  • 예기치 않은 변경 사항을 감지하기 위한 파일 무결성 모니터링
  • 로그인 보호 및 2단계 인증(2FA) 적용
  • 명확한 정리 및 복구 절차를 갖춘 맬웨어 검사
  • 실제로 검토할 수 있는 알림 및 감사 로그
  • 기본 방화벽 규칙

찾아야 할 항목이 명확해지면 Wordfence, Sucuri, All In One WP Security와 같은 신뢰할 수 있는 플러그인을 설치하세요. 이러한 도구는 로그인 보호, 파일 변경 감지, 로그 기능을 제공하며, 무차별 대입 공격 시도를 포함한 많은 일반적인 악용 시도를 차단할 수 있습니다.

WordPress 보안 플러그인을 설치하려면 다음 단계를 따르세요:

  • 플러그인새로 추가로 이동합니다.
  • 보안 플러그인을 검색합니다.
  • '지금 설치'를 클릭한 다음 '활성화'를 클릭합니다.
  • 왼쪽 사이드바에서 플러그인을 열고, 설정 마법사가 있다면 실행합니다.

설정 팁:

  • 충돌과 중복을 피하기 위해 하나의 주요 보안 플러그인만 사용하세요.
  • 사용하지 않을 기능은 비활성화하세요. 특히 트래픽이 많은 사이트에서는 자원이 많이 소모되는 스캔 기능을 꺼두는 것이 좋습니다.
  • 호스팅 업체에서 트래픽 제한 또는 차단 기능을 제공하는 경우, 가능하면 이를 활용하여 무차별 대입 공격으로부터 사이트를 보호하세요.

문제 해결:

  • 워드프레스 관리자 페이지에 접속이 차단된 경우, 먼저 방화벽 규칙을 확인하고 엄격 모드를 완화하십시오.
  • 자사 팀이 접속을 차단당하지 않도록 IP를 화이트리스트에 등록하십시오.
  • 차단 원인을 파악할 수 있도록 보호 기능을 비활성화하기 전에 로그를 검토하십시오.

방화벽 및 악성코드 검사 사용 {#use-a-firewall-and-malware-scanning}

방화벽은 공격이 워드프레스에 도달하기 전에 차단합니다. 이후 악성코드 스캔을 통해 파일과 데이터베이스의 변조 여부를 확인합니다.

서버 설정을 직접 관리하지 않는 경우, 호스팅 업체의 방화벽 대시보드나 Wordfence, Sucuri와 같은 보안 플러그인을 사용하여 로그인 횟수를 제한하고 XML-RPC 트래픽을 제한하거나 차단하십시오.**

방화벽 설정

다중 방어 계층을 구축하세요. 에지(edge)에서는 WAF를, 악성 트래픽에는 서버 규칙을, 정리 작업에는 악성코드 검사를 활용하세요.

Firewall setup

관리형 플랫폼에서는 IP 또는 국가 차단 기능을 갖춘 내장형 웹 애플리케이션 방화벽(WAF)을 활성화할 수 있습니다. 예를 들어, Cloudways는 에지 필터링 및 봇 방지를 위한 선택적 Cloudflare Enterprise 애드온을 제공합니다.

악성코드 검사

예상치 못한 파일 변경 사항과 데이터베이스 주입(스팸 링크, 숨겨진 스크립트)을 검사하십시오.

다음 항목에 대해 정기적인 검사를 예약하십시오:

  • wp-content/uploads 내 파일 수정 및 알 수 없는 PHP
  • 데이터베이스 스팸 또는 삽입된 코드
  • 의심스러운 크론 작업 및 외부 연결

Cloudways는 Imunify360 기반의 악성코드 보호 애드온을 제공하여 서버 수준 스캔 및 자동 정리를 지원합니다.

WordPress에서 멀웨어를 제거하려면 다음 단계를 따르세요:

  • 유지보수 모드를 활성화하십시오.
  • 침입 경로(취약한 플러그인, 취약한 인증 정보)를 파악하십시오.
  • 모든 비밀 정보(관리자/DB 비밀번호, 솔트, SSH 키)를 교체하십시오.
  • 깨끗한 백업에서 복원하십시오.
  • 실제 서비스에 적용하기 전에 근본 원인을 해결하십시오.

고급 기술적 보안 강화 {#advanced-technical-hardening}

고급 기술적 강화는 워드프레스 설정을 기본 수준을 넘어 더욱 강화하는 단계입니다. 이 단계들은 로그인 정보나 플러그인이 해킹당했을 때 노출 위험을 줄이고 피해를 최소화하는 구성, 서버 제어 및 접근 정책에 중점을 둡니다.

wp-config.php 파일 보안 강화 {#secure-the-wp-config-php-file}

wp-config.php 파일에는 데이터베이스 인증 정보와 비밀 키가 포함되어 있습니다. 이 파일을 금고처럼 취급하십시오.

다음 명령어를 사용하여 엄격한 권한을 설정하세요:

chmod 400 wp-config.php.

이렇게 하면 다른 사용자와 프로세스가 파일을 읽거나 수정하는 것을 차단합니다. 웹 서버에 그룹 읽기 권한이 필요한 경우 440을 사용하십시오.

400 권한으로 설정했을 때 사이트가 작동하지 않는다면 440으로 변경하고, 그룹 소유권이 웹 서버가 실행되는 권한과 일치하는지 확인하십시오.

추가적인 보안을 위해, 환경이 허용한다면 wp-config.php 파일을 웹 루트 디렉터리보다 한 단계 위 위치로 이동하십시오. WordPress는 여전히 이 파일을 자동으로 불러옵니다.

사용자 역할 및 권한 제한 {#limit-user-roles-and-permissions}

사용자에게 필요한 권한만 부여하십시오(최소 권한 원칙). 이렇게 하면 해킹된 계정이 사이트 전체를 장악하는 것을 막을 수 있습니다.

WordPress에서 사용자 역할과 권한을 제한하려면 다음 단계를 따르세요:

  • '사용자''모든 사용자'로 이동합니다.
  • 검토할 사용자를 클릭합니다.
  • '역할' 드롭다운 메뉴에서 사용자에게 필요한 가장 낮은 역할(예: 구독자, 기여자, 작성자 또는 편집자)을 선택합니다.
  • '사용자 업데이트'를 클릭합니다.

관리자 권한을 가진 모든 계정에 대해 이 과정을 반복하고, 관리자 권한이 필요 없는 사용자의 권한을 하향 조정하십시오. 더 이상 아무도 사용하지 않는 비활성 계정은 삭제하거나 비활성화하십시오.

특별한 접근 권한이 필요한 경우 사용자 정의 역할을 사용하고, 권한을 할당하기 전에 기능을 검토하십시오. 분기별로 역할을 점검하고 불필요한 관리자 권한을 제거하십시오. 이렇게 하면 공격자가 도난당한 로그인 정보를 사용하여 수행할 수 있는 작업을 제한할 수 있습니다.

대시보드에서 파일 편집 기능 비활성화 {#disable-file-editing-from-the-dashboard}

내장된 테마 및 플러그인 편집기를 비활성화하세요. 이렇게 하면 해킹당한 관리자 계정이 사이트 파일에 악성 코드를 빠르게 삽입할 수 없게 됩니다.

WordPress 대시보드에서 파일 편집을 비활성화하려면 다음 단계를 따르세요:

  • SFTP 또는 호스팅 업체의 파일 관리자를 사용하여 사이트에 연결합니다.
  • WordPress 루트 디렉토리의 wp-config.php 파일을 편집하고 다음 내용을 추가합니다:
  • 파일을 저장하세요.
  • 워드프레스 관리자 화면에서 '모양'을 확인하세요. 테마 편집기가 사라집니다. 플러그인 편집기도 사라집니다.

팀에서 대시보드 편집에 의존하고 있다면, 해당 워크플로를 Git 기반 배포 또는 권한이 제한된 계정을 사용하는 SFTP로 전환하십시오.

XML-RPC 비활성화 {#disable-xml-rpc}

XML-RPC는 무차별 대입 공격 및 핑백 악용의 흔한 진입점입니다. 워드프레스 또는 서버 수준에서 이를 차단하십시오.

옵션 A: 워드프레스에서 비활성화

  • functions.php 또는 사용자 정의 플러그인에 다음 코드를 추가하세요:
  • 파일을 저장하세요.
  • 브라우저에서 https://yourdomain.com/xmlrpc.php로 접속하여 xmlrpc.php 엔드포인트를 엽니다. 일반적인 XML-RPC 메시지가 표시되지만, XML-RPC 요청은 더 이상 작동하지 않습니다.

이렇게 하면 워드프레스 계층에서 XML-RPC가 비활성화됩니다. xmlrpc.php 엔드포인트는 여전히 요청될 수 있으므로, 완벽한 보호와 부하 감소를 위해 웹 서버 또는 WAF에서 이를 차단하십시오.

옵션 B: 웹 서버 계층에서 차단**

서버에서 XML-RPC를 차단하는 것이 가장 강력한 방법입니다. 이는 PHP가 실행되기 전에 요청을 차단하기 때문입니다.

Nginx:

  • 해당 도메인의 Nginx 설정 파일을 엽니다.
  • 서버 블록에 xmlrpc.php에 대한 규칙을 추가합니다.
  • Nginx를 재시작하십시오.

Apache:

  • 허용되는 경우 사이트의 Apache 구성 파일 또는 .htaccess를 편집합니다.
  • xmlrpc.php 블록 규칙을 추가하세요.
  • Apache를 다시 로드하세요.

이렇게 하면 요청이 워드프레스에 도달하는 것을 완전히 차단하여 부하를 줄이고 일반적인 XML-RPC 공격 경로를 차단합니다.

참고: Jetpack 플러그인이나 WordPress 모바일 앱에서 XML-RPC가 필요한 경우, 이를 완전히 차단하지 마십시오. 대신 요청에 속도 제한을 적용하고, 가능한 경우 신뢰할 수 있는 IP에서만 액세스를 허용하십시오.

백업 및 모니터링 {#backups-and-monitoring}

예기치 않은 상황에 대비하세요. 백업을 통해 신속하게 복구할 수 있습니다. 모니터링을 통해 변경된 사항을 확인할 수 있습니다.

웹사이트를 정기적으로 백업하세요 {#back-up-your-website-regularly}

백업은 선택 사항이 아닙니다. 업데이트로 인해 운영 환경이 중단되거나, 플러그인이 해킹당하거나, 잘못된 배포로 인해 데이터베이스가 손상되었을 때 백업은 비상 탈출구 역할을 합니다.

여기서 중요한 것은 무엇이 누락되었는지 추측할 필요 없이 신속하게 복원할 수 있는 깨끗한 사이트 사본을 유지하는 것입니다.

수동 백업

다음 단계에 따라 워드프레스 사이트를 백업하세요:

  • 플러그인새로 추가에서 백업 플러그인을 설치하고 활성화합니다.
  • 플러그인을 열고 파일과 데이터베이스를 선택한 상태에서 '지금 백업'을 실행합니다.
  • 가능하다면 외부 저장소에 백업하세요.

자동 백업

대부분의 관리형 워드프레스 호스팅 서비스는 기본적으로 자동 백업 기능을 제공합니다. 일반적으로 매일 백업이 수행되며, 일정 기간 동안 순차적으로 보관되고, 호스팅 대시보드에서 원클릭 복원 지점으로 이용할 수 있습니다.

Automated backup

사이트가 변경되는 빈도에 따라 일정을 선택하세요.

  • 매일: 업데이트, 댓글 또는 주문이 빈번한 활성 사이트의 경우.
  • 매주: 변경 사항이 적은 마케팅 사이트용.
  • 매월:** **콘텐츠가 거의 변경되지 않는 경우.

전체 백업에는 데이터베이스, wp-content 폴더(특히 uploads 폴더), 그리고 설정에 따라 자동으로 재생성되지 않는 구성 파일이 포함됩니다.

모범 사례:

  • 백업본은 오프사이트에 저장하십시오. 서버 장애가 발생해도 백업본이 삭제되지 않습니다.
  • 최신 스냅샷뿐만 아니라 여러 복원 지점을 유지하십시오.
  • 복원 테스트를 정기적으로 수행하십시오. 테스트되지 않은 백업은 신뢰할 수 없습니다. 중요한 순간에 제대로 작동하기를 바랄 뿐입니다.

복원이 느리거나 실패하는 경우, 백업 파일이 과도하게 부풀어 있는 경우가 많습니다. wp-content 내부의 로그 파일이나 캐시 디렉터리로 인해 발생하는 백업 용량 증가를 확인하세요. 플랫폼에서 안전하게 재생성할 수 있다면 백업에서 캐시 디렉터리를 제외하세요.

사이트 모니터링 {#monitor-your-site}

보안 강화도 도움이 되지만, 모니터링을 통해 놓친 부분을 포착할 수 있습니다. 문제를 조기에 발견하십시오. 발생 원인을 추적할 수 있도록 로그를 준비해 두십시오.

가동 시간 모니터링

가동 시간 모니터링을 통해 사이트가 다운되거나, 홈페이지가 해킹당하거나, PHP를 오작동하게 만드는 업데이트가 적용되거나, 서버에 과부하를 일으키는 공격이 발생하는 등 문제가 발생한 시점을 파악할 수 있습니다.

UptimeRobot(넉넉한 무료 요금제)이나 Pingdom과 같은 가동 시간 모니터링 도구는 홈페이지와 주요 페이지에 대한 HTTP 및 키워드 점검을 수행합니다.

실용적인 설정:

  • 홈페이지와 가격, 결제, 메인 랜딩 페이지 등 로그인 없이도 작동하는 중요한 페이지 하나를 모니터링하십시오.
  • HTTP 상태 확인과 키워드 확인을 모두 사용하여, 해킹당했음에도 정상적인 200 응답을 반환하는 페이지가 놓치지 않도록 하세요.

보안 경고

계정 탈취, 변조 또는 이상 징후를 나타내는 이벤트에 대해 알림을 설정하세요.

Wordfence나 Sucuri와 같은 보안 플러그인은 로그인 급증, 파일 변경, 새로운 관리자 사용자 생성 시 알림을 제공합니다.

WordPress에서 알림을 설정하려면 다음 단계를 따르세요:

  • 플러그인새로 추가로 이동하십시오.
  • 알림 기능을 지원하는 보안 플러그인을 설치하고 활성화하세요.
  • 왼쪽 사이드바에서 플러그인을 엽니다.
  • 플러그인 설정에서 알림(Alerts) 또는 알림(Notifications)을 찾으세요.
  • 다음 항목에 대한 알림을 켭니다:
    • 새 관리자 사용자 생성
    • 플러그인 또는 테마 파일 변경
    • 로그인 트래픽 급증 또는 반복적인 로그인 실패
    • 중요한 플러그인 업데이트가 있을 때
    • DNS 또는 SSL 인증서 문제
  • 중요한 알림은 Slack이나 PagerDuty로 전송하세요. 우선순위가 낮은 알림은 이메일로 유지하세요.

활동 로그

사고 발생 시, 로그를 통해 가장 중요한 질문들에 대한 답을 얻을 수 있습니다: 무엇이 변경되었는지, 언제 변경되었는지, 누가 변경했는지, 그리고 어디서 변경했는지.

실제 설정 방법:

  • 사용자 생성, 플러그인 설치, 설정 변경과 같은 관리자 작업을 기록하십시오.
  • 서서히 진행되는 보안 침해 사고를 조사할 수 있도록 로그를 충분히 오래 보관하십시오.
  • 활동 로그를 서버 액세스 로그와 연동하여 IP 주소와 사용자 에이전트를 상호 연관시킬 수 있도록 하세요.

워드프레스에서 활동 로그를 활성화하려면 다음 단계를 따르세요:

  • 플러그인새로 추가로 이동합니다.
  • 활동 로그 플러그인을 설치하고 활성화하세요.
  • 왼쪽 사이드바에서 플러그인을 엽니다.
  • 사용자 생성, 플러그인 설치, 설정 변경과 같은 관리자 작업에 대한 로깅을 켭니다.
  • 로그 보관 기간을 설정한 후 저장합니다.
  • 가능하다면 로그 내보내기 또는 외부 저장소로 전송 기능을 활성화하세요.

로그가 너무 빠르게 증가하면, 나중에 필요할 수 있는 중요한 정보는 유지한 채로 용량을 줄이세요.

  • 중요하지 않은 이벤트에 대해서는 로깅 수준을 낮춥니다.
  • 로그를 적극적으로 순환시키세요.
  • 가능한 경우 외부 로그 저장소로 오프로드하십시오.

마무리 {#final-thoughts}

워드프레스 보안은 대개 사소한 이유로 무너집니다. 업데이트 누락, 취약한 비밀번호, 과도한 관리자 권한 등 사소한 허점이 너무 오랫동안 방치되기 때문입니다.

단 한 가지만 실천한다면, 바로 '꾸준함'입니다. 워드프레스 코어, 테마, 플러그인을 정기적으로 업데이트하세요. 관리자 계정에 2단계 인증(2FA)을 적용하세요. 길고 고유한 비밀번호를 사용하고, 뻔한 사용자 이름은 피하세요. 모든 페이지에서 HTTPS를 유지하여 로그인, 세션, 양식 데이터가 암호화되도록 하세요.

기본 사항이 갖춰지면 추가적인 보호 조치를 취하세요. 방화벽을 사용하여 악성 트래픽이 사이트에 도달하기 전에 차단하세요. 멀웨어 스캔과 파일 변경 모니터링을 실행하여 문제를 조기에 발견하세요. 백업을 오프사이트에 보관하고, 여러 복원 지점을 유지하며, 복원 테스트를 수행하여 복구 과정을 예측 가능하게 만드세요.

이러한 조치들을 마련해 두면, 워드프레스 사이트가 해킹당하기 어려워지고 모니터링이 쉬워지며, 문제가 발생했을 때 신속하게 복구할 수 있습니다.

자주 묻는 질문 {#frequently-asked-questions}

1. 워드프레스는 안전한가요?

네, 다음과 같은 기본 관행을 준수한다면 워드프레스는 안전합니다: 코어, 테마, 플러그인을 최신 상태로 유지하고, 관리자 계정에 강력하고 고유한 비밀번호와 2단계 인증(2FA)을 사용하며, 격리 기능과 방화벽이 갖춰진 호스팅을 선택하고, 정기적으로 백업을 수행하십시오.

2. 워드프레스에 보안 기능이 내장되어 있나요?

네. 워드프레스 코어에는 역할 및 권한, 관리자 작업 보호, 안전한 비밀번호 해싱, 정기적인 보안 업데이트와 같은 견고한 기본 기능이 포함되어 있습니다. 실제 발생하는 보안 침해의 대부분은 업데이트된 기본 코어 설치가 아닌, 오래된 플러그인과 테마, 취약한 인증 정보, 또는 잘못 구성된 서버에서 비롯됩니다.

랭크트래커를 만나보세요

효과적인 SEO를 위한 올인원 플랫폼

모든 성공적인 비즈니스의 배후에는 강력한 SEO 캠페인이 있습니다. 하지만 선택할 수 있는 최적화 도구와 기법이 무수히 많기 때문에 어디서부터 시작해야 할지 알기 어려울 수 있습니다. 이제 걱정하지 마세요. 제가 도와드릴 수 있는 방법이 있으니까요. 효과적인 SEO를 위한 Ranktracker 올인원 플랫폼을 소개합니다.

드디어 랭크트래커에 무료로 등록할 수 있게 되었습니다!

무료 계정 만들기

또는 자격 증명을 사용하여 로그인

3. 제 워드프레스 사이트가 해킹당했나요?

예상치 못한 리디렉션, 본인이 생성하지 않은 새로운 관리자 사용자, 배포 없이 변경된 테마나 플러그인 파일, 이상한 예약 작업, 갑작스러운 로그인 급증과 같은 명백한 위험 신호를 주의 깊게 관찰하세요. 보안 플러그인 로그와 서버 액세스 로그를 확인하십시오. Google Search Console을 사용하는 경우, 경고 메시지와 익숙하지 않은 색인 URL을 찾아보세요.

4. 워드프레스 사이트를 HTTPS로 전환하려면 어떻게 해야 하나요?

호스팅 대시보드에서 SSL 인증서를 설치하세요. 그런 다음 워드프레스의 홈 URL과 사이트 URL을 HTTPS로 업데이트하고, 관리자 영역과 프론트엔드에서 HTTPS를 강제 적용하세요. 혼합 콘텐츠 경고가 표시되면 데이터베이스와 테마 자산 내의 하드코딩된 HTTP 링크를 교체하세요. 프록시나 로드 밸런서를 사용하는 경우, 리디렉션 루프를 방지하기 위해 워드프레스가 원래 요청을 HTTPS로 인식하도록 설정하세요.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

랭크트래커 사용 시작하기... 무료로!

웹사이트의 순위를 떨어뜨리는 요인이 무엇인지 알아보세요.

무료 계정 만들기

또는 자격 증명을 사용하여 로그인

Different views of Ranktracker app