[WP] 워드프레스 무차별 대입 공격(brute-force attack)을 막는 9가지 방법

워드프레스 CMS로 만든 웹 사이트를 운영하게 되면, 관리자 주소는 https://www.domain.com/wp-admin이 됩니다. 무차별 대입 공격에 취약할 수 있는 이유는 관리자 페이지 주소 wp-admin 주소가 그대로 노출되기 때문입니다. 워드프레스를 포함한 웹 사이트의 관리자 주소가 admin과 같은 주소를 사용해서 무차별 대입 공격(brute-force attack)에 노출되는 것은 되도록 방지해야 합니다.

무차별 대입 공격(brute-force attack)이란?
웹 사이트나 컴퓨터 및 네트워크에 특정한 암호를 풀기 위해 모든 대입 값을 입력하는 것을 의미합니다. 공격은 일치하는 암호를 찾을 때까지 반복적으로 진행됩니다. 무차별 대입 공격 시간은 짧은 간격으로 자동화 된 공격이 빠르게 진행되기 때문에 admin, user과 같은 간단한 아이디와 숫자로만 이루어진 간단한 비밀번호는 해킹 당할 위험이 클 수 밖에 없습니다.

wordpress를 사용하는 홈페이지는 대입 공격에 방어하기 위해 워드프레스 보안 플러그인을 설치하거나 wp-admin 주소를 변경해 줄 수 있는 플러그인을 설치하는 방법, 소스 수정 등 의 방법을 생각할 수 있습니다. W3Techs 통계 자료에 따르면, 2023년 워드프레스 CMS는 전 세계 점유율 63%를 차지하기 때문에 더 많은 공격 대상이 될 수 밖에 없습니다. 차별 대입 공격은 서버에 많은 부하를 주기 때문에 SEO에도 안 좋습니다. 공격으로 로그인 정보를 확인하지 못 하더라도 웹 사이트 속도가 느려지거나 서버가 다운되는 경우가 발생할 수 있기 때문입니다.

무차별 대입 공격(brute force attack)

워드프레스 무차별 대입 공격 방어를 위한 플러그인 사용

해커의 비밀번호 무차별 대입 프로그램을 방어하기 위한 워드프레스는 생각한 플러그인의 대부분을 찾을 수 있습니다. wp-admin 페이지 변경을 위한 간단한 플러그인 설치를 할 경우 ‘WPS Hide Login‘과 같은 무료 플러그인 설치를 생각할 수 있습니다. 설정 전에는 반드시 백업을 해서 복원이 가능하도록 준비하는 것은 필수입니다.

올인원 워드프레스 보안 플러그인을 생각할 수 있습니다. 인기 있는 올인원 보안 플러그인은 iThemes Security, SUCURI Security, Wordfence Security , All In One WP Security, Shield Security, Jetpack, BulletProof Security 등 다양한 플러그인이 있습니다. 올인원 보안 플러그인은 brute-force attack 방어에 대한 옵션이 대부분 포함되어 있습니다.

워드프레스 보안 플러그인 비교표

brute force attack 방지를 위한 워드프레스 관리 방법

brute force attack 으로부터 워드프레스 웹 사이트를 보호하는 방법에 대해 알아 보겠습니다.

1. WordPress 방화벽 플러그인 설치

방화벽 플러그인을 설치하는 것은 대입 공격에 대한 웹 사이트의 서버 부하를 줄일 수 있습니다. 앞서 언급한 올인원 보안 플러그인을 설치해서 대입 공격을 방어할 수 있습니다.

2. 이중 인증 설정(2FA)

비밀번호를 해킹 프로그램에 의해 확인이 되더라도 2단계 인증 설정을 하면, 로그인을 하는 것이 불가능해집니다.

Wordfence Security의 2FA는 Google Authenticator, FreeOTP 및 Authy와 같은 여러 OTP 기반 앱과 함께 작동합니다. 

3. 로그인 페이지 숨기기

Hide My WPWP Hide and Security Enhancer 등과 같은 워드프레스의 로그인 페이지를 숨길 수 있는 보안 플러그인을 설치할 수 있습니다.

4. 로그인 시도 제한

