WordPress 보안: 사이트 보안 및 보호를 위한 16단계

게시 됨: 2021-08-18

보안과 관련하여 존재하는 WordPress 특정 유형의 보안은 없습니다. 보안과 관련된 모든 문제는 모든 웹사이트 또는 애플리케이션에 공통적입니다.

WordPress 보안 문제는 웹의 약 40%를 지원하고 오픈 소스이기 때문에 큰 관심을 끌고 있습니다. WordPress 코어 또는 플러그인에서 취약점을 발견하면 이를 사용하는 다른 웹사이트가 모두 동일한 코드를 사용하기 때문에 취약해집니다.

반면에 웹 사이트 보안을 강화하는 데 사용할 수 있는 상당한 수의 플러그인이 있습니다.

이 칼럼에서는 다양한 유형의 취약점에 대해 WordPress 사이트를 강화하는 방법을 배우게 되지만 이 문서의 범위는 더 넓고 모든 유형의 웹 애플리케이션에 적용됩니다.

WordPress 취약점으로부터 보호

가장 일반적인 유형의 취약점은 다음과 같습니다.

  1. 백도어.
  2. 제약 해킹.
  3. 무차별 대입 로그인 시도.
  4. 악성 리디렉션.
  5. XSS(교차 사이트 스크립팅).
  6. 서비스 거부(DDoS).

이것들은 일반적인 유형의 취약점이지만 이것이 이들에만 국한된다는 의미는 아닙니다. 일반적으로 보안에 대해 생각할 때 360° 방식으로 생각해야 합니다.

웹사이트를 해킹하는 방법에는 제한이 없습니다. 공격자는 다양한 기술을 사용하여 사이트에 액세스할 수 있습니다.

예를 들어, 그들은 당신의 PC를 훔쳐 당신의 컴퓨터에 물리적으로 접근할 수 있습니다. 그들은 또한 감시 기술을 사용하여 공용 네트워크에서 웹사이트에 로그인할 때 암호를 볼 수 있습니다.

공격자의 삶을 조금 더 어렵게 만들기 위해 WordPress 설치를 강화하는 방법에 대해 알아보겠습니다.

WordPress 웹 사이트 보안을 강화하는 16가지 방법에 대해 자세히 알아보려면 계속 읽으십시오.

  1. HTTPS를 사용합니다.
  2. 항상 강력한 암호를 사용하십시오.
  3. 암호 관리자를 사용하여 암호를 저장합니다.
  4. 로그인 양식에서 보안 문자를 활성화합니다.
  5. 무차별 대입 로그인 시도를 방지합니다.
  6. 이중 인증을 사용합니다.
  7. 플러그인을 최신 상태로 유지하십시오.
  8. 보안 HTTP 헤더를 설정합니다.
  9. WordPress 파일에 대한 올바른 파일 권한을 설정하십시오.
  10. WordPress에서 파일 편집을 비활성화합니다.
  11. 모든 불필요한 기능을 비활성화하십시오.
  12. WordPress 버전을 숨깁니다.
  13. 워드프레스 방화벽을 설치하세요.
  14. 백업을 유지하십시오.
  15. SFTP를 사용합니다.
  16. 사용자의 활동을 모니터링합니다.

1. HTTPS로 사이트 보호

HTTPS로 웹사이트 보안을 시작하는 것은 우연이 아닙니다.

당신이 하는 모든 것은 네트워크와 유선 케이블을 통해 흐릅니다. HTTP 는 브라우저와 서버 간에 데이터를 일반 텍스트로 교환합니다. 따라서 서버와 브라우저 사이의 네트워크에 액세스할 수 있는 사람은 누구나 암호화되지 않은 데이터를 볼 수 있습니다.

연결을 보호하지 않으면 민감한 데이터가 공격자에게 노출될 위험이 있습니다. HTTPS를 사용하면 데이터가 암호화되고 공격자는 네트워크에 액세스할 수 있어도 전송된 데이터를 읽을 수 없습니다.

