웹사이트 방화벽으로 WordPress 사이트 보호

게시 됨: 2020-08-25
Protect Your WordPress Site With a Website Firewall

WordPress의 엄청난 인기로 인해 WordPress 사이트를 악용하여 돈을 벌려고 하는 범죄자와 해커의 엄청난 표적이 되었습니다. 귀하의 사이트를 헐뜯기 위해 귀하의 사이트를 훼손하여 동료들과 함께 인터넷 신용을 얻으려는 스크립트 키디일 수도 있습니다. 그것이 어떻게 발생하든 상관없이 모든 형태의 사이트 손상은 고객과의 심각한 신뢰 상실을 야기하고 쉽게 브랜드의 종말을 초래할 수 있습니다.

따라서 웹사이트, 클라이언트 및 브랜드를 보호하는 것은 WordPress 인스턴스를 배포할 때마다 최우선 순위입니다. 불행히도 해커는 WordPress를 악용하고 사용자가 만든 것을 파괴하는 정교한 도구와 기술을 개발했습니다. 앞서 나가기 위한 유일한 방법은 WordPress 사이트를 표적으로 삼을 수 있는 방법과 이러한 위협으로부터 보호하는 방법을 이해하는 것입니다.

이 기사에서는 해커가 WordPress 사이트가 인터넷과 통신하는 방식과 해커가 피해를 입히기 전에 차단하기 위해 구축할 수 있는 방어 수단을 활용할 수 있는 모든 방법을 살펴볼 것입니다.

비트 및 바이트 필터링 - 네트워크 방화벽

인터넷을 통해 데이터를 전송하는 것은 놀랍도록 복잡한 과정입니다. 물리적 인프라를 정의하는 맨 아래의 하드웨어 계층부터 위의 여러 소프트웨어 계층까지 많은 "계층"이 있으며, 각 계층은 아래에 종속됩니다. 이 섹션에서 관심 있는 계층은 호스트 간 계층입니다. 이 계층에서 친구에게 보내는 이미지와 같은 데이터는 패킷이라는 작은 청크로 분할됩니다. 이들은 인터넷을 통해 귀하(출처)에서 귀하의 친구(목적지)로 라우팅되어 귀하가 보낸 원본 이미지로 재조립됩니다.

이러한 데이터 패킷에는 모두 다음과 같은 몇 가지 특성이 있습니다.

  • 프로토콜 – 예: TCP, UDP, ICMP 등
  • 포트 – 예, 웹 80/443, 이메일 110/25
  • IP 주소 – 패킷을 보내고 받는 컴퓨터의 원본 및 대상 IP

네트워크 방화벽은 네트워크 인터페이스와 운영 체제 사이에 위치하며 서버에 도착하는 각 패킷을 검사합니다. 허용 및 차단 규칙 집합을 기반으로 운영 체제에서 패킷이 진행되는 것을 허용하거나 거부합니다. 패킷이 방화벽 규칙을 위반하면 폐기됩니다.

네트워크 방화벽은 실수로 또는 의도적으로 악의적인 트래픽을 수신 대기하는 프로세스와의 무단 통신을 차단하므로 서버 및 WordPress 설치에 없어서는 안될 부분입니다. 운영 체제 및 그 이상에서 WordPress로 허용되는 유일한 트래픽은 방화벽이 부과하는 엄격한 규칙을 따라야 합니다.

적절하게 구성된 네트워크 방화벽은 인터넷에 연결된 모든 서버의 표준 부분입니다. 불행히도 이것이 설치 및 관리가 쉽다는 의미는 아닙니다. 실제로 WordPress 인스턴스에만 액세스할 수 있는 경우 효과적인 방화벽이 WordPress 내부에서 액세스할 수 없기 때문에 방화벽 관리를 올바르게 수행하는 것은 불가능합니다.

웹 요청 필터링 – 웹 애플리케이션 방화벽

해커는 악성 웹 요청을 생성하여 WordPress 사이트를 공격하는 정교한 네트워크 공격 방법으로 무기고를 확장했습니다. 이러한 웹 요청은 네트워크 방화벽의 규칙을 위반하지 않으므로 심각한 피해를 줄 수 있는 WordPress 사이트와 상호 작용할 수 있습니다.

악성 웹 요청이 작동하는 방식을 이해하려면 먼저 웹 요청이 수년에 걸쳐 어떻게 복잡성이 증가했는지 고려하십시오. PHP와 같은 활성 웹 기술 이전에는 웹 요청이 매우 간단했으며 다음과 같았습니다.

 http://www.example.com/index.php

이 요청은 다음과 같이 부분으로 나뉩니다.

  • http:// – 요청이 HTTP 프로토콜을 사용하고 있습니다.
  • www.example.com – 웹 서버의 IP 주소로 확인되는 호스트 이름입니다.
  • index.php – 요청 중인 파일입니다.

보시다시피 이 요청은 매우 간단합니다. 웹사이트를 보호하고 싶을 때 웹서버가 파일 제공을 거부할 수 있도록 비공개 파일의 차단 목록을 생성하기만 하면 됩니다. 그 외에는 별로 없었습니다.

웹사이트 기술이 더욱 복잡해짐에 따라 이러한 복잡성을 악용할 기회도 증가했습니다.

이러한 악의적인 요청의 한 예는 SQL 주입 공격으로 알려져 있습니다. 이러한 유형의 공격은 WordPress 데이터베이스에서 민감한 정보를 읽거나 수정하려고 시도합니다. PHP 스크립트가 실행될 웹 요청을 작성하여 이를 수행하고 스크립트가 입력을 확인하도록 작성되지 않은 경우 공격자가 WordPress 데이터베이스를 읽거나 쓸 수 있도록 합니다.