대입 공격 방어에 효과적인 방법은 로그인 시도 횟수를 제한하는 것입니다. 올인원 보안 플러그인 설치를 고려한다면 이 기능이 있는지 여부를 필수 항목으로 체크✅할 것을 권장합니다. 예를 들어 틀린 비밀번호 10회 입력으로 IP가 4시간 및 하루 정도 차단할 수 있는 설정이 있다면, 무차별 대입 공격 툴을 이용한 봇 공격으로 더 이상 해킹 시도를 하지 못합니다.

5. 복잡한 비밀번호

복잡하게 만든 비밀번호는(영문, 특수문자, 숫자 조합 등) 브루트포스 공격brute force attack사전 대입 공격Dictionary Attack에 효과적인 방어가 가능합니다. 다른 웹 사이트와 다른 비밀번호를 사용하는 것이 중요합니다. 절대 워드프레스에서 기본 관리자인 ‘admin’을 그대로 사용하지 말고 다른 관리자로 변경해야겠지요.

6. Bad Bots 차단

봇은 단순 작업을 반복적으로 수행하게끔 만들어진 프로그램입니다. 모든 웹 사이트 트래픽의 25% 이상이 봇이기 때문에 봇 보호 및 차단을 할 수 있는 플러그인을 선택하는 것이 중요합니다. Google Bot, Bing Bot 등을 차단하면, 웹 사이트가 검색 엔진에 노출되지 않기 때문에 신뢰할 수 있는 플러그인을 설치해야 합니다.

7. XML-RPC 비활성화

워드프레스 XML-RPC 취약점은 이미 많이 알려져 있는 사실입니다. xmlrpc.php 파일을 이용한 워드프레스 사이트에 대한 무차별 대입 공격이 문제입니다. XML-RPC를 비활성화 해서 무차별 대입 공격과 핑백을 이용한 DDoS 공격을 원천 차단할 것을 권장합니다.

8. PHP 실행 비활성화

wp-admin 폴더를 암호로 보호하는 방법이 무차별 대입 방지에 나오지만 admin-ajax.php 파일 제한으로 비 로그인 사용자의 AJAX가 손상될 수 있습니다. 워드프레스 폴더 및 파일이 브라우저에 공개적으로 노출됩니다. 워드프레스 보안 플러그인이나 .htacss 파일 등에서 PHP 실행을 비활성화 하는 것을 고려할 수 있습니다.

테마, 플러그인 업데이트, 콘텐츠, 웹사이트 설정 등의 기능을 해커가 취득하면 악성 파일이 디렉토리에 심어질 수 있습니다. PHP 실행 비활성화 설정 후 오류가 발생할 경우를 대비해 원래 상태로 복원할 수 있게 끔 준비를 하는 것이 중요합니다. 

PHP 실행이 필요한 디렉토리
public_html : 루트 폴더
wp-includes
wp-admin
wp-content
wp-content/themes/
wp-content/plugins/

PHP 실행이 필요없는 디렉토리
wp-content/uploads/
비활성화 방법은 .htaccess 파일을 만든 후 아래와 같이 입력합니다.
<Files *.php>
deny from all
</Files>

파일을 /wp-content/uploads/ 및 /wp-includes/ 폴더에 업로드 합니다. PHP 비활성화는 피싱 공격 및 SEO 스팸 등 다른 공격에도 방어가 가능합니다.

9. WordPress 정기적인 업데이트

마지막으로 워드프레스 테마와 플러그인의 정기적인 업데이트를 해야 합니다. 구 버전의 워드프레스 코어, 테마와 플러그인은 보안에 취약합니다. 업데이트가 이루어지지 않아 보안이 허술해지면, 사이트는 공격에 노출됩니다. 업데이트가 중지된 오래된 플러그인은 동일한 기능을 가진 다른 플러그인으로 변경하는 걸 추천합니다.

결론 및 정리

9가지 방법 중 이중 인증 설정(2FA)의 경우 모든 대부분의 올인원 플러그인 기능에 들어 있으며, 나머지 방법을 사용해 사이트 보안을 강화하는 것이 더 낫다고 생각합니다. 최소한의 7가지 설정 외 PHP 실행 비활성화도 추가 옵션으로 고려해 볼만 하다고 생각됩니다.