따라서 웹사이트 보안을 위한 첫 번째 단계는 HTTPS를 활성화하는 것입니다. 아직 HTTPS로 이동하지 않은 경우 이 가이드를 사용하여 WordPress를 HTTPS로 이동할 수 있습니다.

HTTP를 HTTPS로 마이그레이션하는 데 사용할 수 있는 도구 및 WordPress 플러그인

  1. 더 나은 검색 교체.
  2. 데이터베이스 검색 및 바꾸기 스크립트.

2. 항상 강력한 암호 사용

해커가 웹 사이트에 액세스하는 가장 일반적인 방법은 취약하거나 암호가 있는 암호를 사용하는 것입니다. 이는 무차별 대입 공격에 취약하게 만듭니다.

아래 나열된 다른 방법보다 강력한 암호를 사용하여 보안을 강화하십시오.

항상 강력한 비밀번호를 사용하고 비밀번호가 설정되었는지 정기적으로 확인하십시오.

비밀번호 보안 강화를 위한 WordPress 플러그인:

  1. Pwned 암호를 허용하지 않습니다.
  2. 암호 정책 관리자를 다운로드합니다.
  3. 비밀번호 bcrypt.

3. 비밀번호 관리자를 사용하여 비밀번호 저장

공용 네트워크에서 작업하는 동안 로그인하면 랩톱에서 입력하는 내용을 보고 있거나 암호를 기록하는 사람이 누구인지 알 수 없습니다.

이 문제를 해결하려면 암호 관리자를 사용하여 암호에 쉽게 액세스하고 안전한 장소에 저장하십시오.

PC에 액세스하더라도 비밀번호를 알아낼 수 없습니다. 암호 관리자는 WordPress 플러그인이 아닌 브라우저 기반입니다.

Password Manager 브라우저 추가 기능:

  1. 라스트패스.
  2. 1비밀번호.
  3. 노드패스.

4. 로그인 및 등록 양식에 보안문자 추가

HTTPS로 웹사이트를 보호하고 강력한 비밀번호를 사용했다면 이미 해커들의 생존을 어렵게 만든 것입니다.

그러나 로그인 양식에 CAPTCHA를 추가하여 더 어렵게 만들 수 있습니다.

WordPress 보안: 보안을 위한 16단계 & 사이트 보호

보안 문자는 무차별 대입 공격으로부터 로그인 양식을 보호하는 좋은 방법입니다.

WordPress 로그인에 보안 문자를 추가하는 플러그인:

  1. 로그인 없음 보안문자 reCAPTCHA.
  2. 로그인 보안 reCAPTCHA.

5. 무차별 대입 로그인 시도로부터 보호

로그인 CAPTCHA는 특정 지점까지 무차별 대입 시도에 대한 보호를 제공하지만 완전히는 아닙니다. 종종 보안 문자 토큰이 해결되면 몇 분 동안 유효합니다.

예를 들어 Google reCaptcha는 2분 동안 유효합니다. 공격자는 이 2분 동안 로그인 양식에 대한 무차별 대입 로그인 시도를 시도할 수 있습니다.

이 문제를 해결하려면 IP 주소로 로그인 시도 실패를 차단해야 합니다.

무차별 대입 공격을 방지하는 WordPress 플러그인:

  1. WP 제한 로그인 시도.
  2. 로그인 시도 제한 새로고침.

6. 2단계(2FA) 인증 설정

로그인 양식에 보안 암호와 보안 문자를 사용하면 더욱 안전하게 보호됩니다.

그러나 해커가 감시 방법을 사용하여 웹 사이트에 액세스하기 위해 입력한 암호를 비디오에 기록했다면 어떻게 될까요?

그들이 귀하의 비밀번호를 알고 있다면 이중 인증만이 귀하의 웹사이트를 공격자로부터 보호할 수 있습니다.