간단한 SQL 인젝션 공격 웹 요청을 살펴보자. 예를 들어 로그인 양식이 클라이언트 브라우저로 전송된다고 가정해 보십시오. 양식을 작성하면 입력한 계정 사용자 이름이 포함된 서버로 웹 요청을 다시 보냅니다. 이 예제 요청에서 사용자 이름 ID는 다음과 같은 웹 요청을 제공하는 JohnSmith 입니다.

 http://www.example.com/accountView?id=JohnSmith

서버의 PHP 스크립트가 이 입력을 받고 유효성을 확인하지 않으면 심각한 문제가 발생할 수 있습니다. 예를 들어 해커는 ID가 전혀 없는 다음과 같은 잘못된 형식의 URL을 보내려고 할 수 있습니다. 예:

 http://www.example.com/app/accountView? 데이터베이스의 언어인 SQL에서 특별한 의미를 갖는다. 잘못 작성된 스크립트가 암호 및 기타 민감한 정보를 포함하여 고객 데이터베이스의 전체 목록을 다시 보낼 수 있습니다. 이것은 분명히 재앙입니다.

그렇다면 이러한 형태의 공격으로부터 자신을 어떻게 보호할 수 있습니까?

여기서 WAF(웹 응용 프로그램 방화벽)가 시작됩니다. WAF는 인터넷과 WordPress 사이에 배치되고 서버에 도착하는 모든 웹 요청을 검사합니다. 위와 같이 형식이 잘못된 요청을 발견하거나 규칙 목록을 위반하는 경우 해당 요청이 WordPress로 전송되지 않도록 차단합니다. WAF는 사이트의 모든 PHP 파일을 확인해야 하는 WordPress 사이트를 쉽게 손상시킬 수 있는 일반적인 프로그래밍 오류의 전체 클래스를 효과적으로 물리칩니다.

분명히 이것은 거대하고 빠르게 진화하는 가능성의 범위에서 악의적인 요청의 한 예일 뿐입니다. 이것은 해커와 보조를 맞추는 규칙을 추가하기 위해 진정으로 효과적인 WAF를 지속적으로 도전하게 만듭니다. 네트워크 방화벽과 마찬가지로 WAF는 설정하고 더 중요하게는 유지 관리하는 기술적으로 어려운 제안입니다.

봇 중지 – 무차별 대입 보호 및 reCAPTCHA

효과적인 네트워크 방어의 마지막 계층은 WordPress 관리자 패널 로그인 페이지에 대한 자동화된 공격을 중지하는 것입니다. 이러한 공격은 일반적으로 로봇이라는 단어에서 따온 "봇"이라고 하는 프로그램에 의해 시작됩니다. 봇은 공동 공격을 시작하기 위해 지칠 줄 모르고 수많은 작업을 수행하기 때문에 해커가 사용합니다.

가장 일반적인 공격 방법은 로그인 페이지를 대상으로 하는 무차별 대입 공격입니다. 이것은 사용자 이름과 암호를 추측하여 WordPress 사이트에 로그인할 수 있도록 합니다.

무차별 대입 공격은 매우 다양한 사용자 이름과 암호 조합을 시도하여 작동합니다. 일반적으로 admin 또는 root 와 같은 가장 인기 있는 사용자 이름과 "123456"과 같은 가장 일반적인 암호의 조합입니다. 무차별 대입 공격은 다음 사용자 이름과 암호 조합을 제출하여 시작됩니다.

  • 관리자 : 123456
  • 관리자 : 암호0rd
  • 관리자 : letmein
  • 관리자 : 쿼티
  • 루트 : 123456
  • 루트 : 암호0rd
  • 루트 : letmein
  • 루트 : 쿼티

그리고 거기에서 점점 덜 일반적인 조합을 시도하십시오.

봇은 구성 방법에 따라 수백에서 수천까지 시도합니다. 무차별 대입 보호는 모든 실패한 로그인을 확인한 다음 가짜 로그인 요청을 제출하는 IP 주소에서 오는 추가 요청을 차단합니다. 이것은 WordPress 사용자가 자신의 암호를 선택할 수 있을 때 더 약한 암호를 선택하는 경우가 많습니다.

Bruteforce 공격은 봇이 사용되는 유일한 용도가 아닙니다. 또한 취약점, 노출된 민감한 파일 또는 손상될 수 있는 플러그인 및 테마에 대해 사이트를 조사하는 데 사용됩니다.

이러한 봇은 reCAPTCHA라고 하는 Google의 업계 표준 사기 방지 광고 남용 도구로 추적을 중단할 수 있습니다. reCAPTCHA는 사람을 악성 봇에서 자동으로 분류하여 사람이 사이트를 방문하고 봇을 차단할 수 있도록 합니다. 이것은 일반적으로 인간 사용자에게 보이지 않고 매끄럽게 발생하지만 봇이 침입하기 위해 최선을 다할 웹 사이트를 통과하는 것은 불가능합니다.

하지만 이 모든 것을 어떻게 해야 합니까?

네트워크 방화벽, WAF, 무차별 대입 탐지기 reCAPTCHA를 구성하고 유지 관리할 시간, 전문 기술 지식 또는 예산이 없다면 Rocket과 같은 전문가에게 맡겨야 합니다. Rocket은 WordPress 보안을 제공하는 관리형 호스팅 제공업체입니다. 모든 WordPress 설치에 이러한 필수 보안 도구를 모두 표준으로 포함합니다.

가입하고 WordPress 사이트를 시작하고 몇 초 후에 만들기를 시작하기만 하면 됩니다.

또는 WordPress에서 암호 없는 인증을 설정하는 방법을 확인하세요.