WordPress 사이트를 보호하는 14가지 방법 – 단계별

게시 됨: 2022-01-05

WordPress 보안은 사이트 소유자에게 최우선 순위가 되어야 합니다. 왜요? 1분에 WordPress 사이트에서 최대 90,000건의 공격이 발생하기 때문입니다.

그것으로 충분하지 않다면 Google은 매주 약 20,000개의 웹사이트에서 멀웨어를 차단하고 50,000개의 웹사이트를 피싱으로 차단합니다. 웹사이트가 블랙리스트에 오르고 사용자가 위험에 동의해야 하는 경우 트래픽의 약 95%가 손실됩니다.

최신 버전의 WordPress는 항상 가장 안전한 릴리스이지만 해커와 봇이 침입할 수 없도록 사이트에서 할 수 있는 일이 더 많습니다.

다음은 사이트를 보호하는 데 도움이 되는 몇 가지 모범 사례 팁입니다.

  1. 좋은 웹 호스트를 사용하십시오
  2. 고품질 테마 및 플러그인만 사용
  3. WordPress Core, 테마 및 플러그인을 최신 상태로 유지
  4. "Admin"을 사용자 이름으로 사용하지 마십시오.
  5. 강력한 암호 사용
  6. 이중 인증 사용
  7. 로그인 시도 제한
  8. SSL 인증서 설치
  9. 데이터베이스 접두사 변경
  10. wp-config.php 및 .htaccess 파일 보호
  11. 보안 키 추가
  12. 파일 편집 비활성화
  13. PHP 파일 실행 방지
  14. 선택적으로 XML-RPC 비활성화

1. 좋은 웹 호스트를 사용하라

좋은 웹 호스트는 사이트에 대한 공격에 대한 첫 번째 방어선입니다. 따라서 저렴한 공유 호스팅을 자동으로 선택하지 마십시오. 대신 숙제를 하세요.

PHP 및 MySQL과 같은 최신 버전의 기본 웹 기술을 지원하는 평판 좋은 호스트와 함께 하십시오. 호스트가 PHP 7을 지원하는지 확인하십시오. 이것은 WordPress의 공식 권장 PHP 버전입니다.

관리형 WordPress 호스트 선택을 고려하십시오. 이 서비스는 WordPress용으로 특별히 설정되었으며 보안, 백업, 가동 시간 및 성능을 포함하여 호스팅의 모든 중요한 기술적 측면을 돌봅니다.

2. 고품질 테마 및 플러그인만 사용

WPScan에 따르면 웹사이트 취약점의 52%는 플러그인으로 인해 발생하고 11%는 테마로 인해 발생합니다. 결합하면 WordPress 보안의 60% 이상입니다.

플러그인과 테마가 공격에 견딜 수 있도록 하는 가장 쉬운 방법은 평판이 좋은 출처에서만 다운로드하는 것입니다. 여기에는 WordPress.org 및 프리미엄 제공업체가 포함됩니다. 테마 및 플러그인에 악성 코드를 숨기는 멍청한 개발자로부터 다운로드하면 사이트가 손상될 수 있습니다.

다운로드하려는 웹 사이트가 안전한지 확실하지 않은 경우 사용 후기와 리뷰를 찾아보고 원하는 제품의 품질을 확인하십시오.

또한 사용하는 플러그인과 테마도 잘 지원되고 정기적으로 업데이트되는지 확인하십시오. 플러그인이나 테마가 오랫동안 업데이트되지 않은 경우 패치되지 않은 보안 허점이 있거나 해킹에 취약할 수 있는 잘못된 코드가 포함될 가능성이 있습니다.

마지막으로, 실제로 필요하고 사용하는 플러그인과 테마만 유지하십시오. 많을수록 해킹당할 위험이 높아집니다. 따라서 정기적으로 플러그인 및 테마 목록을 검토하고 필요하지 않은 것은 비활성화하고 삭제하십시오.

3. WordPress 핵심, 테마 및 플러그인을 최신 상태로 유지

WordPress는 오픈 소스 소프트웨어이며 전 세계 자원 봉사자 커뮤니티에서 개발 및 유지 관리합니다. 새로운 릴리스가 나올 때마다 보안 취약점이 패치됩니다.

기본적으로 WordPress는 사소한 업데이트(예: WordPress 4.9.4)를 자동으로 설치합니다. 그러나 주요 릴리스(예: WordPress 4.9)의 경우 수동으로 최신 버전으로 업데이트해야 합니다.