Similar Posts

  • [WP] Softaculous 사용 워드프레스 스테이징 사이트 만드는 방법

    워드프레스를 사용할 때 플러그인 설치 및 업데이트 등을 포함한 여러가지 변경 사항을 안전하게 테스트 하기 위한 사이트가 필요할 수 있습니다. ‘워드프레스 스테이징 사이트‘를 만든다면 안전한 테스트가 가능합니다. 목차워드프레스 무차별 대입 공격 방어를 위한 플러그인 사용brute force attack 방지를 위한 워드프레스 관리 방법1. WordPress 방화벽 플러그인 설치2. 이중 인증 설정(2FA)3. 로그인 페이지 숨기기4. 로그인…

  • 워드프레스 DB Collation: utf8mb4_unicode_520_ci

    워드프레스 전용 서버를 구축하기 위한 준비를 APM 설치 후 테스트 도메인으로 워드프레스를 설치했다. 설치 후 데이터베이스를 확인해 보니 워드프레스 DB Collation이 utf8mb4_general_ci가 아닌 utf8mb4_unicode_520_ci로 확인되었다. 워드프레스 utf8mb4_unicode_520_ci가 표준이었나 생각하다가 구글링 후 워드프레스 utf8mb4_unicode_520_ci가 표준이라는 것을 확인했다. 예전에 시간적 여유가 있을 때 utf8mb4_general_ci를 사용했었고 그때는 utf8mb4_general_ci가 표준이었는지 모르겠지만 지금 생각해보니 예전에도 표준 정렬은 unicode_ci를…

  • Perfmatters 플러그인 리뷰 & 가이드: 3년 동안 사용한 워드프레스 성능 최적화 설정 방법

    Perfmatters 플러그인은 워드프레스 최적화 플러그인 중에서도 가볍고 강력한 퍼포먼스를 제공하는 도구입니다. 불필요한 스크립트와 리소스를 손쉽게 제어해 페이지 로딩 속도를 개선하고, 서버 부하를 최소화할 수 있습니다. 3년 이상 사용하면서 느낀 점은, 단순한 속도 향상을 넘어 사이트 전체의 안정성과 관리 편의성을 높여준다는 점이었습니다. 현재 이 웹사이트는 WP Rocket Cache 플러그인과 Perfmatters를 함께 사용하고 있습니다. 이…

  • [WP] 워드프레스 htaccess 기본 설정 및 WWW URL 제거 방법

    워드프레스로 사이트를 운영하는 중에 .htaccess 파일 기본 설정이 필요할 때가 있습니다. 워드프레스 htaccess 기본 설정은 일반 사이트와 멀티 사이트 용으로 나뉩니다. FTP 또는 SSH 등으로 .htaccess 파일이 없는 경우 확인이 되면 아래 내용을 참조해서 생성하면 되겠습니다. 목차워드프레스 무차별 대입 공격 방어를 위한 플러그인 사용brute force attack 방지를 위한 워드프레스 관리 방법1. WordPress 방화벽…

  • [WP] FastComet Hosting 3가지 측면으로 보기: 기능, 가격, 장단점

    FastComet은 750,000명 이상의 소기업 및 개인 웹사이트 소유자가 서비스를 사용하는 인기 있는 웹 호스팅 회사입니다. 공유 호스팅 업체 중 FastComet을 사용하면서 FastComet Hosting의 장·단점에 대해 알아 보겠습니다. FastComet은 Cloudflare CDN CDN 캐싱과 무료 일일 백업, 핫링크 보호 등 매력적인 부가 기능과 함께 공유 호스팅을 제공하고 있습니다. 공유 호스팅과 클라우드 VPS 호스팅, 전용 CPU…

  • Autoptimize: 워드프레스 최적화 플러그인

    워드프레스 성능 향상을 위한 방법으로 캐시 플러그인 외 최적화 플러그인 설치를 고려할 수 있습니다. 대표적인 성능 향상 플러그인으로 Autoptimize, Asset CleanUp, Perfmatters 이 세 가지 플러그인을 들 수 있습니다. 3개의 플러그인은 코드 및 리소스 최적화 분야에서 가장 대표적으로 언급되는 워드프레스 성능 향상 플러그인들입니다. 캐시 플러그인은 페이지 로딩 속도를 빠르게 하기 위해 서버 부담을…