워드프레스 사이트의 보안을 위한 5가지 팁

2019년 5월 7일

워드프레스는 전세계에서 가장 유명한 컨텐츠 관리 시스템입니다. 또한 전세계에서 해킹과 악의적인 공격들의 1순위 타겟으로 뽑히죠. 이 튜토리얼에서는, 여러분 워드프레스 사이트의 보안성을 증가시키기 위한 5가지 방법에 대해 알아보도록 하겠습니다.

참고사항: 다음의 포스트는 제휴사 링크를 포함하고 있으며, 링크를 이용하여 상품 및 서비스 구매 시, 제가 커미션을 받게 되어있습니다. 이에, 미리 감사의 말씀을 전하고 싶습니다.

워드프레스 로그인 URL 변경

기본 설정으로, 여러분의 워드프레스 사이트의 로그인 페이지는 domain.com/wp-login.php에서 찾을 수 있습니다. 워드프레스 인기의 결과로, 기본 로그인 페이지는 많은 공격과 악의적인 봇 (bot) 에 쉽게 노출이 되어 있습니다. 여러분의 워드프레스 로그인 페이지를 봇에 의해서 억지로 설정하는것은 보안성의 문제를 불러 올 수 있는데요, 이는 또한 성능의 저하로도 이어집니다. 대부분의 호스팅 제공자에서 wp-login.php가 페이지 캐시로부터 바이패스 되기 때문에 wp-login.php에 대한 계속적인 히트는 CPU나 RAM 스파이크 같은 문제를 야기시킵니다.

WPS Hide 로그인으로 여러분 워드프레스 로그인 URL을 변경하세요.

워드프레스 로그인 URL을 변경하는 가장 좋은 방법은 WPS Hide 로그인 플러그인을 사용하는 것입니다. 플러그인을 설치한 뒤에는 여러분의 로그인 URL을 어떤 것이든지 원하시는 것으로 변경 가능합니다. 또한 WPS Hide 로그인은 wp-login.php으로 접속하려는 누구든지 특정 리디렉션 URL로 리디렉트 하게 됩니다.

가치없는 플러그인과 테마 인스톨 하지 않기

여러분은 워드프레스 저장소 (Repository), 개발자의 개인적 저장소, 혹은 높은 명성을 지니는 마켓플레이스 테마포레스트 (ThemeForest) 와 같이 신뢰할 수 있는 곳으로부터만 플러그인이나 테마를 받아서 설치 하셔야 합니다. 의심이 가는 포럼이나, 레딧 그룹, 해적판 소프트웨어를 잘 구하는 친구 등으로 부터는 절대로 플러그인 등을 받아서 설치하시면 안됩니다. 프리미엄 유료 플러그인을 생각해보시죠. 누군가는 이 플러그인을 위해서 비용을 지불했어야 하죠. 따라서, 이 플러그인이 여러분에게만 무료인 것은 말이 되지 않습니다. 가치없는 플러그인과 테마 등은 말웨어로 가득차 있으며, 여러분의 웹사이트를 컨트롤하게 될 것입니다.

이렇기 때문에 이들은 “무료” 죠.

xmlrpc.php에 대한 접속 차단

XML-RPC는 워드프레스로 하여금 다른 앱 및 서비서와 교류할 수 있도록 하는 기능입니다. 예를 들어, 워드프레스 iOS앱은 XML-RPC를 사용하여 워드프레스로의 연결성을 구축하게 되죠, 따라서 여러분은 모바일 상에서 포스트를 수정하고 사진 등을 업로드 할 수 있습니다. XML-RPC 지원을 위해 워드프레스 코어는 xmlrpc.php라는 파일을 가지게 됩니다. wp-login.php와 마찬가지로 xmlrpc.php는 다음의 두가지 이유로 여러가지 공격에 대한 대상으로 뽑히는데요.

  1. xmlrpc.php는 여러분의 워드프레스 사이트를 원격으로 조정할 수 있게 하기 때문에, 여러 악의적인 공격들이 xmlrpc.php를 다른 유저네임과 비밀번호 조합 등으로 강제로 접속하려고 할 수 있습니다.
  2. xmlrpc.php의 핑백 (pingback) 기능은 DDoS 공격을 작동시키는데 사용될 수 있습니다.