사이트에서 항상 최신 버전의 WordPress를 실행하고 있는지 확인하십시오.

이러한 핵심 업데이트는 사이트의 보안 및 성능에 매우 중요합니다. 따라서 사이트를 백업하고 핵심 업데이트가 제공되면 적용하십시오.

마찬가지로 플러그인과 테마를 정기적으로 업데이트하여 항상 최신 보안 버전의 소프트웨어를 사용하는 것도 중요합니다.

4. "Admin"을 사용자 이름으로 사용하지 마십시오.

사이트의 사용자 이름으로 "admin"을 사용하지 마십시오. 이전 버전의 WordPress는 기본 사용자 이름으로 "admin"을 사용하여 무차별 대입 공격 중에 추측할 퍼즐 조각이 하나 줄어들었습니다.

그러나 WordPress의 최근 릴리스에서는 이를 변경하여 사용자가 설치 중에 자신의 사용자 이름을 입력할 수 있습니다. 그러나 일부 사람들은 여전히 ​​원래 사용자 이름 대신 "admin"을 사용하기로 선택합니다. 그냥하지 마십시오.

악의적인 공격자가 사이트에 침투하는 것을 더 어렵게 만들고 공격에 더 오래 걸리고 귀하 또는 귀하의 호스팅 공급자가 공격이 성공하기 전에 식별하고 차단할 수 있습니다.

5. 강력한 암호 사용

항상 WordPress 관리자 계정, 데이터베이스, 호스팅 계정, 이메일 주소 및 FTP 계정에 대해 강력하고 고유한 암호를 만드십시오. 사용자 이름과 마찬가지로 비밀번호는 해커가 추측할 수 있는 또 다른 퍼즐 조각이며 비밀번호가 강할수록 해커가 사이트에 성공적으로 로그인하기가 더 어려워집니다.

설치하는 동안 WordPress는 강력한 암호를 강제로 시도하고 약한 암호를 입력하면 확인란을 선택하도록 요청합니다. 자신만의 암호를 만들고 싶을 수도 있지만 Secure Password Generator와 같은 도구를 사용하면 강력한 암호를 만들 수 있습니다.

보안 암호 생성기를 사용하면 고유하고 임의의 암호를 만들 수 있습니다.

6. 이중 인증 사용

강력한 사용자 이름과 암호를 사용하더라도 무차별 대입 공격은 여전히 ​​많은 웹사이트에서 문제입니다. 이때 이중 인증이 도움이 될 수 있습니다.

이중 인증은 로그인 프로세스에 또 다른 단계를 추가하여 사용자가 일반적인 로그인 자격 증명을 입력하는 것 외에도 휴대폰으로 전송된 코드를 입력하도록 합니다. 이렇게 하면 자동 공격을 차단하고 사이트가 해커의 희생양이 되지 않도록 할 수 있습니다.

iThemes Security와 같은 플러그인은 이중 인증을 구현할 수 있습니다. 이 추가 보안 계층을 사이트에 추가할 수 있는 Two Factor Authentication과 같은 무료 플러그인도 있습니다.

무료 Two Factor Authentication 플러그인을 사용하면 사이트에 로그인할 때 다른 보호 계층을 쉽게 추가할 수 있습니다.

7. 로그인 시도 제한

기본적으로 WordPress 계정에 원하는 만큼 로그인을 시도할 수 있습니다. 이것은 당신이 잊어버리고 처음 또는 세 번째 시도에서 비밀번호를 정확히 알지 못하는 경우에 편리할 수 있지만 해커가 무차별 대입 공격을 수행하는 경우에도 편리합니다. 이는 해커에게 무제한의 크랙 시도를 제공합니다. 사용자 이름과 비밀번호 조합.

이것은 사용자가 사이트에서 할 수 있는 로그인 시도 실패 횟수를 제한하여 쉽게 해결할 수 있습니다. WP Limit Login Attempts와 같은 무료 플러그인을 사용하면 로그인 시도를 제한하고 IP 주소를 일시적으로 차단할 수 있습니다.

8. SSL 인증서 설치

특히 전자 상거래 상점이 있는 경우 사이트에 SSL 인증서를 설치해야 합니다. 해커가 사용자 브라우저와 서버 사이의 민감한 정보를 가로채는 것을 어렵게 만들 뿐만 아니라 이제 Google은 모든 사이트에 하나가 있어야 한다고 주장하기 때문입니다.