WordPress 보안: 보안을 위한 16단계 & 사이트 보호

2FA 인증을 설정하는 WordPress 플러그인:

  1. 2요소.
  2. 구글 인증기.
  3. WordPress 2단계 인증(2FA, MFA).

7. WordPress 핵심 및 플러그인을 최신 상태로 유지

취약점은 워드프레스 코어 및 플러그인에 자주 발생하며 발생 시 발견되어 보고됩니다. 웹사이트가 파일의 알려진 구멍 및 보고된 구멍으로 인해 해킹되는 것을 방지하려면 플러그인을 최신 버전으로 업데이트해야 합니다.

자동 업데이트로 전환하면 사용자 모르게 웹사이트가 손상될 수 있으므로 권장하지 않습니다.

그러나 이러한 업데이트에는 코어에 대한 보안 패치가 포함되어 있으므로 wp-config.php에 이 코드 줄을 추가하여 WordPress 코어의 마이너 업데이트를 활성화 하는 것이 좋습니다 .

 정의( 'WP_AUTO_UPDATE_CORE', '사소한' );

8. 보안 HTTP 헤더 설정

보안 헤더는 웹 사이트를 탐색할 때 브라우저와 서버 간에 수행할 수 있는 작업을 제한하여 추가 보호 계층을 제공합니다.

보안 헤더는 클릭재킹 및 XSS(교차 사이트 스크립팅) 공격으로부터 보호하는 것을 목표로 합니다.

보안 헤더는 다음과 같습니다.

  • 엄격한 운송 보안(HSTS).
  • 콘텐츠 보안 정책.
  • X-프레임-옵션.
  • X-콘텐츠 유형-옵션.
  • 메타데이터 헤더를 가져옵니다.
  • 추천인 정책.
  • 캐시 제어.
  • 사이트 데이터 지우기.
  • 기능 정책.

각 보안 헤더에 대한 설명은 자세히 다루지 않겠지만 다음은 이를 수정하는 몇 가지 플러그인입니다.

보안 헤더를 활성화하는 WordPress 플러그인:

  1. 웹 사이트 보안을 개선하기 위한 HTTP 헤더.
  2. GD 보안 헤더.

9. WordPress 파일에 대한 올바른 파일 권한 설정

파일 권한은 WordPress 파일을 호스팅하는 OS의 규칙입니다. 이 규칙은 파일을 읽고, 편집하고, 실행할 수 있는 방법을 설정합니다. 이 보안 조치는 특히 공유 호스팅에서 웹사이트를 호스팅할 때 필수적입니다.

잘못 설정하면 공유 호스팅의 한 웹사이트가 해킹당할 때 공격자가 웹사이트의 파일에 액세스하고 거기에 있는 모든 콘텐츠(특히 wp-config.php)를 읽고 웹사이트에 대한 완전한 액세스 권한을 얻을 수 있습니다.

  • 모든 파일은 644여야 합니다.
  • 모든 폴더는 775여야 합니다.
  • wp-config.php는 600이어야 합니다.

위의 규칙은 호스팅 사용자 계정이 파일을 읽고 수정할 수 있고 웹 서버(WordPress)가 파일 및 폴더를 수정, 삭제 및 읽을 수 있음을 의미합니다.

다른 사용자는 wp-config.php의 내용을 읽을 수 없습니다. wp-config.php에 대해 600을 설정하면 웹사이트가 다운되는 경우 640 또는 644로 변경하십시오.

10. WordPress에서 파일 편집 비활성화

관리 백엔드에서 파일을 편집할 수 있는 WordPress의 알려진 기능입니다.

개발자가 SFTP를 사용하고 거의 사용하지 않기 때문에 실제로 필요하지 않습니다.

WordPress 보안: 보안을 위한 16단계 & 사이트 보호

11. 불필요한 모든 기능 비활성화