xmlrpc.php 사용과 관련해서는 “화이트리스트만 (whitelist-only)” 프로토콜을 따르는 것이 좋습니다. 이 방법을 통해 여러분은 특정 IP 주소와 xmlrpc.php 접속을 위한 유저에이전트를 화이트리스트에 포함 시킬 수 있죠. 여러분이 만약 스스로 서버를 관리하신다면, NGINX내 혹은 Apache 환경설정 파일 내에 접속 관련 규칙을 만들 수 있습니다. 워드프레스 관리 호스트를 사용하신다면, xmlrpc.php는 기본적으로 차단되어 있을 것입니다. 여러분이 만약 xmlrpc.php를 차단하지 않고 열어두는 워드프레스 관리 호스트를 사용중이시면, Kinsta, Flywheel 등 보안에 좀 더 신경을 쓰는 호스트로 변경하실 것은 추천해 드립니다.

웹 어플리케이션 방화벽 사용하기

Cloudflare 와 Sucuri 는 웹 어플리케이션 방화벽 (Web Application Firewall, WAF) 을 포함한 아주 다양한 보안 관련 상품을 제공하는 두 회사입니다. WAF는 여러분 웹사이트에 있어 가장 앞에서 방어를 펼치는 것으로, 여러분 워드프레스 사이트에 꼭 사용하시기를 적극 추천해 드립니다. 저 개인적으로 Sucuri 의 서비스를 사용해 보지는 않았지만, 저는 제 모든 사이트에서 Cloudflare 서비스를 사용하고 있습니다. 제 사이트를 위해서 무료 플랜을 사용하고는 하는데, 이처럼 좀 더 중요한 사이트를 위해서는 한달에 $20짜리 프로 플랜을 사용하고 있습니다. 보안 관련 툴 이외에도 프로 플랜은 이미지 최적화 기능, 20 페이지 규칙 등 여러 기능들을 포함하고 있습니다. 제 생각에 이는 아주 괜찮은 딜이며, 제 걱정을 많이 덜어주기도 합니다.

여러분의 워드프레스 사이트에 Cloudflare를 추가하는 것은 아주 쉬운데요. 우선 Cloudflare에서 계정을 만드시고, 사이트를 추가한 다음, 여러분 도메인의 네임서버 (nameservers) 를 Cloudflare의 것으로 바꿔주시면 됩니다. Cloudflare 사용법에 대한 좀 더 자세한 가이드를 원하시면 Kinsta의 튜토리얼을 살펴보시면 되겠습니다.

모든 것 정기적으로 업데이트 하기

마지막으로 가장 중요한 것은 여러분의 워드프레스 코어, 플러그인, 테마 등을 늘 정기적으로 업데이트 하는 것입니다. 소프트웨어는 항상 더 발전하고 진행되어가며, 그에 따른 취약점도 매일 발견됩니다. 지난 몇 달 간만 해도 우리는 Social Warfare와 Yuzo 와 관련한 많은 익스플로잇 관련 소식 등을 접하곤 했었죠. 새로운 버전들은 아주 빨리 발표되는데, 아무래도 많은 워드프레스 유저들이 여전히 익스플로잇이 포함된 오래된, 이전 버전의 플러그인을 사용하고 있을 가능성이 높습니다.

저 개인적으로는 업데이트 체크를 위해 워드프레스 사이트를 최소 일주일에 한 번은 스캔 할 것을 추천해 드립니다. 이 과정은 정말 5분도 채 안걸리며 여러분을 잠재적인 위험으로부터 지켜줄 것입니다. 만약 시간에 많이 쫓기신다면, ManageWP를 사용할 것을 추천해 드리는데요, 이는 대시보드에서 코어, 플러그인, 테마 등을 바로 업데이트 할 수 있도록 지원하기도 합니다.

보안이라는 것은 여러분이 일부러 그렇게 만들지 않는 한 어려울 필요가 없는 것입니다. 지금까지 로그인 URL 바꾸기, 가치없는 플러그인 및 테마 사용 하지 않기, xmlrpc.php에 대한 접속 차단, 웹 어플리케이션 방화벽, 여러분의 사이트 정기적으로 업데이트 하기, 이렇게 여러분 워드프레스 사이트의 보안을 위한 5가지 팁에 대해서 살펴보았습니다.


궁금한게 있으세요?

트위터이메일을 통해 연락주시기 바랍니다.