Chrome 68 출시와 함께 2018년 7월부터 HTTPS 없이 로드되는 웹 페이지는 "안전하지 않음"으로 표시됩니다. 즉, SSL 인증서가 없는 사이트에 액세스하려는 사용자는 해당 사이트를 신뢰할 수 없다는 경고를 받게 됩니다.

Cloudflare에 따르면 웹 방문자의 절반 이상이 이러한 경고를 볼 것이기 때문에 이 발표는 큰 의미가 있습니다.

Let's Encrypt는 사이트 소유자에게 SSL 인증서를 제공하는 무료 인증 기관입니다.

SSL 인증서를 얻는 것이 점점 더 쉬워지고 있습니다. Let's Encrypt는 무료 오픈 소스 인증서를 제공하는 반면 호스팅 회사는 일반적으로 무료(때로는 무료) 인증서를 제공합니다.

9. 데이터베이스 접두사 변경

기본적으로 WordPress는 사이트 데이터베이스의 모든 테이블에 대한 접두사로 wp_를 사용합니다. 즉, WordPress의 일반적인 지식인 기본값을 사용하는 경우 해커가 테이블 이름을 쉽게 추측할 수 있으므로 SQL 주입에 취약합니다.

임의의 문자열 생성기를 사용하여 5jiqtu69dg_ 와 같이 접두사를 임의의 것으로 변경하도록 이 문제를 수정하는 간단한 방법입니다. 테이블의 접두사를 업데이트하려면 사이트 파일 디렉토리의 루트에서 wp-config.php 파일을 열고 다음 행을 찾으십시오.

 $table_prefix = 'wp_';

내 예를 사용하여 다음과 같이 줄을 바꿉니다.

 $table_prefix = '5jiqtu69dg_';

다음으로 데이터베이스에 사용된 접두사를 업데이트해야 합니다. iThemes Security와 같은 보안 플러그인을 사용하면 빠르고 쉽게 수행할 수 있지만 여기에서 phpMyAdmin을 통해 수동으로 수행하는 방법을 배울 수 있습니다.

10. wp-config.php 및 .htaccess 파일 보호

일반적으로 웹사이트의 루트 폴더에 있는 사이트의 wp-config.php 파일에는 데이터베이스의 이름, 호스트, 사용자 이름 및 암호를 포함하여 WordPress 설치에 대한 중요한 정보가 포함되어 있습니다. 한편, .htaccess는 디렉토리 수준 서버 구성을 설정하고, 예쁜 영구 링크를 활성화하고, 리디렉션을 허용하는 숨김 파일입니다.

이러한 중요한 파일에 대한 액세스를 방지하는 것은 쉽습니다. wp-config.php를 보호하려면 .htaccess 파일에 다음을 추가하기만 하면 됩니다.

 <파일 wp-config.php>
주문 허용, 거부
모두를 부정하다
</파일>

또는 WordPress가 자동으로 해당 파일을 찾기 때문에 wp-config.php 파일을 상위 디렉토리로 이동할 수 있습니다.

.htaccess에 대한 원치 않는 액세스를 중지하려면 코드에서 파일 이름을 변경하기만 하면 됩니다.

 <파일 .htaccess>
주문 허용, 거부
모두를 부정하다
</파일>

11. 보안 키 추가

WordPress 보안 키 및 솔트는 브라우저 쿠키에 저장된 정보를 암호화하여 비밀번호 및 기타 민감한 정보를 보호합니다. 총 4개의 보안 키가 있습니다: AUTH_KEY , SECURE_AUTH_KEY , LOGGED_IN_KEYNONCE_KEY .

이러한 인증 키는 기본적으로 임의의 변수 집합이며 암호를 해독하기 어렵게 만듭니다. "wordpress"와 같은 암호화되지 않은 암호는 공격자가 해독하는 데 많은 노력이 필요하지 않습니다. 그러나 "L2(Bpw 6#:S.}tjSKYnrR~.Dys5c>+>2l2YMMSVWno4`!%wz^GOBf};uj*>-tkye"와 같은 길고 임의의 암호는 해독하기가 훨씬 더 어렵습니다.

보안 키와 솔트를 추가하는 것은 수동 프로세스이며 수행하기 쉽습니다. 방법은 다음과 같습니다.

  1. 새로운 보안 키 및 솔트 세트를 받으세요. 여기에서 무작위로 생성할 수 있습니다.
  2. 다음으로 wp-config.php 파일을 업데이트하십시오. 파일을 열고 아래 섹션을 찾을 때까지 아래로 스크롤하고 이전 값을 새 키와 솔트로 바꾸십시오.
 /**#@+
 * 인증 고유 키 및 솔트.
 *
 * 이것을 다른 독특한 문구로 변경하십시오!
 * {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}를 사용하여 생성할 수 있습니다.
 * 언제든지 이를 변경하여 기존의 모든 쿠키를 무효화할 수 있습니다. 이렇게 하면 모든 사용자가 다시 로그인해야 합니다.
 *
 * @2.6.0부터
 */