WordPress에는 전혀 필요하지 않은 많은 기능이 있습니다. 예를 들어 WordPress의 XML-RPC 끝점은 외부 응용 프로그램과의 통신을 위해 만들어졌습니다. 공격자는 무차별 대입 로그인에 이 끝점을 사용할 수 있습니다.

Disable XML-RPC-API 플러그인을 사용하여 XML-RPC를 비활성화합니다.

WordPress에 내장된 또 다른 문제는 웹 사이트의 모든 사용자를 나열하는 REST-API 끝점을 제공하는 것입니다.

WordPress 설치에 "/wp-json/wp/v2/users"를 추가하면 사용자 이름 및 사용자 ID 목록이 JSON 데이터로 표시됩니다.

이 코드 줄을 functions.php에 추가하여 사용자 REST-API를 비활성화합니다.

 기능 disable_users_rest_json( $response, $user, $request ){

 반품 '';

}add_filter( 'rest_prepare_user', 'disable_users_rest_json', 10, 3 );

12. WordPress 버전 숨기기

WordPress는 페이지의 HTML에 WordPress 버전과 함께 주석을 자동으로 삽입합니다. 공격자에게 설치된 WordPress 버전을 추가 정보로 제공합니다.

WordPress 보안: 보안을 위한 16단계 & 사이트 보호

예를 들어 코어에 취약점이 있는 것으로 보고된 WordPress 버전을 사용 중인 경우 공격자는 보고된 기술을 사용하여 웹사이트를 해킹할 수 있다는 것을 알고 있습니다.

다음 플러그인을 사용하여 WordPress 버전 메타 태그 숨기기:

  1. 메타 생성기 및 버전 정보 제거기.
  2. Dawsun의 WP 제너레이터 리무버.

13. 워드프레스 방화벽 설치

방화벽은 웹 사이트에서 실행되고 들어오는 HTTP 요청을 분석하는 웹 응용 프로그램입니다. 잠재적으로 위협이 될 수 있는 요청을 필터링하기 위해 정교한 논리를 적용합니다.

방화벽의 기본 제공 규칙 위에 규칙을 설정하여 요청을 차단할 수 있습니다. 일반적인 공격 유형 중 하나는 SQL 주입입니다.

SQL 인젝션에 취약한 WordPress 플러그인을 실행했는데 이에 대해 모른다고 가정해 보겠습니다. 방화벽을 실행하면 공격자가 플러그인의 보안 결함을 알고 있더라도 웹 사이트를 해킹할 수 없습니다.

이는 방화벽이 SQL 주입이 포함된 요청을 차단하기 때문입니다.

방화벽은 IP의 이러한 요청을 차단하고 연속적인 위험한 요청이 오는 것을 방지합니다. 방화벽은 또한 단일 IP에서 너무 많은 요청을 감지하고 차단하여 DDoS 공격을 방지할 수 있습니다.

웹 서버에 요청이 이루어지기 전에 실행되는 DNS 수준 방화벽을 실행할 수도 있습니다. Cloudflare DNS 방화벽이 그 예입니다.

이 방법의 장점은 DDoS 공격에 대해 더 강력하다는 것입니다.

서버에서 실행되는 응용 프로그램 수준 방화벽은 HTTP 요청이 웹 서버에 도달하도록 허용한 다음 차단합니다. 즉, 서버가 일부 CPU/RAM 리소스를 사용하여 차단합니다.

DNS 수준 방화벽을 사용하면 서버 리소스를 사용하지 않으므로 공격에 더 지속 가능합니다.

사용할 수 있는 WordPress 방화벽 플러그인:

  1. 워드펜스 시큐리티.
  2. 수쿠리.
  3. 올인원 WP 보안 및 방화벽.
  4. 방탄 보안.
  5. 쉴드 시큐리티.

참고: 방화벽을 설치하기로 결정한 경우 로그인 무차별 대입 방지 또는 2F 인증과 같은 기능이 있을 수 있으며 위에서 언급한 플러그인을 설치하는 대신 해당 기능을 사용할 수 있습니다.

