어떤 중요한 WordPress 보안 문제를 알고 있습니까?

게시 됨: 2022-03-04

WordPress는 오늘날 존재하는 모든 웹사이트의 1/3 이상을 지원하는 전 세계적으로 가장 인기 있는 콘텐츠 관리 시스템(CMS) 입니다 . 그 인기로 인해 사이버 공격의 매력적인 대상이 되었으며 보안 취약점도 공유합니다.

WordPress에 자체 보안 문제가 있을 수 있지만 데이터 도난이 매우 수익성 높은 비즈니스가 되면서 사이버 범죄자의 표적이 되는 유일한 플랫폼은 아닙니다. 개인 블로그에서 대규모 비즈니스 웹사이트에 이르기까지 그 누구도 악의적인 행위자가 제기하는 잠재적인 위협으로부터 안전하지 않습니다. 사이트가 소규모 블로그이든 대기업이든 관계없이 목적에 관계없이 웹 사이트를 보호하는 방법을 알아야 합니다. 모든 목록의 맨 위에는 UpdraftPlus 백업 플러그인이 설치되어 있어야 합니다. – 세계에서 가장 인기 있고 가장 높은 평가를 받은 백업 플러그인입니다. 공격의 피해자가 된 경우 사이트를 복원하기 위해 안전한 백업이 있다는 사실을 알고 안심할 수 있습니다.

다음은 알아야 할 WordPress 보안 문제와 해결 방법입니다.

1. 플러그인 시스템

WordPress가 인기를 얻는 이유 중 하나는 모듈성입니다. 플러그인 시스템 덕분에 기본 기능을 빠르고 쉽게 확장할 수 있습니다. 불행히도 모든 플러그인이 UpdraftPlus의 높은 표준에 따라 생성되는 것은 아니며 일부 플러그인은 WordPress 웹사이트에 새로운 취약점을 일으킬 수 있습니다.

예를 들어 'PWA for WP & AMP' 플러그인은 20,000개 이상의 WordPress 웹사이트 를 액세스 제어 취약점에 노출시켰습니다. 임의의 파일 업로드를 허용하기 때문에 공격자는 원격으로 코드를 실행하고 이 플러그인을 실행하는 웹사이트를 탈취할 수 있습니다. 사용자는 이 예에서 두 가지를 알고 있어야 합니다. 첫 번째는 가능한 경우 WordPress 사이트에서 사용되는 플러그인 수를 제한하는 것입니다. 두 번째는 플러그인 및 WordPress 버전을 포함한 모든 애플리케이션이 정기적으로 업데이트되도록 하는 것입니다. 업데이트는 때때로 새로운 기능을 추가하지만 주요 목적은 새로 발견된 취약점을 해결하는 것입니다.

2. SQL 인젝션 공격

데이터는 새롭고 매우 가치 있는 상품이며 공격자가 웹사이트를 표적으로 삼는 한 가지 이유는 데이터베이스에 저장된 정보를 훔치는 것입니다. SQL 인젝션은 공격자가 민감한 정보를 손상시킬 수 있는 웹사이트에 SQL 명령을 삽입하는 일반적인 방법입니다.

이것이 어떻게 일어나는지 궁금하다면 많은 워드프레스 웹사이트에서 볼 수 있는 평균적인 형태를 생각해 보십시오. 사용자가 로그인을 위한 사용자 이름 및 암호와 같은 정보를 제공할 수 있습니다. 공격자가 이러한 필드에 SQL 코드를 삽입하면 기본 데이터베이스가 해당 코드를 처리하고 예기치 않은 작업을 수행할 수 있습니다. SQL 주입 공격을 방지하기 위해 작업할 수 있는 방법에는 여러 가지가 있지만 가장 일반적인 방법은 엄격한 입력 유효성 검사를 구현하는 것입니다. 예를 들어 다음 코드를 .htaccess 파일에 추가하여 모든 입력이 SQL 쿼리에서 제외되도록 할 수 있습니다.

# 재작성 엔진 활성화