define('AUTH_KEY', '여기에 고유 변수를 추가하세요');
define('SECURE_AUTH_KEY', '여기에 고유 변수를 추가하세요');
define('LOGGED_IN_KEY', '여기에 고유 변수를 추가하세요');
define('NONCE_KEY', '여기에 고유 변수 추가');
define('AUTH_SALT', '여기에 고유 변수 추가');
define('SECURE_AUTH_SALT', '여기에 고유 변수를 추가하세요');
define('LOGGED_IN_SALT', '여기에 고유 변수를 추가하세요');
define('NONCE_SALT', '여기에 고유 변수를 추가하세요');

/**#@-*/
  1. wp-config.php 파일을 저장합니다. WordPress 사이트에서 자동으로 로그아웃되며 다시 로그인해야 합니다.

12. 파일 편집 비활성화

WordPress에는 플러그인 및 테마 파일을 위한 내부 코드 편집기가 있습니다. 이는 파일을 빠르게 변경하려는 관리자에게 유용하지만 해커와 고급 사용자도 파일을 변경할 수 있음을 의미합니다. WordPress 관리자에서 모양 > 편집기 로 이동하여 이 기능을 찾을 수 있습니다.

wp-config.php 파일에서 파일 편집을 비활성화할 수 있습니다. 파일을 열고 다음 코드 줄을 추가하기만 하면 됩니다.

 정의('DISALLOW_FILE_EDIT', 참);

WordPress 관리자가 아닌 FTP 또는 cPanel을 통해 플러그인과 테마를 계속 편집할 수 있습니다.

13. PHP 파일 실행 방지

해커가 WordPress에서 맬웨어를 업로드하는 일반적인 폴더는 wp-content/uploads 이지만 wp-includes/ 이기도 합니다. 이러한 폴더에서 파일이 실행되지 않도록 하려면 텍스트 편집기에서 새 텍스트 파일을 만들고 다음 코드를 붙여넣습니다.

 <파일 *.php>
모두를 부정하다
</파일>

그런 다음 이 파일을 .htaccess로 저장하고 FTP 또는 cPanel을 통해 /wp-content/uploadswp-includes/ 폴더에 업로드합니다.

14. 선택적으로 XML-RPC 비활성화

XML-RPC 또는 XML 원격 프로시저 호출은 웹 및 모바일 앱을 WordPress 사이트와 연결하는 데 도움이 되는 API입니다. WordPress 3.5에서 기본적으로 활성화되었지만 이후 무차별 대입 공격을 크게 증폭시키는 것으로 밝혀졌습니다.

예를 들어 해커가 사이트에서 500가지 다른 비밀번호를 시도하려는 경우 일반적으로 500번의 개별 로그인 시도를 해야 합니다. 그러나 XML-RPC를 사용하면 해커가 system.multicall 함수를 사용하여 단일 HTTP 요청에서 많은 수의 사용자 이름과 암호 조합을 시도할 수 있습니다.

사이트에서 이 기능을 완전히 비활성화하는 것은 쉽지만 Jetpack과 같은 플러그인의 기능을 잃게 됩니다. 대신 특별히 설계된 플러그인을 사용하여 XML-RPC를 구현하고 비활성화하는 방식을 선택하는 것이 가장 좋습니다.

보너스: 취약점 확인 방법

온라인 사이트 스캐너 또는 플러그인을 사용하여 사이트에서 취약점을 확인할 수 있는 몇 가지 다른 방법이 있습니다.

이 무료 온라인 도구를 사용하면 사이트의 URL을 입력하기만 하면 사이트에서 알려진 취약점을 검색하기 시작합니다.

WordPress 보안 스캔 – 이 도구는 기본 보안 문제를 수동적으로 확인합니다. 고급 테스트를 위해서는 프리미엄 플랜으로 업그레이드해야 합니다.

Sucuri SiteCheck – 웹사이트에서 알려진 맬웨어, 블랙리스트 상태, 웹사이트 오류 및 오래된 소프트웨어를 확인합니다. 프리미엄 업그레이드를 통해 이 도구는 맬웨어 정리, DDoS/무차별 대입 방지, 블랙리스트 제거 및 보안 모니터링을 수행합니다.