14. 백업 유지

해킹을 당한 경우 가장 좋은 복구 방법은 감염되지 않은 최신 버전에서 웹사이트를 복원하는 것입니다.

웹 사이트 백업을 저장하지 않으면 웹 사이트 정리에 시간이 많이 걸릴 수 있습니다. 그리고 경우에 따라 멀웨어가 모든 데이터를 지워서 모든 정보를 복원하지 못할 수도 있습니다.

이러한 시나리오를 방지하려면 웹 사이트 데이터베이스 및 파일을 정기적으로 백업하십시오.

매일 백업 기능을 제공하고 활성화하는지 호스팅 지원에 문의하십시오. 그렇지 않은 경우 다음 플러그인을 사용하여 백업을 실행할 수 있습니다.

  1. 백업합니다.
  2. 업드래프트플러스.
  3. 백업버디.
  4. 블로그볼트.

15. SFTP 사용

많은 개발자가 이미 SFTP를 사용하여 웹 서버에 연결하지만 여전히 사용하지 않는 경우에 대비하여 이를 상기하는 것이 중요합니다.

HTTPS와 마찬가지로 SFTP는 암호화를 사용하여 네트워크를 통해 파일을 전송하므로 네트워크에 액세스할 수 있는 경우에도 일반 텍스트로 읽을 수 없습니다.

16. 사용자 활동 모니터링

우리는 알려지지 않은 해커로부터 웹사이트를 보호하는 많은 방법에 대해 논의했습니다. 그러나 웹사이트 관리자에 대한 액세스 권한이 있는 직원 중 한 명이 콘텐츠에 링크를 추가하는 것과 같은 은밀한 작업을 수행하는 경우는 어떻습니까?

위의 방법 중 어느 것도 그늘진 직원을 감지할 수 없습니다.

이는 활동 로그를 보고 수행할 수 있습니다. 각 사용자의 활동을 살펴보면 직원 중 한 명이 의도하지 않은 기사를 편집했음을 알 수 있습니다.

또한 의심스러워 보이는 활동을 살펴보고 어떤 변경 사항이 적용되었는지 확인할 수 있습니다.

사용자 활동을 모니터링하는 WordPress 플러그인:

  1. 활동 로그.
  2. 사용자 활동 로그.
  3. WP 활동 로그.

이 플러그인이 보관하는 기간(또는 레코드 수)을 제한할 수 있습니다. 너무 많으면 데이터베이스에 과부하가 걸리고 웹사이트 성능과 속도에 영향을 줄 수 있습니다.

해킹을 당하면 어떻게 해야 하나요?

보안 전문가의 모든 조언과 해킹으로부터 웹 사이트를 강화하는 방법을 알고 있음에도 불구하고 여전히 발생합니다.

웹사이트가 해킹된 경우 복구하려면 아래 단계를 수행해야 합니다.

  1. 해커가 먼저 귀하의 이메일에 액세스하여 귀하의 웹사이트에 액세스할 수 있으므로 모든 이메일 및 기타 개인 비밀번호를 먼저 변경하십시오.
  2. 웹사이트를 해킹되지 않은 최신 백업으로 복원하십시오.
  3. 모든 웹사이트 사용자의 비밀번호를 재설정합니다.
  4. 사용 가능한 업데이트가 있는 경우 모든 플러그인을 업데이트합니다.

결론

보안과 관련하여 360° 생각하십시오. 모든 직원에게 보안의 중요성을 강조하여 보안 규칙을 따르지 않을 경우 회사가 겪을 수 있는 결과를 이해하도록 합니다.

해킹을 당한 경우 ]백업에서 웹사이트를 복구하고 웹사이트의 모든 비밀번호를 변경하고 최대한 빨리 이메일을 보내십시오.

WordPress 보안: 보안을 위한 16단계 & 사이트 보호