다시 쓰기 엔진 켜기

RewriteRule ^(.*)$ – [F,L]

# MySQL 주입 차단

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [또는]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(..//?)+ [또는]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]

RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4} -[0-9a-f]{12} [NC,OR]

RewriteCond %{QUERY_STRING} (../|..) [또는]

RewriteCond %{QUERY_STRING} ftp: [NC,OR]

RewriteCond %{QUERY_STRING} http: [NC,OR]

RewriteCond %{QUERY_STRING} https: [NC,OR]

재작성 조건 %{QUERY_STRING} =|w| [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING}(<|%3C).*스크립트.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING}(<|%3C).*iframe.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} 글로벌(=|[|%[0-9A-Z]{0,2}) [또는]

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [또는]

RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>).* [NC,OR]

RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [또는]

RewriteCond %{QUERY_STRING} (./|../|…/)+(motd|etc|bin) [NC,OR]

RewriteCond %{QUERY_STRING} (localhost|loopback|127.0.0.1) [NC,OR]

RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]

RewriteCond %{QUERY_STRING} 연결[^(]*( [NC,OR])

RewriteCond %{QUERY_STRING} 합집합([^s]*s)+선택 [NC,OR]

RewriteCond %{QUERY_STRING} 합집합([^a]*a)+ll([^s]*s)+선택 [NC,OR]

RewriteCond %{QUERY_STRING}(sp_executesql) [NC]

RewriteRule ^(.*)$ – [F,L]

3. 사이트 간 스크립팅 공격

XSS 공격 작동 방식(출처: Imperva)

SQL 주입 공격과 마찬가지로 XSS(교차 사이트 스크립팅)는 취약한 웹 사이트에 악성 코드를 삽입하려고 시도합니다. 한 가지 예는 웹사이트 사용자를 다른 웹사이트로 연결하는 정보를 게시한 다음 개인 데이터를 도용하려고 시도하는 것입니다. 이 시나리오는 다른 웹사이트가 사용자의 입력을 필요로 하지 않을 수도 있으므로 잠재적으로 위험할 수 있습니다. 쿠키, 세션 토큰 등과 같은 사용자 식별 데이터를 간단히 스캔할 수 있습니다.

일반적으로 WAF(웹 응용 프로그램 방화벽)를 사용하여 XSS 공격을 방지할 수 있습니다. 이 유용한 도구를 사용하면 웹사이트의 특정 트래픽을 차단할 수 있습니다. All In One WP Security & Firewall 과 같은 대부분의 최고의 WordPress 보안 플러그인 은 이 기능을 사용할 수 있습니다. WordPress 웹 사이트 실행에 집중하고 보안을 전문가에게 맡기고 싶다면 One WP Security & Firewall 이 좋은 방법입니다. 대부분의 공격 유형을 차단하는 데 도움이 될 뿐만 아니라 WordPress 웹사이트에서 알지 못하는 취약점을 검색할 수도 있습니다.

4. 무차별 대입 공격

WordPress는 관리자 및 기타 승인된 사용자가 제어 기능에 액세스할 수 있도록 하는 자격 증명 시스템을 사용합니다. 불행히도 많은 사용자는 약하고 명백한 암호를 사용하는 경향이 있습니다. 무차별 암호 대입은 성공할 때까지 WordPress 사이트에 계속 여러 번 로그인을 시도하는 스크립트를 사용합니다. 스크립트는 일반적으로 사용되는 사용자 이름과 암호(예: Admin 및 Password1)의 사전을 보유하고 있는 데이터베이스와 함께 작동하며, 위험에 대해 생각하지 않고 이러한 조합 중 하나를 선택하기를 바랍니다.

그러나 무차별 대입 공격의 효과를 제한하기 위해 몇 가지 작업을 수행할 수 있습니다.

  • 복잡하고 고유한 비밀번호 사용
  • WordPress 관리자 디렉토리에 대한 액세스 차단
  • 이중 인증(2FA) 추가
  • 디렉토리 탐색 비활성화
  • 로그인 시도 횟수 제한

5. 분산 서비스 거부 공격

DDoS 공격은 방문자 트래픽을 모방한 요청의 홍수로 웹사이트를 극복하려고 합니다. (출처: dnsstuff)

DDoS(분산 서비스 거부) 공격은 웹 사이트를 대상으로 하는 대량의 요청으로 구성됩니다. 이 홍수는 웹 사이트를 무력화시키고 요청의 양에 대처할 수 없어 일반 방문자가 액세스할 수 없도록 하기 위한 것입니다. DDoS가 WordPress에만 있는 것은 아니지만 이 CMS를 기반으로 하는 웹 사이트는 일반 정적 웹 사이트보다 요청을 처리하는 데 더 많은 리소스가 필요하기 때문에 특히 취약할 수 있습니다. 그러나 결정적인 DDoS 홍수로부터 보호하는 것은 불가능할 수 있지만 가장 유명한 조직조차도 이러한 공격에 굴복했습니다. 이에 대한 한 가지 예는 2018년 GitHub 공격 이었습니다. 이 공격에서 웹사이트는 20분 동안 DDoS 플러드 공격을 받았습니다.

일반적으로 소규모 웹사이트는 이러한 방대한 양의 대상이 아닙니다. 그러나 소규모 DDoS 웨이브를 완화하려면 CDN(콘텐츠 배포 네트워크)을 사용해야 합니다. 이러한 서버 네트워크는 들어오는 로드의 균형을 유지하고 콘텐츠를 더 빠르게 제공하는 데 도움이 될 수 있습니다.

6. 사이트 간 요청 위변조 공격

CSRF(교차 사이트 요청 위조) 공격은 공격자가 WordPress와 같은 웹 애플리케이션이 가짜 인증을 인식하도록 하는 또 다른 방법입니다. WordPress는 이러한 사이트가 일반적으로 많은 사용자 자격 증명을 보유하기 때문에 특히 취약합니다. CSRF 공격은 여러 면에서 앞에서 논의한 XSS 공격과 유사합니다. 주요 차이점은 CSRF에는 인증 세션이 필요한 반면 XSS에는 필요하지 않다는 것입니다. 그럼에도 불구하고 궁극적인 목표는 방문자를 다른 위치로 전환하여 데이터를 훔치는 것입니다.

CSRF 방지는 대부분의 경우 플러그인 수준에서 구현해야 합니다. 개발자는 일반적으로 안티 CSRF 토큰을 사용하여 특정 사용자와 세션을 연결합니다. WordPress 웹사이트 소유자는 CSRF 공격을 방지하는 데 도움이 되는 플러그인 업데이트 및 일반 웹사이트 강화 기술에만 의존할 수 있습니다.

작동할 수 있는 몇 가지 강화 작업은 다음과 같습니다.

  • 파일 편집기 비활성화
  • PHO 실행의 대상 블록
  • 2FA 구현

WordPress 보안 문제에 대한 최종 생각

때때로 WordPress가 매우 취약한 웹 응용 프로그램이라는 오해가 있습니다. 그러나 이것은 완전히 정당한 주장은 아닙니다. 그 중 일부는 WordPress의 광범위한 사용에서 비롯되지만 더 중요한 이유는 웹 사이트 소유자가 필요한 적절한 예방 조치를 취하지 않았기 때문입니다.

우리는 종종 단순한 비밀번호를 선택했을 때의 결과를 생각하지 않고 보안을 당연하게 여깁니다. 그러나 웹사이트 소유자는 웹사이트의 무결성뿐만 아니라 사용자 데이터의 안전에 대해서도 책임을 져야 합니다.

저자 프로필

Pui Mun Beh는 WebRevenue 의 디지털 마케터입니다 .

게시물 어떤 중요한 WordPress 보안 문제를 알고 있습니까? UpdraftPlus에 처음 등장했습니다. UpdraftPlus – WordPress용 백업, 복원 및 마이그레이션 플러그인.