WPScan – GitHub에서 호스팅되는 이 블랙박스 WordPress 취약점 스캐너를 사용하면 코어, 플러그인 및 테마로 알려진 취약점에 대해 사이트를 스캔할 수 있습니다. 이 응용 프로그램을 실행하려면 터미널을 사용해야 합니다. 개인 사용은 무료이며 Sucuri에서 후원합니다.

보너스: 최고의 WordPress 보안 플러그인

WordPress 사이트에 보안 플러그인을 설치하면 가능한 공격에 대한 또 다른 방어선이 추가됩니다. 사이트 스캔을 포함하여 사이트를 보호하는 데 도움이 되는 다양한 기능을 제공하며 사이트가 손상된 경우 이를 알려줄 수 있습니다.

다음은 상위 3개 플러그인입니다.

워드펜스

워드펜스 보안 플러그인.

WordFence는 200만 개 이상의 활성 설치와 사용 가능한 프리미엄 옵션이 있는 매우 인기 있는 무료 보안 플러그인입니다. 최신 방화벽 규칙, 맬웨어 서명 및 악성 IP 주소를 가져와 웹 사이트 사이트를 유지하는 "위협 방어 피드"를 제공합니다.

웹 애플리케이션 방화벽은 악성 트래픽을 식별하고 차단하며, 실시간 IP 블랙리스트는 악성 IP의 모든 요청을 차단하여 사이트를 보호하면서 로드를 줄입니다.

이 플러그인은 로그인 시도를 제한하고 강력한 암호를 적용하고 기타 로그인 보안 조치를 취하여 무차별 대입 공격으로부터 보호합니다. 사이트에서 감염이 발견되면 이메일로 알려줍니다. 또한 사이트에 대한 트래픽을 실시간으로 모니터링하여 공격을 받고 있는지 확인할 수 있습니다.

수쿠리

Sucuri 보안 플러그인.

무료 보안 플러그인의 경우 Sucuri의 보안 플러그인은 보안 활동 감사, 파일 무결성 모니터링, 원격 멀웨어 스캔, 블랙리스트 모니터링 및 보안 강화 조치에 대한 모든 변경 사항을 주시할 수 있는 보안 활동 감사를 포함한 포괄적인 기능 세트를 제공합니다.

플러그인의 "해킹 후 보안 작업" 섹션에서는 침해 후 수행해야 하는 세 가지 주요 작업을 안내합니다. 또한 보안 알림을 활성화하여 사이트에서 감염이 발견되거나 손상된 경우 즉시 알림을 받을 수 있습니다.

프리미엄 버전으로 업그레이드하면 추가 보호를 위해 웹사이트 방화벽에 액세스할 수 있습니다.

iThemes 보안

iThemes 보안 플러그인.

iThemes Security의 무료 버전은 WordPress를 잠그고, 일반적인 허점을 수정하고, 사용자 자격 증명을 강화하는 데 도움이 되지만, 프로 버전은 필요한 모든 보안 조치를 제공합니다.

2단계 인증, 맬웨어 검사 예약 및 사용자 작업 로깅이 있으므로 사용자가 콘텐츠를 편집하거나 로그인 또는 로그아웃할 때를 추적할 수 있습니다. 보안 키와 솔트를 업데이트하고 비밀번호 만료를 설정하고 사이트에 Google reCAPTCHA를 추가할 수 있습니다.

기타 기능에는 온라인 파일 비교, WP-CLI 통합 및 임시 권한 상승이 포함되므로 사이트에 대한 임시 관리자 또는 편집자 액세스 권한을 부여할 수 있습니다.

결론

보안 위협으로부터 WordPress 사이트를 보호하는 올바른 방법은 없습니다. 할 수 있는 최선은 WordPress 코어, 테마 및 플러그인을 최신 상태로 유지하고 취약점을 패치하고 중요한 파일을 보호하며 사용자가 자격 증명을 강화하도록 하는 다양한 솔루션을 구현하는 것입니다.

정기적인 백업을 예약하는 것도 필수입니다. 귀하의 사이트가 언제 공격을 받을지 알 수 없으므로 비상 시 사이트를 신속하게 복구할 수 있도록 준비하고 계획을 세우는 것이 중요합니다.

사이트의 취약점을 스캔하고, 조치를 모니터링하고, 잘못된 것이 있을 때 경고할 수 있는 견고한 보안 플러그인에 투자하면 사이트를 강화하고 위협으로부터 잘 보호되도록 할 수 있습니다.